Como ya sabéis, nuestros portátiles ultrabooks, montan una unidad
SSD como disco principal del sistema operativo. Mucho se puede leer
sobre la optimización de los SSD en Linux, pero en realidad lo que se
optimiza es el sistema de ficheros y la gestión de los mismos. A
continuación os vamos a decir unos trucos y mejoras muy prácticas.
1 - Montar las carpetas temporales en RAM
Si contamos con 8GB o 16GB de RAM, podemos hacer que la carpeta temporal del sistema no use el disco duro. Es la carpeta donde escriben muchas aplicaciones que estamos usando, como por ejemplo Firefox. Son datos que se borran al apagar el ordenador, con lo que no nos importa que se escriban en RAM.
Lo haremos desde terminal, con sudo, lanzando la edición de fstab:
sudo gedit /etc/fstab |
Y pegando al final estas 2 líneas:
tmpfs /tmp tmpfs noatime,nodiratime,nodev,nosuid,mode=1777,defaults 0 0 tmpfs /var/tmp tmpfs noatime,nodiratime,nodev,nosuid,mode=1777,defaults 0 0 |
Si sueles ocupar casi toda la RAM, por ejemplo porque tienes varias
máquinas virtuales, podrías añadir el parámetro delimitador size antes
de "defaults": size=2G por ejemplo.
2 - Reducir el uso de la partición SWAP
La partición swap, como ya sabéis es una partición cuyo fin principal es su uso cuando la RAM está llena, pero la cual no está vacía aunque tengas la RAM a la mitad. Por ello es recomendable decirle al sistema que la use lo menos posible, sólo si es estrictamente necesario, editando:
sudo gedit /etc/sysctl.conf |
y añadiendo al final del fichero:
#SLIMBOOK TEAM vm.swappiness=1 vm.vfs_cache_pressure=50 vm.dirty_writeback_centisecs=1500 |
3- TRIM: control y orden del espacio vacío por parte del SSD
Cuando borramos un fichero, el sistema operativo lo marca como espacio utilizable. Y desde el año 2010, los discos SSD pueden encargarse de controlar dichos bloques de espacio y reagruparlos, con lo que a través de la controladora del disco, la gestión del espacio será más rápida. Para que la controladora se encargue, le solicitamos que analice el disco desde el sistema operativo con el comando fstrim.
Vamos a programar esta tarea, para que la realice cada semana (podrías, si quieres, programarla como diaria si cambias "weekly" por "daily")
sudo gedit /etc/cron.weekly/fstrim |
Si el fichero está vacío, pon esto que comprueba los discos soportados y lo lanza en todas las particiones. Si no estaba vacío, déjalo como estaba.
#!/bin/sh #SLIMBOOK TEAM /sbin/fstrim --all || true |
Si el fichero estaba vacío, debes darle permisos de ejecución con:
sudo chmod +x /etc/cron.weekly/fstrim |
Hay quien te dirá de montar el disco con el parámetro "discard"
en el fstab, pero de verdad queremos que cada vez que tu o el sistema
borréis un archivo, el ssd re-ubique? Afectaría al rendimiento de
trabajo habitual.
4 - Desactivar la gestión del algoritmo de I/O de disco:
Al no tratarse de discos rotativos, no es necesario que el cálculo de algoritmos de optimización de acceso por planificaciones de Entrada y Salida de datos. [Vease la Wikipedia] Con lo que montamos la unidad sin que se hagan estos cálculos, editando:
sudo gedit /etc/default/grub |
y buscando el parámetro GRUB_CMDLINE_LINUX para añadirle "elevator=noop", de manera que si no tenemos más parámetros, nos quedaría:
GRUB_CMDLINE_LINUX="elevator=noop" |
Para que estos cambios se guarden, es muy importante hacer un:
sudo update-grub |
5 - Montar el disco optimizando la lectura y escritura de datos
En este paso, volvemos a editar el fstab, como al principio. Lo he dejado para el final, porque si nuestro SO no admite algún parámetro, podemos impedir que arranque nuestro ordenador, con lo que haz esto sólo si sabes recuperar una partición desde un Live USB.
Editamos fstab:
sudo gedit /etc/fstab |
Y buscamos la línea que monta nuestra partición raíz, el formato será este, pero las X serán en realidad una cadena alfanumérica bastante larga:
UUID=XXXXXXXXXXX / ext4 errors=remount-ro 0 1 |
y añadiremos varios parámetros, de manera que quedará algo como esto:
UUID=XXXXXXXXXXX / ext4 noatime,discard,nodelalloc,barrier=0,i_version,commit=30,inode_readahead_blks=64,errors=remount-ro 0 1 |
Cómo comentaba antes, en el paso 3, no indicamos discard; y tampoco indicaremos data=writeback, ya que no funciona en varios sistemas. Si queréis entender que habéis hecho, os pongo los detalles. Y no olvidéis reiniciar para que los cambios tengan efecto.
noatime: Con esto desactivamos que se escriba en cada fichero la fecha de acceso (se seguirá escribiendo la de modificación, creación, etc). Si tenemos en cuenta que también se anota el acceso a los ficheros cacheados y el acceso constante a todos los ficheros de procesos del sistema, son un número importante de escritura de fechas de acceso. Si ponemos esto, no es necesario poner nodiratime, ya que está implícito.
discard: Recomendado para Sistemas de ficheros ubicados en SSDs.
nodelalloc: Desactiva la función de exta 4 de delalled allocation, que reserva el espacio pero no lo escribe. Es más que nada por seguridad.
barriend=0: Reducción del numero de barridos de escritura. Si estuviésemos en un ordenador sin batería, no sería recomendable, pero no es el caso.
i_version: Habilita el uso del a versión extendida de 64 bits en sistemas de ficheros ext4
commit=30: Retrasa la escritura de los metadatos de ficheros, con lo que se reduce mucho el uso de disco. No recomendable si estuviésemos en un ordenador con batería.
inide_readhead_blks=64: Aumenta de 32 a 64 el tamaño de los bloques de lectura.
Restaurar backups desde la aplicación Slimbook Essentials
Si se ha usado nuestra aplicación para optimizar el SSD, te explicamos cómo puedes restaurar tu sistema en caso de fallo.
Una vez se ha ejecutado el botón "Optimizar SSD" y se ha decidido continuar con el proceso, éste creará automáticamente una copia de seguridad (o backups) de los ficheros que está modificando con el fin de conservarlos. Dichos ficheros se guardarán en la siguiente ruta:
/usr/share/slimbookessentials/backups |
Si todo ha ido correctamente, deberían verse cuatro ficheros con una estructura similar a «[nombrefichero]_slimbookbackup_[fecha]».
Si asumimos un error con el proceso por el cual el equipo no consigue arrancar correctamente, arrancaremos el equipo desde un Live CD para poder seguir operando con él. Lo importante ahora es re-ubicar correctamente los archivos que obtuvimos remplazando los que han resultado dañados por el proceso:
- El archivo fstab será devuelto a "/etc/".
- El archivo sysctl.conf será devuelto a "/etc/".
- El archivo fstrim será devuelto a "/etc/cron.weekly/".
- El archivo grub será devuelto a "/etc/default/".
¡Ojo! Recuerda renombrar los backups de forma que queden como los citados nombres. Si no, no servirá de nada que los re-ubiques.
Y por ahora ya tenemos suficiente optimización. No dejéis de compartirnos en las redes sociales ;)