ESC

Start typing to search across invoices, services, domains, tickets, and more...

Search... Ctrl+K
Servidores Linux

Cómo añadir swap en Linux: crear un archivo swap y ajustar swappiness

6 pasos 10 min de lectura 6 vistas 0
Contenido

En un VPS con poca RAM, compilar software, ejecutar una base de datos o un pico repentino de tráfico pueden agotar la memoria y activar el OOM killer, que termina procesos como MySQL. Añadir espacio swap en Linux permite que el kernel traslade al disco los datos poco usados cuando la RAM escasea, lo que le da un margen de seguridad. Esta guía muestra cómo crear un archivo swap, activarlo al arrancar y ajustar swappiness en VPS KVM y servidores dedicados con Debian/Ubuntu o CentOS/Rocky/AlmaLinux.

La swap es mucho más lenta que la RAM. Es un margen de emergencia, no un sustituto de la memoria. Si su servidor usa mucha swap de forma constante, considere ampliar su RAM.

Paso 1: Compruebe el uso actual de memoria y swap

Use free -h para ver la RAM y la swap existente, swapon --show para ver si ya hay swap activada y df -h para asegurarse de que la partición raíz tiene suficiente espacio libre. Tamaños habituales:

RAMSwap recomendada
1 GB o menos1–2 GB
2–4 GB2 GB
8 GB o más2–4 GB (o según necesidad)
free -h
swapon --show
df -h /

Paso 2: Cree un archivo swap con fallocate

fallocate reserva al instante un archivo del tamaño solicitado. Si indica que la operación no es compatible (en algunos sistemas de archivos antiguos), use dd en su lugar: es más lento, pero funciona en todas partes. Los ejemplos crean un archivo /swapfile de 2 GB.

# Crear un archivo swap de 2 GB
fallocate -l 2G /swapfile

# Si fallocate falla ("Operation not supported"), use dd en su lugar
dd if=/dev/zero of=/swapfile bs=1M count=2048 status=progress

Paso 3: Establezca los permisos y active la swap

Un archivo swap puede contener datos sensibles de la memoria, por lo que solo root debe poder leerlo y escribirlo (600). Formatéelo con mkswap y actívelo de inmediato con swapon; free -h debería mostrar ahora el tamaño de la swap.

chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
swapon --show
free -h

Paso 4: Active la swap al arrancar mediante /etc/fstab

swapon solo dura hasta el siguiente reinicio. Añada una línea a fstab para que la swap se active automáticamente. Haga antes una copia de seguridad de fstab.

cp /etc/fstab /etc/fstab.bak
echo '/swapfile none swap sw 0 0' >> /etc/fstab

Paso 5: Ajuste swappiness

Swappiness (0–100) controla con qué facilidad el kernel recurre a la swap. En servidores normalmente conviene usar primero la RAM y la swap solo cuando sea necesario, por lo que un valor de alrededor de 10 es una buena elección. Guárdelo en /etc/sysctl.d/ para que sea permanente.

cat /proc/sys/vm/swappiness      # usually 60 (Debian/Ubuntu) or 30 (some RHEL images)
sysctl vm.swappiness=10          # apply now

# Hacerlo permanente
echo 'vm.swappiness=10' > /etc/sysctl.d/99-swappiness.conf
sysctl --system

Paso 6: Elimine un archivo swap

Si ya no necesita la swap o quiere cambiar su tamaño, desactívela, borre la línea de fstab y elimine el archivo. Para cambiar el tamaño, simplemente repita los pasos 2–4.

swapoff /swapfile
sed -i '\|^/swapfile |d' /etc/fstab
rm -f /swapfile
free -h

Preguntas frecuentes

swapon muestra "Invalid argument" u "Operation not permitted".

"Invalid argument" suele indicar que fallocate creó el archivo en un sistema de archivos que no lo admite para swap: vuelva a crearlo con dd. "Operation not permitted" normalmente indica una virtualización basada en contenedores que no permite swap personalizada; contacte con soporte para confirmarlo.

¿Cuanta más swap, mejor?

No. Un archivo swap enorme no mejora el rendimiento y desperdicia espacio en disco, y un sistema que usa mucha swap se vuelve muy lento. Siga la tabla anterior; si realmente le falta memoria, mejore su plan.

¿Cómo puedo ver qué procesos usan la swap?

Ejecute grep VmSwap /proc/*/status | sort -k2 -n | tail para listar los procesos que más swap consumen, o instale htop y active la columna SWAP.

¿Sigue con problemas después de seguir estos pasos? Abra un ticket de soporte y el equipo técnico 24/7 de IMIDC le ayudará. Incluya la IP del servidor, el sistema operativo, los comandos que ejecutó y una captura de pantalla del error para que podamos localizar el problema más rápido.

¿Fue útil la respuesta?

Tutoriales relacionados