Esta web utiliza cookies, puedes ver nuestra política de cookies, aquí Si continuas navegando estás aceptándola

Discos SSD bajo Linux


Alineación particiones:

Comenzaremos comprobando que las particiones están alineadas, el tamaño de bloque a nivel físico es diferente de 4k, por lo tanto hay que alinear las particiones, fdisk, parted lo hacen de forma automática, para comprobarlo:

blockdev --getalignoff /dev/<partition>
0

 

Soporte TRIM:

TRIM permite que el sistema operativo informe a una unidad SSD sobre qué bloques de datos no están en uso y pueden ser borrados.
Esto tiene especial importancia en el caso de los discos de estado sólido, pues las memorias flash de tipo NAND que componen los SSD no pueden sobrescribir datos existentes. Antes de escribir nuevos datos sobre los existentes, es necesario borrarlos primero. A este problema se suma el hecho de que la unidad mínima de borrado es un bloque, mientras que la unidad de escritura mínima es una página (un bloque son 64 páginas).

Esto significa que conforme pasa el tiempo, el disco SSD se irá, en cierto modo, fragmentando internamente (no de la misma manera que los discos duros tradicionales) quedando páginas con bloques vacíos, lo que hará que en algún momento que aún cuando haya espacio libre en el SSD, no quedarán páginas vacías en las que escribir. Esto hará que disminuya el rendimiento debido a que para escribir datos nuevos habrá que reagrupar los bloques que están dispersos, copiándolos a una memoria intermedia, borrándolos y reuniéndolos todos de nuevo en una misma página.

 

 

 

 

hdparm -I /dev/sdX | grep TRIM
       *    Data Set Management TRIM supported (limit 1 block)
       

vi /etc/fstab
/dev/<partition>  /       ext4   defaults,noatime,noadirtime,discard   0  1


Si no queremos montar la partición con la opción discard por cualquier motivo se puede ejecutar un cron cada cierto tiempo para que informe al disco del espacio disponible:

*/5   *   *   *   *   fstrim -v / &> /dev/null


Algoritmo de acceso a disco:

Otro aspecto importante a tener en cuenta es el algoritmo utilizado para acceder al disco, en la mayoría de test que podemos encontrar en Inet se recomienda noop, lo primero será tener soporte en el kernel para este scheduler:

Scheduler:
-> Enable the block layer
  -> IO Schedulers
    -> Default I/O scheduler
        NOOP/Deadline

 

Indicamos el scheduler a utilizar con el disco X:

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

 

Podemos crear un script que se ejecute en el arranque, de este modo el scheduler quedará configurado de forma automática:

vi /etc/local.d/tweaks.start
#!/bin/bash
echo noop > /sys/block/sdX/queue/scheduler

 

chmod +x /etc/local.d/tweaks.start


Reducción del uso de swap:

Si disponemos de suficiente RAM es conveniente reducir el uso de la swap al máximo.

vi /etc/sysctl.conf
vm.swappiness=1
vm.vfs_cache_pressure=50


Noatime, noadirtime:

vi /etc/fstab
/dev/sda1  /       ext4   defaults,noatime,nodiratime,discard   0  1

 

Meter /tmp en un sistema de ficheros en RAM:

Los ficheros temporales son precisamente temporales, es decir solo son necesarios mientras el proceso que los creó siga activo, porque no meterlos en ram?

tmpfs                   /tmp                    tmpfs   noatime,nodiratime,noexec,nosuid,size=512m       0 0

 

Configurar navegadores para que utilicen el tmpfs:

La idea es meter los profiles de los navegadores en un sistema de ficheros en ram y sincronizar a hd periodicamente

vi /etc/fstab
tmpfs                   /tmp                    tmpfs   noatime,nodiratime,noexec,nosuid,size=512m       0 0

 

emerge -av www-misc/profile-sync-daemon

vi /etc/psd.conf
USERS="kr0m"
BROWSERS="google-chrome firefox"

 

Comprobamos la config:

profile-sync-daemon parse

 

Arrancamos el servicio y lo metemos en el arranque.

/etc/init.d/psd start
rc-update add psd default

 

Cache de las X:
Metemos la cache de las X en el tmpfs.

vi /etc/env.d/30xdg-data-local
XDG_CACHE_HOME="/tmp/.cache"

 

Último firmware:

Los fabricantes de controladoras de disco van arreglando fallos y optimizando los firmwares, es altamente recomendable actualizar a la última versión disponible.


Autor: Kr0m -- 15/09/2014 06:09:03