Monday, April 8, 2013

[Tutorial] Mejorar el rendimiento de un SSD en Ubuntu

Antes de comenzar

La mayoría de estos cambios necesitan el uso del Terminal. Así mismo la mayoría de cambios van a permitir que el computador escriba menos seguido en el disco. De este modo nuestro SSD va a durar más tiempo.

Activar el soporte TRIM

Vamos a tener que editar el archivo fstab. Para eso vamos a abrir un terminal y escribimos lo siguiente:

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

Esto nos va a permitir hacer un respaldo en caso de que escribamos mal alguna de las opciones. Luego desde el mismo terminal vamos a abrir un editor de texto (yo uso nano porque no tenemos que escribir muchas cosas, pueden usar gedit, o lo que más les guste):

sudo nano /etc/fstab

Vamos a llegar a una pantalla que se parece más o menos a esto:


Ya podemos ver las opciones que vamos a introducir en este archivo.

Su fstab puede ser diferente al mío dependiendo de las particiones que utilicen.

En el caso general uds. van a tener solo un par de particiones una para el swap y otra para todo su sistema. En todo caso al lado de donde diga "ext4" o cualquier tipo de gestión de archivos que utilicen van a introducir las palabras:

discard,noatime,nodiratime

Y listo así podrán activar el soporte TRIM para su SSD.

Para usar la RAM como memoria para los archivos temporales


En el mismo archivo fstab vamos a poder decirle al sistema que guarde todos los archivos temporales en la RAM, estos se perderan si apagamos nuestra máquina o si la ponemos en hibernación. Me parece muy útil ya que no utilizo los archivos temporales luego de apagar mi máquina y así evito escrituras innecesarias en mi disco duro.

Introducimos la líneas siguiente:

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

Listo, para que los cambios tengan efecto hay que reiniciar el computador. Pero antes hay otros cambios que podemos hacer.

Ultimos cambios


Existen tres tipos de "calendarios" que utiliza el sistema para escribir en el disco: deadline, noop, cfq. El último es el que se utiliza por defecto en una nueva instalación pero no es muy recomendable para los SSDs ya que usan mucho el disco.

Podemos verificar que tipo estamos usando con el comando siguiente:

cat /sys/block/sda/queue/scheduler

Dependiendo de como usen su disco, es decir si usan otros discos duros puede que necesiten cambiar el comando usando "sdb" en vez de "sda" o "sdc", etc...

Una vez que hicimos eso, vamos a ver una línea como esta:

noop deadline [cfq]

Vamos a volver a tener que cambiar un archivo para poder utilizar uno de los otros dos calendarios. Los "[]" significan que cfq está siendo utilizado. No estoy muy seguro de la diferencia entre noop y deadline pero cualquiera de los dos está bien.

De nuevo desde el terminal:

sudo nano /etc/rc.local

Vamos a aumentar estas dos líneas antes del "exit 0" del archivo. Después de los comentarios que comienzan con # el archivo debe verse así. Así mismo si su SSD está en sdb, sdc... deberán cambiar el código.

echo deadline > /sys/block/sda/queue/scheduler
echo 1 > /sys/block/sda/queue/iosched/fifo_batch


exit 0

Si quieren intentar usar noop en vez de deadline solo deben cambiar la primera línea escribiendo noop en vez de deadline justamente.

Aquí hay una página en inglés donde además de explicar todos los cambios hechos aquí hacen algunos tests para ver cómo influyen los cambios hechos: Tests SSD (inglés)

Ahora lo unico que tienen que hacer es resetear su computador y voilà!

1 comment:

  1. La opción noatime ya incluye nodiratime. No es necesario especificar ambas.
    De: https://wiki.archlinux.org/index.php/Fstab_%28Espa%C3%B1ol%29

    ReplyDelete