5.4 Gestión de Swap
El swap (espacio de intercambio) es una extensión de la RAM en disco. Cuando la RAM física se agota, el kernel mueve páginas de memoria poco usadas al swap para liberar espacio para los procesos activos. Es más lento que la RAM (miles de veces), pero puede marcar la diferencia entre un servidor que sobrevive un pico de carga y uno que mata procesos al azar con el OOM Killer.
1. Ver el estado actual del swap
Sección titulada “1. Ver el estado actual del swap"# Resumen de swap activoswapon --show# NAME TYPE SIZE USED PRIO# /dev/sda2 partition 2G 0B -2
# Ver uso de memoria y swapfree -h# total used free shared buff/cache available# Mem: 7.7G 2.1G 3.2G 156M 2.4G 5.2G# Swap: 2.0G 0B 2.0G
# Ver en lsblklsblk2. Swap como fichero (el método moderno)
Sección titulada “2. Swap como fichero (el método moderno)"Crear un fichero de swap es más flexible que una partición: puedes crearlo en cualquier momento sin reparticionar.
# 1. Crear el fichero (2 GB en este ejemplo)sudo fallocate -l 2G /swapfile
# Si fallocate no está disponible:# sudo dd if=/dev/zero of=/swapfile bs=1M count=2048
# 2. Permisos correctos (solo root puede leerlo — contiene RAM)sudo chmod 600 /swapfile
# 3. Formatear como swapsudo mkswap /swapfile
# 4. Activarsudo swapon /swapfile
# 5. Verificarswapon --showfree -hHacer el fichero de swap permanente
Sección titulada “Hacer el fichero de swap permanente"Añade la siguiente línea a /etc/fstab:
sudo nano /etc/fstab/swapfile none swap sw 0 0Verifica que la sintaxis es correcta:
sudo mount -a# No debe dar errores3. Swap como partición
Sección titulada “3. Swap como partición"Si al instalar el sistema dejaste una partición de swap (tipo 82 en MBR o 8200 en GPT), se formatea y activa de la misma forma:
# Formatear la partición como swapsudo mkswap /dev/sda2
# Activarsudo swapon /dev/sda2
# En /etc/fstab (mejor con UUID para evitar cambios de nombre):UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx none swap sw 0 0Obtener el UUID de la partición:
sudo blkid /dev/sda24. Desactivar swap
Sección titulada “4. Desactivar swap"# Desactivar un swap concreto (mueve las páginas de vuelta a RAM)sudo swapoff /swapfilesudo swapoff /dev/sda2
# Desactivar todo el swapsudo swapoff -a
# Eliminar el fichero de swap (tras swapoff)sudo rm /swapfile# Y eliminar la línea correspondiente en /etc/fstab5. Ajustar vm.swappiness
Sección titulada “5. Ajustar vm.swappiness"vm.swappiness controla cuánto prefiere el kernel usar swap frente a liberar caché de página. Va de 0 a 200:
| Valor | Comportamiento | Cuándo usarlo |
|---|---|---|
0 | Evita el swap hasta que sea absolutamente necesario | Servidores con mucha RAM |
10 | Muy conservador | Servidores de base de datos (PostgreSQL, MySQL) |
60 | Por defecto en Debian/Ubuntu | Uso general |
100+ | Agresivo, prefiere mover a swap | Sistemas con mucha actividad de I/O |
# Ver valor actualsysctl vm.swappiness
# Cambiar temporalmentesudo sysctl -w vm.swappiness=10
# Cambiar permanentementeecho "vm.swappiness = 10" | sudo tee /etc/sysctl.d/99-swap.confsudo sysctl --system