SWAP en Linux

Guía para crear y configurar el espacio swap en Linux.

SWAP (espacio de intercambio) es un mecanismo de memoria virtual en Linux que traslada datos inactivos de la RAM al disco (HDD o SSD) para liberar memoria física y destinarla a las tareas activas. Actúa como buffer de emergencia cuando la RAM escasea, pero el acceso al disco es decenas de miles de veces más lento que la RAM, por lo que un uso intensivo del swap ralentiza el sistema de forma perceptible.

En Linux, la RAM se divide en páginas. El swapping es el proceso de copiar las páginas menos utilizadas a un área de disco dedicada llamada swap space (un archivo o una partición dedicada). La RAM y el swap space juntos conforman la memoria virtual total disponible para el sistema.

Para qué sirve el swap

El swap cumple dos funciones principales:

  • Cuando el sistema necesita más memoria de la disponible, el kernel mueve las páginas menos utilizadas al swap, liberando RAM para los procesos activos.
  • Muchas páginas cargadas por las aplicaciones al inicio rara vez se usan después. El sistema puede moverlas al swap para mantener la RAM disponible para tareas más importantes.

Desventajas del swap

La principal desventaja es la velocidad. Las operaciones en RAM se realizan en nanosegundos, mientras que las operaciones en disco toman milisegundos — decenas de miles de veces más lento. Un uso intensivo del swap provoca ralentizaciones notables.

Nota

Cuando las aplicaciones dependen en gran medida del swap, el rendimiento cae de forma significativa. En estos casos, considera aumentar la RAM. Una opción es migrar tu proyecto a un VPS o un servidor dedicado más potente, con escalado de recursos flexible.

Síntomas habituales de falta de memoria (especialmente en bases de datos):

  • Errores frecuentes del sitio web como «error de conexión a la base de datos» (por ejemplo, caídas de MySQL)
  • Registros con el mensaje InnoDB: Fatal error: cannot allocate memory for the buffer pool
  • Respuesta lenta del servidor incluso con un uso bajo de CPU

Incluso en SSD, las operaciones de swap pasan por el subsistema de disco, lo que aumenta la latencia.

Si tu sistema depende intensamente del swap, es una señal clara de que debes aumentar la RAM u optimizar la aplicación. Considera escalar a un VPS más potente o migrar a un servidor dedicado.

Comprobar el swap

Ejecuta:

swapon -s

Ejemplo de salida:

Filename                Type        Size    Used    Priority
/swapfile              file        40956   40956   -1

O para una vista rápida:

free -m

Ejemplo de salida:

              total        used        free      shared  buff/cache   available
Mem:            488         160           7          40         320         259
Swap:            39          39           0

Si Swap muestra 0 o no aparece — es necesario crearlo.

Nuestros servicios y productos

HostingFunciona en discos NVMe ultrarrápidos. Apto para sitios web de cualquier complejidad.
Pedir
VPSParámetros ajustables y configuración flexible del SO. Administración gratuita incluida.
Pedir
Servidores dedicadosDisponibles diversas configuraciones Supermicro con procesadores Intel y AMD.
Pedir

Crear un archivo de swap (método recomendado)

  1. Crea un archivo de swap (ejemplo: 2 GB):
sudo fallocate -l 2G /swapfile

o bien

sudo dd if=/dev/zero of=/swapfile bs=1M count=2048
  1. Establece permisos seguros (solo root puede leer/escribir):
sudo chmod 600 /swapfile
  1. Fórmatealo como swap:
sudo mkswap /swapfile
  1. Activa el archivo de swap:
sudo swapon /swapfile
  1. Hazlo permanente — añade la entrada a /etc/fstab:
sudo nano /etc/fstab

Añade esta línea al final:

/swapfile none swap sw 0 0

Guarda (Ctrl+O → Enter → Ctrl+X).

  1. Verifica:
free -h

Opcional: ajustar la swappiness

swappiness controla con qué agresividad utiliza el sistema el swap (0–100, valor predeterminado 60).

Comprueba el valor actual:

cat /proc/sys/vm/swappiness

Establece un valor más bajo (recomendado para servidores: 10–20):

sudo sysctl vm.swappiness=10

Para que sea permanente, añade a /etc/sysctl.conf:

vm.swappiness=10

Aplica los cambios:

sudo sysctl -p

Ayuda

¿Tienes dudas o necesitas ayuda? Escríbenos a través del sistema de tickets — siempre estamos aquí para ayudarte!

¿Necesitas ayuda?Nuestros ingenieros te ayudarán gratuitamente con cualquier pregunta en minutosContáctanos