Pues verás, uno de los problemas más fastidiosos que he tenido son los numerosos líos relacionados con la falta de memoria RAM. Por supuesto, esto es gracias a que tengo contratado el paquete mínimo; aun así, dado mi escasísimo tráfico, no debería tener estos problemas. Por eso, zram viene en un contexto donde swap pudo haber ayudado, pero no es recomendado porque DigitalOcean mismo advierte que no se debería usar swap en un droplet con SSD.
Introducción
Como ya me he quejado antes en otros artículos, al usar un droplet de espacio tan limitado como el modelo básico de 1GB de RAM y 25GB de disco SSD, frecuentemente encuentro problemas de escasez de memoria RAM, por lo que mis servicios se caen o dejan de funcionar. Esto podría haber sido lidiado con swap, pero digitalOcean prefiere que no lo active, y de hecho se encuentra desactivado por defecto, para evitar la degradación de los discos SSD pues, tienen un tiempo limitado de vida. Aún así, y teniendo en cuenta que hace poco escribí una entrada hablando de zram me di cuenta de que esa era la solución. ZRAM no escribe en el disco, sino que trabaja reservando un espacio de la memoria RAM y comprimiendo allí mismo los datos, de tal manera que puede con las configuraciones apropiadas, duplicar la RAM. Por supuesto, esto no es mágico y depende de ciertas circunstancias, pero para el propósito que se contrata un droplet tan básico, es suficiente.
Como activar zram en debian
En Debian es sumamente sencillo gracias al paquete oficial zram-tools. Abre tu terminal y ejecuta los siguientes comandos como usuario root o usando sudo:
sudo apt update && sudo apt install zram-tools -y
Luego, basta con configurar los parámetros optimizados
sudo nano /etc/default/zramswap
Dentro del archivo, busca las siguientes líneas, descoméntalas (elimina el símbolo # si lo tienen) y edítalas para dejarlas con estos valores ideales para un VPS de 1 GB:
- ALGO=zstd (Utiliza el algoritmo de compresión zstd, balance perfecto entre ahorro de espacio y velocidad de CPU).
- PERCENT=60 (Asigna hasta un 60% de tu RAM física para ser usada como bloque comprimido, lo que equivale a unos 600 MB en tu máquina de 1 GB). [1, 2]
Guarda los cambios presionando Ctrl + O, confirma con Enter y sal con Ctrl + X.
Y finalmente acepta los cambios reiniciando el demonio de zram:
sudo systemctl restart zramswap
Por supuesto, puedes confirmar que el servicio esta funcionando con el siguiente comando:
sudo swapon –show
deberia salirte algo similar a esto:
NAME TYPE SIZE USED PRIO
/dev/zram0 partition 600M 0B 100
Por supuesto, puedes echarle un ojo tambien a la salida del comando htop. en mi caso deje solo 256M para zram puesto que he optimizado el droplet y ya no necesito tanta RAM como antes.

Conclusiones
Zram es una utilidad muy necesaria para poder optimizar y sacarle hasta lo último al hardware limitado, pero te advierto que no es raro que hayan novedades. Tendrás más holgura sí, pero como mencioné en el artículo anterior, la razón por la que algo tan bueno no viene activo por defecto es porque puede haber inestabilidad en el sistema. Aún así, está muy optimizado y la probabilidad de que ocurra algo malo es bajísima. Ya lo tengo activo en mi droplet, por lo que si ocurre algo, terminaré reportándolo por aquí jajaja


