Hay muchos consejos para ajustar su SSD en Linux y muchos informes anecdóticos sobre qué funciona y qué no. Ejecutamos nuestros propios puntos de referencia con algunos ajustes específicos para mostrarle la diferencia real.
Benchmarks
Para comparar nuestro disco, usamos el Conjunto de pruebas Phoronix . Es gratis y tiene un repositorio para Ubuntu, por lo que no tiene que compilar desde cero para ejecutar pruebas rápidas. Probamos nuestro sistema justo después de una nueva instalación de Ubuntu Natty de 64 bits utilizando los parámetros predeterminados para el sistema de archivos ext4.
Las especificaciones de nuestro sistema fueron las siguientes:
- AMD Phenom II de cuatro núcleos a 3,2 GHz
- Placa base MSI 760GM E51
- 3,5 GB de RAM
- AMD Radeon 3000 integrado con 512 MB de RAM
- Ubuntu Natty
Y, por supuesto, el SSD que usamos para probar era un disco OCZ Onyx de 64 GB ( $ 117 en Amazon.com al momento de escribir).
Ajustes destacados
Hay bastantes cambios que la gente recomienda al actualizar a un SSD. Después de filtrar algunas de las cosas más antiguas, hicimos una breve lista de ajustes que las distribuciones de Linux no han incluido como valores predeterminados para los SSD. Tres de ellos implican editar su archivo fstab, así que haga 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 sabe qué es o si quiere repasar cómo funciona, eche un vistazo a HTG explica: ¿Qué es el fstab de Linux y cómo funciona?
Evitar tiempos de acceso
Puede ayudar a aumentar la vida útil de su SSD reduciendo la cantidad de escritura del sistema operativo en el disco. Si necesita saber cuándo se accedió por última vez a cada archivo o directorio, puede agregar estas dos opciones a su archivo / etc / fstab:
noatime, nodiratime
Agréguelas junto con las otras opciones y asegúrese de que estén todas separadas por comas y sin espacios.
Habilitando TRIM
Puede habilitar TRIM para ayudar a administrar el rendimiento del disco a largo plazo. Agregue la siguiente opción a su archivo fstab:
descarte
Esto funciona bien para sistemas de archivos ext4, incluso en discos duros estándar. Debe tener una versión del kernel de al menos 2.6.33 o posterior; está cubierto si está usando Maverick o Natty, o si tiene habilitados los backports en Lucid. Si bien esto no mejora específicamente la evaluación comparativa inicial, debería hacer que el sistema funcione mejor a largo plazo, por lo que se incluyó en nuestra lista.
Tmpfs
La caché del sistema se almacena en / tmp. Podemos decirle a fstab que lo monte en la RAM como un sistema de archivos temporal para que su sistema toque menos el disco duro. Agregue la siguiente línea al final de su archivo / etc / fstab en una nueva línea:
tmpfs / tmp valores predeterminados de tmpfs, noatime, modo = 1777 0 0
Guarde su archivo fstab para confirmar estos cambios.
Cambio de programadores de E / S
Su sistema no escribe todos los cambios en el disco inmediatamente y se ponen en cola varias solicitudes. El programador de entrada y salida predeterminado, cfq, maneja esto bien, pero podemos cambiarlo por uno que funcione mejor para nuestro hardware.
Primero, enumere las opciones que tiene disponibles con el siguiente comando, reemplazando "X" con la letra de su unidad raíz:
cat / sys / block / sdX / queue / planificador
Mi instalación está en sda. Debería ver algunas opciones diferentes.
Si tiene una fecha límite, debe usarla, ya que le brinda un ajuste adicional más adelante. Si no es así, debería poder utilizar noop sin problemas. Necesitamos decirle al sistema operativo que use estas opciones después de cada arranque, por lo que tendremos que editar el archivo rc.local.
Usaremos nano, ya que nos sentimos cómodos con la línea de comandos, pero puede usar cualquier otro editor de texto que desee (gedit, vim, etc.).
sudo nano /etc/rc.local
Encima de la línea "salida 0", agregue estas dos líneas si está usando la fecha límite:
echo fecha límite> / sys / block / sdX / queue / Scheduler
echo 1> / sys / block / sdX / queue / iosched / fifo_batch
Si está usando noop, agregue esta línea:
echo noop> / sys / block / sdX / queue / planificador
Una vez más, reemplace "X" con la letra de unidad adecuada para su instalación. Revise todo para asegurarse de que se vea bien.
Luego, presione CTRL + O para guardar, luego CTRL + X para salir.
Reiniciar
Para que todos estos cambios surtan efecto, debe reiniciar. Después de eso, deberías estar listo. Si algo sale mal y no puede iniciar, puede deshacer sistemáticamente cada uno de los pasos anteriores hasta que pueda reiniciar. Incluso puedes usar un LiveCD o LiveUSB para recuperar si tu quieres.
Sus cambios de fstab se mantendrán durante la vida útil de su instalación, incluso resistiendo las actualizaciones, pero su cambio de rc.local deberá reiniciarse después de cada actualización (entre versiones).
Resultados de la evaluación comparativa
Para realizar las pruebas comparativas, ejecutamos el conjunto de pruebas de disco. La imagen superior de cada prueba es antes de ajustar la configuración de ext4, y la imagen de abajo 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 de archivos grandes
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 el 40%.
IOzone simula el rendimiento del sistema de archivos, en este caso escribiendo un archivo de 8 GB. Nuevamente, un aumento de casi el 50%.
Aquí, se lee un archivo de 8GB. Los resultados son casi los mismos que sin ajustar ext4.
AIO-Stress prueba de forma asincrónica la entrada y la salida, utilizando un archivo de prueba de 2 GB y un tamaño de registro de 64 KB. Aquí, ¡hay un aumento de casi un 200% en el rendimiento en comparación con vanilla ext4!
Operaciones de archivos pequeños
Se crea una base de datos SQLite y PTS le agrega 12,500 registros. Los ajustes de SSD aquí en realidad ralentizaron el rendimiento en aproximadamente un 10%.
Apache Benchmark prueba lecturas aleatorias de archivos pequeños. Hubo una ganancia de rendimiento de aproximadamente un 25% después de optimizar nuestro SSD.
PostMark simula 25.000 transacciones de archivos, 500 simultáneamente en cualquier momento, con tamaños de archivo entre 5 y 512 KB. Esto simula bastante bien los servidores web y de correo, y vemos un aumento del rendimiento del 16% después de los ajustes.
FS-Mark analiza 1000 archivos con un tamaño total de 1 MB y mide cuántos se pueden escribir y leer completamente en un período de tiempo predeterminado. Nuestros ajustes ven un aumento, nuevamente, con tamaños de archivo más pequeños. Aproximadamente un 45% de aumento con los ajustes de ext4.
Acceso al sistema de archivos
Los puntos de referencia de Dbench prueban las llamadas al sistema de archivos por parte de los clientes, algo así como Samba hace las cosas. Aquí, el rendimiento de vanilla ext4 se reduce en un 75%, un gran revés en los cambios que hicimos.
Puede ver que a medida que aumenta el número de clientes, aumenta la discrepancia de rendimiento.
Con 48 clientes, la brecha se cerró un poco entre los dos, pero todavía hay una pérdida de rendimiento muy obvia debido a nuestros ajustes.
Con 128 clientes, el rendimiento es casi el mismo. Puede razonar que nuestros ajustes pueden no ser ideales para uso doméstico en este tipo de operación, pero proporcionarán un rendimiento comparable cuando la cantidad de clientes aumente considerablemente.
Esta prueba depende de la biblioteca de acceso AIO del kernel. tenemos una mejora del 20% aquí.
Aquí, tenemos una lectura aleatoria de varios subprocesos de 64 MB, ¡y aquí hay un aumento del 200% en el rendimiento! ¡Guauu!
Mientras escribimos 64 MB de datos con 32 subprocesos, todavía tenemos un aumento del 75% en el rendimiento.
Compile Bench simula el efecto de la edad en un sistema de archivos representado mediante la manipulación de á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 kernel simulado, alrededor del 40%.
Estos puntos de referencia simplemente miden cuánto tiempo lleva extraer el kernel de Linux. No hay mucho aumento en el rendimiento aquí.
Resumen
Los ajustes que hicimos a la configuración ext4 lista para usar de Ubuntu tuvieron un gran impacto. Las mayores ganancias de rendimiento se dieron en el ámbito de las escrituras y lecturas de subprocesos múltiples, las lecturas de archivos pequeños y las lecturas y escrituras de archivos contiguos grandes. De hecho, el único lugar real donde vimos un impacto en el rendimiento fue en las simples llamadas al sistema de archivos, algo que los usuarios de Samba deben tener en cuenta. En general, parece ser un aumento bastante sólido en el rendimiento para cosas como alojar páginas web y ver / transmitir videos grandes.
Tenga en cuenta que esto fue específicamente con Ubuntu Natty de 64 bits. Si su sistema o SSD es diferente, su millaje puede variar. Sin embargo, en general, parece que los ajustes del programador de fstab y IO que hicimos contribuyeron en gran medida a un mejor rendimiento, por lo que probablemente valga la pena probarlo en su propio equipo.
¿Tiene sus propios puntos de referencia y quiere compartir sus resultados? ¿Tiene otro ajuste que no conocemos? ¡Habla en los comentarios!