Respuesta corta
Elija ext4 , y móntelo con la discard
opción de soporte TRIM , o use FITRIM (ver más abajo). Utilice también la noatime
opción si teme "desgaste de SSD".
No cambie su planificador de E / S (CFQ) predeterminado en servidores de múltiples aplicaciones , ya que proporciona imparcialidad entre los procesos y tiene soporte SSD automático. Sin embargo, use Deadline en los escritorios para obtener una mejor capacidad de respuesta bajo carga.
Para garantizar fácilmente una alineación de datos adecuada, el sector inicial de cada partición debe ser un múltiplo de 2048 (= 1 MiB). Puedes usar fdisk -cu /dev/sdX
para crearlos. En distribuciones recientes, se encargará automáticamente de esto.
Piénselo dos veces antes de usar el intercambio en SSD. Probablemente será mucho más rápido en comparación con el intercambio en HDD, pero también desgastará el disco más rápido (lo que puede no ser relevante, ver más abajo).
Respuesta larga
Ext4 es el sistema de archivos de Linux más común (bien mantenido). Proporciona un buen rendimiento con SSD y admite la función TRIM (y FITRIM) para mantener un buen rendimiento de SSD a lo largo del tiempo (esto borra los bloques de memoria no utilizados para un acceso de escritura más rápido). NILFS está especialmente diseñado para unidades de memoria flash, pero en realidad no funciona mejor que ext4 en los puntos de referencia. Btrfs todavía se considera experimental (y realmente no funcionan mejor , ya sea ).
La función TRIM borra los bloques SSD que ya no son utilizados por el sistema de archivos. Esto optimizará el rendimiento de escritura a largo plazo y se recomienda en SSD debido a su diseño. Significa que el sistema de archivos debe poder informarle a la unidad sobre esos bloques. La discard
opción de montaje de ext4 emitirá dichos comandos TRIM cuando se liberen los bloques del sistema de archivos. Este es un descarte en línea .
Sin embargo, este comportamiento implica una pequeña sobrecarga de rendimiento. Desde Linux 2.6.37, puede evitar usar discard
y optar por descartar lotes ocasionales con FITRIM en su lugar (por ejemplo, desde el crontab). La fstrim
utilidad hace esto (en línea), así como la -E discard
opción de fsck.ext4
. Sin embargo, necesitará la versión "reciente" de estas herramientas.
Es posible que desee limitar las escrituras en su unidad, ya que SSD tiene una vida útil limitada a este respecto. Sin embargo , no se preocupe demasiado , el peor SSD de 128 GB de hoy puede admitir al menos 20 GB de datos escritos por día durante más de 5 años (1000 ciclos de escritura por celda). Los mejores (y también los más grandes) pueden durar mucho más tiempo: es muy probable que lo haya reemplazado para entonces.
Si desea usar el intercambio en SSD, el núcleo notará un disco no rotativo y aleatorizará el uso del intercambio (nivelación de desgaste a nivel del núcleo): verá un SS
(Estado sólido) en el mensaje del núcleo cuando el intercambio esté habilitado:
Añadiendo 2097148k swap en / dev / sda1. Prioridad: -1 extensiones: 1 a través de: 2097148k SS
Además, estoy de acuerdo con la mayoría de las respuestas de aliasgar (incluso si la mayor parte ha sido copiada ilegalmente de este sitio web ), pero debo estar en parte en desacuerdo con la parte del planificador . Por defecto, el planificador de fecha límite está optimizado para discos rotativos a medida que implementa el algoritmo de ascensor . Entonces, aclaremos esta parte.
Respuesta larga en planificadores
A partir del kernel 2.6.29, los discos SSD se detectan automáticamente y puede verificar esto con:
cat /sys/block/sda/queue/rotational
Debe obtener 1
discos duros y 0
un SSD.
Ahora, el planificador CFQ puede adaptar su comportamiento en función de esta información. Desde linux 3.1, el cfq-iosched.txt
archivo de documentación del núcleo dice :
CFQ tiene algunas optimizaciones para SSD y si detecta un medio no rotativo que puede admitir una mayor profundidad de cola (múltiples solicitudes en vuelo a la vez), [...].
Además, el planificador Deadline intenta limitar los movimientos de cabeza desordenados en los discos rotativos, en función del número de sector. Citando el kernel doc deadline-iosched.txt
, fifo_batch
descripción de la opción :
Las solicitudes se agrupan en `` lotes '' de una dirección de datos particular (lectura o escritura) que se atiende en orden creciente del sector.
Sin embargo, ajustar este parámetro a 1 cuando se usa un SSD puede ser interesante:
Este parámetro ajusta el equilibrio entre la latencia por solicitud y el rendimiento agregado. Cuando la baja latencia es la principal preocupación, más pequeño es mejor (donde un valor de 1 produce un comportamiento de orden de llegada). El aumento de fifo_batch generalmente mejora el rendimiento, a costa de la variación de latencia.
Algunos puntos de referencia sugieren que hay poca diferencia en el rendimiento entre los diferentes planificadores. Entonces, ¿por qué no recomendar la justicia ? cuando CFQ rara vez es malo en el banquillo . Sin embargo, en las configuraciones de escritorio, generalmente experimentará una mejor capacidad de respuesta utilizando Deadline bajo carga, debido a su diseño (probablemente a un costo de rendimiento más bajo).
Dicho esto, un mejor punto de referencia trataría de usar Deadline con fifo_batch=1
.
Para usar Deadline en SSD de forma predeterminada, puede crear un archivo, por ejemplo /etc/udev.d/99-ssd.rules
:
# all non-rotational block devices use 'deadline' scheduler
# mostly useful for SSDs on desktops systems
SUBSYSTEM=="block", ATTR{queue/rotational}=="0", ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/scheduler}="deadline"
gdisk
&grub 2.0.x
, (supongo que alguien lo mencionó a continuación en una respuesta) y MBR es el método heredado que usa el viejogrub 0.9.7
yfdisk
... puede encontrar más aquí: wiki.archlinux.org/index.php/Solid_State_Drives