Hace poco adquirí un nuevo portátil, con disco SSD. Era uno de los pocos requisitos, pero casi indispensable para la compra. El precio era la otra gran incógnita.
Tras la instalación del nuevo sistema operativo, en este caso opté por una Linux Mint (XFCE Edition), pude probar de primera mano la velocidad de esta nueva tecnología. Sorprende!
El gran problema de la tecnología SSD es que tiene un límite máximo de escrituras y es por ello que hay que cuidarlo diariamente. Cuando más podamos reducir las escrituras, mejor.
Otro de los aspectos a tener en cuenta es el cambio radical del acceso a disco. Ahora el acceso es directo (al igual que en un pen drive) y no depende de una cabeza lectora. Por lo tanto, el algoritmo de optimización de escritura, que traen todos los kernel's puede ya no ser útil. Es por ello, que en este artículo voy a describir los pasos que seguí a la hora de optimizar la instalación.
- Uso de TRIMTRIM es una orden especial para trabajar con discos SSD que permite al SO comunicarle al disco qué bloques ya no están en uso, para poder marcarlos como libres. El propósito de esta instrucción es mantener la velocidad del disco durante toda su vida.Lo primero que tenemos que saber es si nuestro disco soporta este tipo de tecnología. Se presupone que sí, pero mejor garantizarnos. Para ello,
shell> hdparm -I /dev/sda | grep TRIM * Data Set Management TRIM supported (limit 8 blocks)
Con usa salida similar a esta, significa que tenéis soporte TRIM. Ahora debemos de montar cada partición que esté sobre el disco SSD con la opción discard. Para ello, editamos el fichero fstab y añadimos y cambiamos las líneas implicadas (ajustar a cada disco y cada partición como corresponda)/dev/sda1 / ext4 errors=remount-ro 0 1
por/dev/sda1 / ext4 discard,errors=remount-ro 0 1
- Optimización de /etc/fstabA mayores de los cambios de discard, en el fichero fstab también podemos tener otro tipo de optimizaciones, como las que suponen noatime y nodiratime. Ambas evitan que se escriban los datos de acceso a ficheros y directorios cada vez que estos se producen. Para un equipo de sobremesa o un portátil, es una buena idea, puesto que no nos interesa tener estos datos.
/dev/sda1 / ext4 noatime,nodiratime,discard,errors=remount-ro 0 1
Este cambio, con la mayoría de programas no supone problema alguno. Quizás haya alguno que sí necesite tener estos datos escritos. Si es así, entonces podemos pensar en cambiar ambas opciones por "norelatime", que sí escribe los datos, pero no cada momento que se producen. - Deshabilitando el uso de SWAPCon la cantidad de RAM que actualmente traen los equipos, mínimo hablamos de 4Gb de RAM, sino más, es lógico pensar que no se vaya a usar la SWAP. Si optaste por crear una partición SWAP, vamos a desactivarla para que no se use. En caso de que sea necesario su uso en un futuro, el cambio es fácilmente reversible. En el fichero, /etc/sysctl.conf agregamos la línea
vm.swappiness=0
- Aprovechamiento de la RAMSí, vamos a optar por llevar todos aquellos directorios temporales sobre los que se hacen muchas pequeñas escrituras a la RAM. Esto hará que se hagan más rápido y también que no se emplee el disco para datos temporales. Esta opción es realmente aplicable a cualquier sistema con mucha RAM, ya que siempre es más rápida que el disco.Yo personalmente opté por dejar en memoria los directorios /tmp, /var/tmp y /home/USER/.cache, los que más datos temporales suelen tener. Para ello, escribí en el fichero /etc/fstab lo siguiente.
tmpfs /home/javier/.cache tmpfs size=1024M,mode=777 0 0 tmpfs /tmp tmpfs noatime,mode=1777 0 0 tmpfs /var/tmp tmpfs noatime,mode=777 0 0
Los directorios que querráis poner en RAM ya es cosa vuestra, simplemente tener en cuenta cuando el equipo se apaga, esos datos se pierden. Leí artículos que hablaban de llegar a poner /var/log en RAM y también los directorios de lock y run. Personalmente esos datos a mi me interesa tenerlos, así que no los pasé a RAM. - Modificar cola de escritura en discoOtro de los grandes cambios, y ya el último, es cambiar el plafinicador de escritura a disco. Vamos a pasar de tener el por defecto, deadline a noop.
shell> cat /sys/block/sdX/queue/scheduler noop [deadline] cfq
Para ello editamos el fichero /etc/default/grub y dejamos la línea tal como sigue,... GRUB_CMDLINE_LINUX="elevator=noop" ...
Y a continuación, actualizamos el grub para que recoja los cambios.shell> update-grub
Con todo esto, lo mejor es reiniciar ahora el equipo, para que arranque con todos los cambios. Tras el obligado reboot, tendremos el sistema tal que así,
shell> cat /sys/block/sda/queue/scheduler [noop] deadline cfq shell> mount /dev/sda1 on / type ext4 (rw,noatime,nodiratime,discard,errors=remount-ro) tmpfs on /tmp type tmpfs (rw,noatime,mode=1777) tmpfs on /run type tmpfs (rw,noexec,nosuid,size=10%,mode=0755) tmpfs on /var/tmp type tmpfs (rw,noatime,mode=777) tmpfs on /home/javier/.cache type tmpfs (rw,size=1024M,mode=777)
Y el sistema debería de hacer menos escrituras en disco e ir realmente bien.
La entrada Optimización de Linux con discos SSD la puedes leer en El mundo en Bits.
No hay comentarios :
Publicar un comentario