The art of balance: 16 GB zRAM and 30 GB physical swap on Debian 13

Advertisement

1. Introduction

En el ecosistema Linux, la gestión de memoria es el corazón del rendimiento. Históricamente, cuando la memoria RAM se agotaba, el sistema recurría a la «Swap» en disco, un proceso lento que a menudo degradaba la experiencia del usuario. Sin embargo, con la llegada de zRAM, hemos entrado en una era donde podemos «expandir» nuestra RAM mediante algoritmos de compresión en tiempo real. En este artículo, exploraremos cómo configurar un sistema con 16 GB de RAM para que utilice una partición zRAM equivalente, manteniendo al mismo tiempo una swap física para no sacrificar la capacidad de hibernación.

2. ¿Qué es zRAM?

zRAM es un módulo del kernel de Linux que crea un dispositivo de bloque en la memoria RAM donde los datos se comprimen. En lugar de enviar las páginas de memoria inactivas al disco (lento), las comprime y las mantiene en la memoria volátil (ultra rápido).

Es, en esencia, un «mecanismo de intercambio sobre RAM comprimida». Al usar algoritmos modernos como zstd, podemos alcanzar tasas de compresión de 3:1, transformando virtualmente 16 GB de swap en una capacidad de almacenamiento de datos mucho mayor sin tocar el hardware de almacenamiento.

3. ¿Qué es la Swap?

The Swap tradicional es un espacio dedicado en el disco duro (partición o archivo) que actúa como una extensión de la memoria física. Su función principal es doble:+1

  1. Red de seguridad: Evitar que el sistema cierre aplicaciones por falta de memoria (Out of Memory).
  2. Hibernación: Permitir el volcado completo del estado de la RAM física al disco para que el equipo pueda apagarse por completo y retomar el trabajo exactamente donde se dejó.

4. Características: zRAM vs. Swap Física

FeaturezRAMSwap Física (SSD/HDD)
VelocidadVelocidad de bus de memoria (GB/s)Velocidad de bus de disco (MB/s)
LatenciaCasi nula (nanosegundos)Alta (milisegundos)
PersistenceVolátil (se borra al apagar)Persistente (sobrevive al apagado)
Uso de CPUBajo (para compresión)Nulo
Ideal paraRendimiento diario y multitareaHibernación y seguridad de datos

5. Instalación de zRAM en Debian 13

Debian 13 facilita este proceso mediante el paquete zram-tools, que gestiona la creación y destrucción de los dispositivos de bloque de forma automatizada.

Para comenzar, abre tu terminal y ejecuta:

$ sudo apt install zram-tools

6. Configuración de zRAM de 16 GB

Para que la zRAM iguale tus 16 GB de RAM física, debemos editar el archivo de control del servicio.

  1. Edita el archivo de configuración: sudo nano /etc/default/zramswap
  2. Configura los parámetros para maximizar el rendimiento:
# Algoritmo de compresión de última generación
ALGO=zstd

# Definimos el 100% de la RAM física (16GB)
PERCENT=100

# SIZE=512

# Prioridad alta para que se use antes que el disco
PRIORITY=100
  1. Reinicia el servicio para aplicar los cambios: sudo systemctl restart zramswap
$ sudo systemctl restart zramswap

7. Configuración de Swap para Hibernación

Para que el sistema pueda hibernar, debe existir una swap física con prioridad menor. Esto garantiza que el sistema use la zRAM para «intercambio rápido» y deje la swap de disco solo para el volcado de hibernación o casos de saturación extrema.

  1. Ajustar Prioridad: Edita /etc/fstab (sudo nano /etc/fstab) y asegúrate de que tu línea de swap tenga la opción pri=5: UUID=xxxx-xxxx none swap sw,pri=5 0 0
$ sudo nano /etc/fstab
# swap was on /dev/nvme0n1p1 during installation
UUID=979f326b-4eb3-4d4d-9019-1562a3144386 none            swap    sw, pri=5       0       0
  1. Optimizar el kernel: Para que el sistema use la zRAM de forma más proactiva, ajustaremos el swappiness. Edita sudo nano /etc/sysctl.conf y añade: vm.swappiness=100
$ sudo nano /etc/sysctl.conf
vm.swappiness=100
  1. Apply the changes:
$ sudo sysctl -p
vm.swappiness = 100

Para verificar que todo esté en orden, el comando zramctl es nuestra mejor herramienta. Este comando nos mostrará si el dispositivo está activo, qué algoritmo está usando y, sobre todo, si el tamaño coincide con tus 16 GB de RAM física.

Advertisement

Ejecuta el siguiente comando en tu terminal:

$ sudo zramctl
NAME       ALGORITHM DISKSIZE DATA COMPR TOTAL STREAMS MOUNTPOINT
/dev/zram0 zstd           15G   4K   59B   20K      16 [SWAP]

¿Qué deberías ver?

La salida debería ser muy similar a esta tabla. Aquí te explico qué significa cada columna para confirmar que la configuración es la correcta:

NAMEALGORITHMDISKSIZEDATACOMPRTOTALSTREAMSMOUNTPOINT
/dev/zram0zstd16G0B0B0B8[SWAP]

Puntos clave a confirmar:

  1. DISKSIZE (16G): Esto confirma que la zRAM ahora tiene el mismo tamaño que tu memoria RAM física.
  2. ALGORITHM (zstd): Indica que estás usando el algoritmo más eficiente de compresión.
  3. MOUNTPOINT ([SWAP]): Confirma que el sistema lo está reconociendo efectivamente como un área de intercambio.

8. Verificación de Prioridades (Crucial para Hibernación)

Como mencionamos, para que la hibernación funcione y el sistema no se ralentice usando el disco antes de tiempo, la zRAM debe tener prioridad. Ejecuta este segundo comando:

$ sudo swapon --show
NAME           TYPE       SIZE USED PRIO
/dev/nvme0n1p1 partition 33,1G   0B   -2
/dev/zram0     partition   15G   0B  100

El resultado ideal debe verse así:

NAMETYPESIZEUSEDPRIO
/dev/zram0partition16G0B100
/dev/sdaXpartition30G0B5 (o cualquier número menor a 100)

Análisis del resultado: Yeah /dev/zram0 tiene una prioridad de 100 y tu swap de disco (ej. /dev/sda2) tiene una prioridad menor (como 5 either -2), ¡felicidades! Tu Debian 13 ahora es una máquina optimizada: usará la velocidad de la luz para el intercambio diario y guardará el disco duro exclusivamente para cuando decidas hibernar.

9. Resumen

Al configurar una zRAM de 16 GB con prioridad 100 y mantener una Swap física de 30 GB con prioridad 5, has creado un sistema de dos niveles:

  • Nivel 1 (zRAM): Se encarga de la agilidad del sistema, comprimiendo datos en memoria a velocidades de vértigo.
  • Nivel 2 (Disco): Actúa como almacén pasivo para la hibernación y como reserva de emergencia.

Esta configuración exprime al máximo tus 16 GB de RAM, protegiendo tu SSD del desgaste innecesario y permitiendo una multitarea fluida sin renunciar a la comodidad de la hibernación.

10. References

  • Linux Kernel Documentation: zRAM module.
  • Debian Wiki: Swap and zRAM configurations.
  • Zstandard (zstd) Compression Project – Facebook Open Source.
Our score
Click to rate this post!
(Votes: 0 Average: 0)
Advertisement
Share on social media...

Descubre más desde javiercachon.com

Subscribe to get the latest posts sent to your email.

Deja un comentario

Your email address will not be published. Required fields are marked *

Basic information on data protection
Responsible Javier Cachón Garrido +info...
Purpose Manage and moderate your comments. +info...
Legitimation Consent of the concerned party. +info...
Recipients Automattic Inc., USA to spam filtering. +info...
Rights Access, rectify and cancel data, as well as some other rights. +info...
Additional information You can read additional and detailed information on data protection on our page política de privacidad.

Scroll al inicio

Descubre más desde javiercachon.com

Suscríbete ahora para seguir leyendo y obtener acceso al archivo completo.

Seguir leyendo

Hello!

Click on one of our representatives below to chat via Telegram or send us an email to soporte@javiercachon.com

Aid!