Utilice Zswap para mejorar el rendimiento en una computadora Linux con pequeñas cantidades de RAM
Por supuesto, algunos de nosotros no actualizamos con tanta frecuencia. O al menos, como usuarios de Linux, nos gusta reconstruir nuestras viejas computadoras portátiles. Muchas distribuciones se ejecutan cómodamente en sistemas con pequeñas cantidades de RAM (memoria de acceso aleatorio). Sin embargo, los navegadores no son tan indulgentes, ya que requieren cada vez más memoria a medida que Internet evoluciona.
Mientras que un sistema con un escritorio LXDE puede ocupar hasta 150 MB de RAM después de arrancar, Chromium, Chrome o Firefox consumirán rápidamente cientos de megabytes e incluso más gigabytes de RAM cuando abrimos algunas pestañas.
¡Y luego sucede! El disco duro comienza a hacer este chirrido. La música empieza a tartamudear. Cuando cambiamos a otra aplicación, tardan decenas de segundos en aparecer en la pantalla. Incluso el cursor del mouse puede comenzar a retrasarse. Este es el efecto de sobrescribir el disco.
¿Qué es la sobrescritura de disco?
En primer lugar, debemos comprender el intercambio. Cuando nos quedamos sin RAM libre, los datos de la aplicación a los que el sistema operativo no ha accedido durante mucho tiempo se trasladan al área de intercambio. Esto sucede a menudo en un dispositivo de almacenamiento físico. Al hacer esto, el sistema operativo puede liberar el espacio de memoria que ahora necesita un programa. De esta forma, una pestaña de nuestro navegador a la que no hemos accedido en la última hora se puede cambiar en su disco duro. Ahora se puede ejecutar el editor de imágenes GIMP. Cuando lo cerramos y volvemos a esa pestaña anterior, el sistema operativo lo cambia a memoria (lo lee del disco y lo copia a la RAM).
Este mecanismo funciona bien cuando modifica pequeñas cantidades de datos. Pero cuando, digamos, solo hay 2 GB de RAM disponibles y todos los programas que hemos abierto necesitan 4 GB, el sistema operativo tiene que cambiar constantemente. Mover datos de memoria a disco, de disco a memoria y viceversa es muy lento, especialmente con discos duros. En tal situación, el dispositivo de almacenamiento no puede responder a las solicitudes con la suficiente rapidez. En resumen, cuando aparece el disco, las cosas se ponen muy lentas.
Los SSD son excelentes para intercambiar
Otro mito está circulando en Internet: “Nunca configure un intercambio en un SSD. ¡Matará tu dispositivo! «Esto era cierto hace unos años, pero no lo es. De hecho, configurar un intercambio en un SSD funciona muy bien. Si su computadora incluye un SSD que tiene un buen rendimiento de lectura / escritura (al menos 300 MB), configure un intercambio particione en él e ignore el resto de este artículo.Cuando el sistema operativo necesita cambiar 1 GB de datos, tomará menos de cinco segundos, mientras que en un disco duro, tomará más de un minuto.
Cómo reducir drásticamente la eliminación del disco en Linux
Afortunadamente, la mayoría de los datos almacenados en la RAM son muy comprimibles. Esto significa que si tomamos 200 MB de datos almacenados en la memoria y los comprimimos, podemos reducir el tamaño a 100 MB, por lo que el sistema tendrá que escribir muchos menos datos en el disco al realizar el intercambio.
Imagínese que en lugar de esperar treinta segundos para cambiar a un programa, tuviera que esperar quince. Es una mejora tangible. Pero, de hecho, la aceleración es mucho más importante (puede ser necesario esperar menos de diez segundos), porque la herramienta que estaremos usando es más sofisticada que eso. Envía inteligentemente al disco solo aquellos bits que no se pueden comprimir, manteniendo el resto en una parte reservada de la memoria. Si desea saber más sobre sus componentes internos, consulte la página oficial del kernel de Linux en zswap.
Una versión simple de los beneficios que obtenemos al usar zswap es que en lugar de ralentizaciones horribles cuando nos quedamos sin memoria, tenemos ralentizaciones leves y tolerables que duran unos segundos en lugar de decenas de segundos o incluso minutos.
Cómo activar zswap en distribuciones basadas en Debian (Ubuntu, Linux Mint, etc.)
Abra una aplicación de terminal y ejecute este comando para modificar el archivo de configuración de la plantilla de descarga de Grub:
sudoedit /etc/default/grub
Utilice las teclas del cursor para navegar hasta la línea que comienza con «GRUB_CMDLINE_LINUX_DEFAULT». Entre comillas, agregue lo siguiente:
zswap.enabled=1
Por ejemplo, una línea que era GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
obtiene GRUB_CMDLINE_LINUX_DEFAULT="quiet splash zswap.enabled=1"
.
Para guardar el archivo, presione control + X, seguido de «y» y luego Enter.
Genere los nuevos archivos de configuración de Grub de acuerdo con la plantilla que editamos anteriormente:
sudo update-grub
Reinicie y el módulo zswap se activará automáticamente.
Cómo activar zswap en Fedora y OpenSUSE
El procedimiento aquí es similar al de la sección anterior, pero con algunos giros y vueltas. Edite el archivo de configuración de la plantilla de Grub.
sudoedit /etc/default/grub
Agregar zswap.enabled=1
entre comillas, en la línea que comienza con GRUB_CMDLINE_LINUX
.
Prensa control + X, seguido de «y» y luego Enter para guardar el archivo.
Dependiendo del arranque de la computadora desde un sistema BIOS o UEFI, el archivo de configuración de Grub se genera de manera diferente. Para saber dónde vive actualmente, ingrese el siguiente comando:
sudo find /boot/ -name grub.cfg
Utilice la ruta que se muestra aquí en el siguiente comando. Por ejemplo, en nuestro caso, la ruta encontrada fue «/boot/grub2/grub.cfg», así que la agregaremos al final del siguiente comando después de «-o»:
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
Reinicie la PC. Después de reiniciar, verifique que el módulo esté activo:
cat /sys/module/zswap/parameters/enabled
Si la salida es «Y», entonces el módulo está funcionando correctamente.
Cómo activar zswap en Arch Linux
Instale el paquete systemd-swap:
sudo pacman -Sy systemd-swap
Haga que este paquete funcione como por arte de magia al inicio:
sudo systemctl enable systemd-swap
Inícielo ahora, sin reiniciar:
sudo systemctl start systemd-swap
Para verificar que todo funcionó como se esperaba, verifique que el módulo zswap esté habilitado:
cat /sys/module/zswap/parameters/enabled
Si la salida es «Y», significa que el módulo está activo.
Cómo activar zswap en diferentes distribuciones
En términos generales, habilitar zswap al inicio es tan fácil como agregarlo zswap.enabled=1
a los parámetros del kernel. La mayoría de las distribuciones usan Grub2 por defecto como cargador de arranque. Si está utilizando otro cargador de arranque, busque el archivo de configuración donde almacena los parámetros del kernel para pasar en el arranque y agregar zswap.enabled=1
como parámetro adicional.
Otra configuración con la que puede jugar para ver si mejora el rendimiento para su caso de uso específico es zswap.max_pool_percent=20
. Puede ajustarlo cambiando el número al final: por ejemplo, zswap.max_pool_percent=50
.
Añádalo a mismos parámetros del kernel que agrega zswap.enabled=1
. Se recomienda no exceder el 50%, ya que más de esto puede afectar negativamente a los sistemas con pequeñas cantidades de RAM.
Conclusión
Si con frecuencia se queda sin RAM en su sistema anterior y experimenta los molestos efectos del disco, inmediatamente notará y apreciará la diferencia a partir de ahora. En lugar de ralentizaciones horribles, experimentará un ligero retraso temporal que dura unos segundos (en lugar de unos minutos) cuando el sistema operativo tiene que modificar una gran cantidad de datos en el disco. Podrá continuar trabajando en situaciones en las que no pudo usar su computadora durante el cambio.