Autor: Joel Barrios Dueñas
Correo electrónico: darkshram en gmail punto com
Sitio de Red: https://www.alcancelibre.org
Licencia Creative Commons
© 1999-2026 Joel Barrios Dueñas. Este manual se distribuye bajo la licencia Creative Commons Reconocimiento-NoComercial-CompartirIgual 4.0 Internacional (CC BY-NC-SA 4.0). Usted es libre de compartir y adaptar el material bajo los siguientes términos: debe dar crédito al autor, no puede utilizarlo para fines comerciales y debe compartir las obras derivadas bajo la misma licencia. La licencia completa está disponible en https://creativecommons.org/licenses/by-nc-sa/4.0/legalcode.es.
Este manual se centra en el conocimiento fundamental para crear y gestionar espacio de swap, una habilidad esencial para la administración de sistemas. Cubre los métodos tradicionales ―archivos y particiones― e introduce conceptos modernos como zram, permitiendo una comprensión integral y actualizada.
El espacio de memoria de intercambio o swap constituye una extensión de la memoria física (RAM) que utiliza espacio reservado en la unidad de almacenamiento. Cuando la RAM se satura, el núcleo del sistema operativo traslada páginas de memoria inactivas a este espacio, liberando RAM para tareas prioritarias.
La principal ventaja del swap radica en proporcionar un colchón de memoria adicional, evitando que el sistema finalice procesos de manera abrupta por falta de RAM. Su desventaja principal es la velocidad, ya que los discos duros mecánicos (HDD) e incluso las unidades de estado sólido (SSD) son órdenes de magnitud más lentos que la RAM.
El dimensionamiento del swap dista de ser universal; depende críticamente del rol del sistema y de características operativas específicas como la hibernación.
En un entorno servidor, la hibernación (suspend-to-disk) carece por completo de utilidad. Un servidor debe permanecer operativo de manera continua, y apagarlo o hibernarlo implica interrumpir los servicios que ofrece.
En este contexto, el swap cumple dos funciones principales:
Recomendación para servidores modernos:
En el escritorio, la decisión crucial es ¿desea usted poder hiberbar el sistema? La hibernación guarda el estado completo de la RAM en el swap antes de apagar, permitiendo recuperar la sesión exacta al encender.
⚠️ Consideración práctica para hibernación con mucha RAM: Hibernar un sistema con 32 GB de RAM requiere al menos 32 GB de espacio swap contiguo. Esto es:
- Poco práctico en muchos SSD de capacidad moderada (ej: 256 GB), donde 32 GB representan una fracción significativa.
- Potencialmente lento, ya que escribir/leer 32 GB en un disco, incluso SSD, lleva tiempo.
Por esta razón, muchos usuarios con sistemas de altas prestaciones prefieren utilizar únicamente la suspensión (
suspend-to-RAM). Este modo mantiene la alimentación de la RAM (consumiendo mínima energía), recupera la sesión en segundos y no requiere swap. Es la opción predeterminada y recomendada en equipos con recursos abundantes donde la hibernación supone un costo de espacio y tiempo desproporcionado.
Existen dos métodos primordiales para añadir swap a un sistema: mediante un archivo dedicado (flexible y recomendado para aprender) o una partición dedicada (tradicional y de rendimiento consistente).
Este método es idóneo para aprender y para situaciones donde modificar la tabla de particiones resulta inconveniente. El archivo puede residir en cualquier sistema de archivos que lo soporte (ext4, Xfs).
dd para crear un archivo del tamaño deseado. Por ejemplo, para crear un archivo de 2 GiB llamado /swapfile (ajuste count= al tamaño en MiB):
dd if=/dev/zero of=/swapfile bs=1M count=2048 status=progress chmod 600 /swapfilemkswap para darle el formato adecuado.
mkswap /swapfile swapon /swapfile/etc/fstab para que el swap se active en cada arranque.
echo '/swapfile swap swap defaults 0 0' >> /etc/fstabEste método ofrece un ligero beneficio de rendimiento y es el preferido para instalaciones tradicionales. Requiere una partición dedicada (ej. /dev/sdb1).
Linux swap (código 82 en fdisk/gdisk). Luego, formátela:
mkswap -f /dev/sdb1
La opción -f fuerza el procedimiento.
swapon /dev/sdb1/etc/fstab.
echo '/dev/sdb1 swap swap defaults 0 0' >> /etc/fstabTras cualquiera de los métodos, verifique que el nuevo espacio esté disponible y en uso:
free -h
O bien, para obtener un listado detallado:
swapon --show
zram es un módulo del núcleo que crea un dispositivo de bloques comprimido en la propia RAM. Actúa como un swap de velocidad extraordinaria, ideal para sistemas con poca RAM o para mejorar la capacidad de respuesta en cualquier sistema. ALDOS lo habilita y pre-configura por defecto.
El siguiente procedimiento crea un dispositivo zram utilizando un tercio de la RAM total y el algoritmo de compresión zstd (eficiente y rápido), configurándolo como swap de alta prioridad.
Puede ejecutar estos mandatos directamente como root o integrarlos en un script de inicialización (como /etc/rc.d/init.d/zram en ALDOS con SysVinit).
#!/bin/bash
# Calcular un tamaño recomendado (ej: 1/3 de la RAM)
TOTMEM=$(awk '/MemTotal/ {print $2}' /proc/meminfo)
TOTZRAM=$(expr ${TOTMEM} \* 1024 / 3) # Resultado en kilobytes
# Cargar módulo, configurar dispositivo, formatear y activar
/sbin/modprobe zram num_devices=1
/sbin/zramctl --size ${TOTZRAM}K --algorithm zstd /dev/zram0
/sbin/mkswap /dev/zram0
/sbin/swapon --priority 100 /dev/zram0
💡 Ventaja de zram: Al comprimir los datos, permite "almacenar" más información swap en la misma cantidad de RAM física, mejorando drásticamente el rendimiento respecto del swap en disco. Su prioridad alta (
-p 100) hace que el núcleo lo utilice antes que el swap tradicional.
Si se necesita sacar el mejor provecho posible, esta sección incluye recomendaciones adecuadas dependieno de la finalidad productiva del sistema.
vm.swappiness.Este parámetro (rango 0-100) controla la propensión del núcleo a trasladar páginas de memoria a swap. Un valor bajo hace que el sistema evite el swap hasta que sea estrictamente necesario; un valor alto hace que lo utilice de manera más proactiva para liberar RAM.
zram: 30-60. Dado que el zram es rápido, se puede permitir un uso más temprano para mantener la RAM libre.Cambiar el valor en tiempo de ejecución:
sysctl -w vm.swappiness=30
Hacer el cambio permanente: Edite o añada la línea en /etc/sysctl.conf o en un archivo dentro de /etc/sysctl.d/ (ej: 99-swap.conf).
echo 'vm.swappiness = 30' >> /etc/sysctl.d/99-swap.conf
Cuando hay múltiples dispositivos swap (ej: un zram rápido y un archivo swap lento en disco), se pueden asignar prioridades con la opción -p de swapon (o pri= en /etc/fstab). El núcleo utilizará primero los dispositivos con prioridad más alta.
Ejemplo en /etc/fstab:
/dev/zram0 none swap defaults,pri=100 0 0
/swapfile none swap defaults,pri=10 0 0
En este ejemplo, el zram se consumirá completamente antes de que el sistema comience a usar el archivo /swapfile. Esta configuración es ideal para maximizar el rendimiento.
Defina el propósito: ¿Es un servidor o un escritorio? ¿Requiere hibernación?
zram como complemento de rendimiento.suspend-to-RAM).Prefiera zram: Es una mejora de rendimiento gratuita. Configúrelo con alta prioridad (pri=100).
Ajuste swappiness acorde: Valores bajos (10-30) para priorizar RAM física; valores moderados (30-60) si cuenta con zram.
Use archivos swap para flexibilidad: Son fáciles de crear, redimensionar o eliminar, perfectos para aprendizaje y ajustes.
Al dominar estos conceptos, podrá tomar decisiones informadas y eficientes para gestionar la memoria en cualquier distribución GNU/Linux contemporánea, desde un servidor potente hasta un escritorio de altas prestaciones.