Optimizar SSD en GNU/Linux

3 minutos de lectura

Se que hay muchos tutoriales en Internet de como optimizar y configurar un disco SSD en GNU/Linux, a los que suelo recurrir cuando cambio de distribución, aunque no soy muy dado a ello, pero es que en cosa de pocos meses ya he pasado por Antergos, Arch, OpenSuse Tumbleweed y ahora parece que he encontrado mi sitio en Fedora

Así, para evitar esas búsquedas, dejo estos apuntes por aquí para mi yo del futuro

Antes de empezar

Si además del disco SSD, dispones de otro disco mecánico, instala /home en él.

Procura no realizar muchas particiones en el disco SSD, a menor espacio mas reescrituras.

Mover los archivos temporales a la RAM

Para ello editamos el fichero fstab

sudo nano /etc/fstab

Y peganos al final estas líneas:

#Temporales
tmpfs   /tmp       tmpfs   defaults,noatime,mode=1777   0 0
tmpfs   /var/tmp   tmpfs   defaults,noatime,mode=1777   0 0
tmpfs   /var/log   tmpfs  defaults,noatime,mode=0755    0 0

No usar Partición SWAP

Esto es fácil, si tienes suficiente memoria RAM (>8GG) no la crees :-)

Si la necesitas, procura usarla lo menos posible, edita el fichero:

sudo nano /etc/sysctl.con

Y añade al final del fichero:

vm.swappiness=1
vm.vfs_cache_pressure=50
vm.dirty_writeback_centisecs=1500

TRIM

Via fstab

Con la opción discard se habilita el uso de TRIM y con noatime desactivamos que se escriba en cada fichero la fecha de acceso (se seguirá escribiendo la de modificación, creación, etc):

UUID=f68f9bb6-67c9-4605-a40f-2933c097e25e  /                       ext4    noatime,errors=remount-ro        0 1
UUID=3fe674fa-a311-4ead-8af3-090f679b390b  /boot                   ext4    noatime,errors=remount-ro        0 2
UUID=9B75-8820                             /boot/efi               vfat    umask=0077,shortname=winnt 0 2
UUID=02ee7f01-6db0-43a2-b252-039411421e7f  /home                   ext4    noatime,errors=remount-ro        0 2

#Temporales
tmpfs   /tmp       tmpfs   defaults,noatime,mode=1777   0 0
tmpfs   /var/tmp   tmpfs   defaults,noatime,mode=1777   0 0
tmpfs   /var/log   tmpfs   defaults,noatime,mode=0755    0 0

Con discard cuando se borre un archivo en el disco SSD se ejecuta TRIM, es decir, vuelve a ubicar las celdas del disco, además, si borramos un archivo por error no podremos volver a recuperarlo.

Por estas razones, yo prefiero utilizar fstrim.

fstrim

Antes de comenzar asegúrate que tienes instalado el paquete util-linux que es el nos va a proporcionar fstrim

Configuración

  • Arch
Activamos `fstrim.timer` que activa y programa la frecuencia de uso de
`fstrim.service`

```text
sudo systemctl enable fstrim.timer
```

Podemos ver su estado

```text
sudo systemctl status fstrim.timer
[sudo] password for carlos:
● fstrim.timer - Discard unused blocks once a week
   Loaded: loaded (/usr/lib/systemd/system/fstrim.timer; enabled; vendor preset: disabled)
   Active: active (waiting) since Sat 2019-10-19 14:05:37 CEST; 8h ago
  Trigger: Mon 2019-10-21 00:00:00 CEST; 1 day 1h left
     Docs: man:fstrim
```

Podemos ver que _TRIM_ se ejecutará una vez a la semana y que aun queda un
dia y una hora para ello.
  • Fedora
En Fedora `fstrim` viene instalado, aunque por defecto está
desactivado, al igual que en Arch, para avtivarlo

```text
sudo systemctl enable fstrim.timer
```
  • Ubuntu
Edita el fichero

```text
sudo nano /etc/cron.weekly/fstrim
```

Y añade

```text
#!/bin/sh
/sbin/fstrim --all || true
```

Asegúrate de que tenga permisos de ejecución:

```text
sudo chmod +x /etc/cron.weekly/fstrim
```

Firefox

Si usas el navegador web Firefox podemos hacer que la cache se guarde en memoria en vez del disco, para ello en la barra de direcciones escribe about:config y pon los siguientes valores

browser.cache.disk.parent_directory	/dev/shm/firefox-cache
browser.cache.disk.smart_size.first_run	false
browser.cache.disk.smart_size.use_old_max	false

Referencias: