martes, 6 de mayo de 2025

Mejorar el rendimiento con ZRAM

En un miniPC como el mío, con 4GB de RAM y un microprocesador N4100, mejoramos mucho su rendimiento utilizando una partición RAM donde almacenamos temporalmente y de forma comprimida la información que no cabe en en el resto de la memoria de trabajo, intercambiándola como si fuera una SWAP (Intercambio) en esa porción de RAM reservada para ello, mejorando así su capacidad de trabajo.

ZRAM es un módulo del Kernel de Linux que permite realizar ese intercambio comprimido, y que es muy útil en los equipos con pocos recursos. 

Para poder usarlo en Debian 12 precisamos instalar zram-tools para poder configurar el espacio de intercambio comprimido, ajustándolo al valor ideal para  cada equipo. Para ello usamos Synaptic:

También es necesario modificar el tamaño del intercambio de memoria con el disco duro o SSD en el archivo /etc/sysctl editándolo con Mousepad (por ejemplo) y añadiendo en la última línea el siguiente argumento:

vm.swappiness=15

Por defecto su valor es 60.

Después de instalar las herramientas ZRAM, por defecto trabaja del siguiente modo:

Abriendo un Terminal, y ejecutando los comandos free -h y cat /proc/swaps obtenemos la imagen anterior.

Por defecto el espacio de intercambio es de 256MB de RAM. Para poder ajustarlo evitando los cuelgues a medida que al ordenador se le va demandando trabajo, editamos el archivo zramswap variando un par de parámetros, como el tamaño de la ventana de intercambio RAM y el algoritmo de compresión de la información. 


  En el archivo /etc/default/zramswap cambiamos el algoritmo de compresión al valor ALGO=zstd Este algoritmo fue desarrollado por Facebook, ahora Meta, y es un algoritmo de compresión de alto rendimiento, demandando al microprocesador un ritmo mayor que los otros, pero el N4100 aguanta el tipo de maravilla; un buen equilibrio entre el elevado ratio de compresión y la velocidad del procesamiento. Puede multiplicar por 3 el valor de la RAM utilizada para el intercambio.

El valor por defecto del algoritmo de intercambio es LZ4, de Yann Collet (un experto en compresión de datos también de Meta), más equilibrado entre velocidad y ratio de compresión.

También cambiamos el espacio de intercambio, aumentando de 256MB a 512MB, exactamente el doble. Lo hacemos editando el parámetro del archivo SIZE=512

El resultado lo podemos comprobar con free -h y cap /proc/swaps:


Se preguntarán, ¿por qué uso un ordenador tan raquítico? Un quijote como yo lo usa para poder valorar aspectos que en los superordenadores actuales pasan desapercibidos, pero, además, porque este microprocesador disipa un máximo de 6w y no precisa ventilador. Ahora escucho música y trabajo de noche con este equipo, y no soporto un ventilador.

Sirve también para ofrecerles esta maravillosa entrada. Gracias.


3 comentarios:

  1. Hola: va estupendamente usando el algoritmo de compresión LZ4 antes que el zstd. Saludos

    ResponderEliminar
  2. ¡Estupendo! Acabo de probarlo yo también, y parece que sí, va mejor. Gracias por el comentario. Saludos.

    ResponderEliminar
  3. Hola: hoy voy a contestarme a mí mismo. El miniPC Chuwi de 4GB de RAM con un microprocesador N4100 va de maravilla con la siguiente configuración de Debian 12 KDE: en /etc/sysctl añadimos la línea siguiente, al final del archivo: vm.swappiness = 50. En /etc/default/zramswap añadimos la siguiente línea: ALGO=LZ4 y SIZE=512. Acostumbrado a XFCE, donde el número de procesos abiertos eran infinitamente menor que en KDE, pensar en estos parámetros no lo concebía. Increíble como va así. Gracias por la lectura de este blog.

    ResponderEliminar