Cómo ajustar sus SSD en Ubuntu para un mejor rendimiento

banner-01

Hay muchos consejos para ajustar las SSD en Linux y muchos informes anecdóticos sobre lo que funciona y lo que no funciona. Hemos realizado nuestros propios puntos de referencia con algunos ajustes específicos para mostrarle la verdadera diferencia.

Puntos de referencia

Para comparar nuestro disco, usamos el Phoronix Test Suite . Es gratuito y tiene un repositorio para Ubuntu para que no tengas que compilar desde cero para realizar pruebas rápidas. Probamos nuestro sistema justo después de una nueva instalación de Ubuntu Natty 64-bit usando los parámetros por defecto para el sistema de archivos ext4.

systems

Las especificaciones de nuestro sistema son las siguientes:

  • AMD Phenom II de cuatro núcleos a 3,2 GHz
  • Placa madre MSI 760GM E51
  • 3,5 GB de RAM
  • AMD Radeon 3000 integrado con 512MB RAM
  • Ubuntu Natty

Y, por supuesto, la unidad SSD que utilizamos para probar era una unidad Onyx de 64 GB OCZ (u$s117 en Amazon.com en el momento de escribir este artículo).

Ajustes destacados

Hay bastantes cambios que la gente recomienda cuando se actualiza a una unidad SSD. Después de filtrar algunas de las cosas más antiguas, hicimos una pequeña lista de ajustes que las distribuciones de Linux no han incluido por defecto para las SSDs. Tres de ellas implican la edición de tu archivo fstab, así que haz una copia de seguridad antes de continuar con el siguiente comando:

sudo cp /etc/fstab /etc/fstab.bak

Si algo sale mal, siempre puede eliminar el nuevo archivo fstab y reemplazarlo con una copia de su copia de seguridad. Si no sabes qué es eso o quieres repasar cómo funciona, HTG Explica: ¿Qué es la plática de Linux y cómo funciona?

Evitar tiempos de acceso

Puede ayudar a aumentar la vida útil de las unidades SSD reduciendo la cantidad de escritura en disco del sistema operativo. Si necesita saber cuándo se accedió por última vez a cada fichero o directorio, puede añadir estas dos opciones a su fichero /etc/fstab:

noatime,nodiratime

Añádelos junto con las otras opciones y asegúrate de que estén separados por comas y sin espacios.

noatime

Activación de TRIM

Puede habilitar TRIM para ayudar a administrar el rendimiento del disco a largo plazo. Añada la siguiente opción a su archivo fstab:

descartar

Esto funciona bien para los sistemas de archivos ext4, incluso en discos duros estándar. Debe tener una versión del núcleo de al menos 2.6.33 o posterior; está cubierto si está usando Maverick o Natty, o tiene habilitados los backports en Lucid. Aunque esto no mejora específicamente el benchmarking inicial, debería hacer que el sistema funcione mejor a largo plazo y por eso hizo nuestra lista.

Tmpfs

La caché del sistema se almacena en /tmp. Podemos decirle a fstab que monte esto en la RAM como un sistema de archivos temporal para que su sistema toque menos el disco duro. Añada la siguiente línea al final de su fichero /etc/fstab en una nueva línea:

tmpfs /tmp tmpfs default,noatime,mode=1777 0 0 0

Guarde su archivo fstab para confirmar estos cambios.

Cambio de programadores de E/S

El sistema no escribe todos los cambios en el disco inmediatamente y se ponen en cola varias solicitudes. El programador de entrada-salida por defecto – cfqq – maneja esto bien, pero podemos cambiarlo por uno que funcione mejor para nuestro hardware.

En primer lugar, enumere las opciones que tiene disponibles con el siguiente comando, sustituyendo “X” por la letra de su unidad raíz:

cat /sys/block/sdX/queue/scheduler

Mi instalación está en Sda. Deberías ver algunas opciones diferentes.

cfq

Si tienes fecha límite, deberías usarla, ya que te da una modificación extra más adelante en la línea. Si no, usted debería poder usar noop sin problemas. Necesitamos decirle al sistema operativo que use estas opciones después de cada arranque, así que tendremos que editar el archivo rc.local.

Usaremos nano, ya que estamos cómodos con la línea de comandos, pero puedes usar cualquier otro editor de texto que quieras (gedit, vim, etc.).

sudo nano /etc/rc.local

Por encima de la línea “exit 0”, añada estas dos líneas si está utilizando la fecha límite:

echo deadline> /sys/block/sdX/queue/scheduler

echo 1> /sys/block/sdX/queue/iosched/fifo_batch

Si estás usando noop, añade esta línea:

echo noop> /sys/block/sdX/queue/scheduler

Una vez más, sustituya “X” por la letra de unidad adecuada para su instalación. Revise todo para asegurarse de que se vea bien.

rclocal

Luego, presione CTRL+O para guardar, luego CTRL+X para salir.

Reiniciar

Para que todos estos cambios entren en vigor, es necesario reiniciar. Después de eso, estarás listo. Si algo sale mal y no puede arrancar, puede deshacer sistemáticamente cada uno de los pasos anteriores hasta que pueda arrancar de nuevo. Incluso puedes usar un LiveCD o LiveUSB para recuperar si quieres.

Sus cambios en fstab se mantendrán durante toda la vida útil de su instalación, incluso soportando actualizaciones, pero su cambio rc.local tendrá que ser restablecido después de cada actualización (entre versiones).

Resultados de la evaluación comparativa

Para realizar los benchmarks, ejecutamos el paquete de pruebas en disco. La imagen superior de cada prueba es antes de ajustar la configuración del ext4, y la imagen inferior es después de los ajustes y un reinicio. Verá una breve explicación de lo que mide la prueba, así como una interpretación de los resultados.

Operaciones con archivos grandes

1

1

Esta prueba comprime un archivo de 2 GB con datos aleatorios y lo escribe en el disco. Los ajustes de SSD aquí muestran una mejora de aproximadamente un 40%.

5

5

IOzone simula el rendimiento del sistema de archivos, en este caso escribiendo un archivo de 8 GB. De nuevo, un aumento de casi el 50%.

6

6

Aquí se lee un archivo de 8 GB. Los resultados son casi los mismos que sin ajustar ext4.

16

16

AIO-Stress prueba asincrónicamente la entrada y la salida, utilizando un archivo de prueba de 2GB y un tamaño de registro de 64KB. Aquí, hay un aumento de casi un 200% en el rendimiento en comparación con la vainilla ext4!

Operaciones con archivos pequeños

2

2

Se crea una base de datos SQLite y PTS añade 12.500 registros a la misma. En realidad, los ajustes de las unidades SSD ralentizaron el rendimiento en un 10%.

3

3

El Benchmark de Apache prueba lecturas aleatorias de archivos pequeños. Hubo una ganancia de rendimiento de alrededor del 25% después de optimizar nuestra SSD.

15

15

PostMark simula 25.000 transacciones de archivos, 500 simultáneamente en cualquier momento, con tamaños de archivo entre 5 y 512KB. Esto simula bastante bien a los servidores web y de correo, y vemos un aumento del rendimiento del 16% después de los ajustes.

11

11

FS-Mark examina 1000 archivos con un tamaño total de 1MB, y mide cuántos pueden ser escritos y leídos completamente en un tiempo preestablecido. Nuestros ajustes se incrementan, de nuevo, con tamaños de archivo más pequeños. Alrededor de un aumento del 45% con los ajustes de ext4.

Acceso al sistema de archivos

7

7

Los puntos de referencia de Dbench prueban las llamadas del sistema de archivos por parte de los clientes, algo así como la forma en que Samba hace las cosas. Aquí, el rendimiento de vanilla ext4 se reduce en un 75%, un importante retroceso en los cambios que hicimos.

8

8

Puede ver que a medida que el número de clientes aumenta, la discrepancia de rendimiento aumenta.

9

9

Con 48 clientes, la brecha se cerró un poco entre los dos, pero todavía hay una pérdida de rendimiento muy evidente por nuestros ajustes.

10

10

Con 128 clientes, el rendimiento es casi el mismo. Usted puede razonar que nuestros ajustes pueden no ser ideales para el uso doméstico en este tipo de operaciones, pero proporcionarán un rendimiento comparable cuando el número de clientes se incremente considerablemente.

12

12

Esta prueba depende de la librería de acceso AIO del kernel. Tenemos una mejora del 20% aquí.

13

13

Aquí, tenemos una lectura aleatoria multihilo de 64MB, y hay un aumento del 200% en el rendimiento aquí! Wow!

14

14

Mientras escribimos 64 MB de datos con 32 subprocesos, todavía tenemos un aumento del 75% en el rendimiento.

4

4

Compile Bench simula el efecto de la edad en un sistema de ficheros tal y como se representa manipulando los árboles del núcleo (creación, compilación, parcheo, etc.). Aquí, puede ver un beneficio significativo a través de la creación inicial del núcleo simulado, alrededor del 40%.

17

17

Estos puntos de referencia simplemente miden el tiempo que se tarda en extraer el núcleo de Linux. No hay mucho de un aumento en el rendimiento aquí.

Resumen

visión generalvisión general

Los ajustes que hicimos en la configuración de Ubuntu para la ext4 ya lista para usar tuvieron un gran impacto. Las mayores ganancias de rendimiento se produjeron en el ámbito de las lecturas y escrituras multihilo, las lecturas de archivos pequeños y las lecturas y escrituras de archivos contiguos de gran tamaño. De hecho, el único lugar real en el que vimos un éxito en el rendimiento fue en simples llamadas al sistema de archivos, algo que los usuarios de Samba deberían tener en cuenta. En general, parece ser un aumento bastante sólido en el rendimiento de cosas como el alojamiento de páginas web y la visualización y transmisión de grandes vídeos.

Tenga en cuenta que esto fue específicamente con Ubuntu Natty 64-bit. Si su sistema o SSD es diferente, su millaje puede variar. En general, sin embargo, parece que los ajustes del programador de fstab e IO que hemos hecho han contribuido en gran medida a mejorar el rendimiento, por lo que probablemente valga la pena intentarlo en tu propio equipo.

¿Tiene sus propios puntos de referencia y quiere compartir sus resultados? ¿Tienes otro ajuste que no sepamos? Dejá tus comentarios!

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *