Espacio de intercambio en Linux
El espacio de intercambio (swap) es espacio en disco que el núcleo de Linux utiliza como desbordamiento de memoria: las páginas de memoria que se usan poco se trasladan allí para que la memoria RAM quede libre para el trabajo activo. Puede ser una partición dedicada o un archivo de intercambio, y se muestra con los comandos free -h y swapon --show.
1Por qué el espacio de intercambio sigue siendo útil
Incluso con abundante memoria RAM, el intercambio permite que el núcleo desplace las páginas inactivas fuera de la memoria y proporciona un búfer antes de que el administrador de falta de memoria (OOM killer) detenga los procesos. Sin embargo, un intercambio intenso y constante significa que la máquina necesita más memoria RAM o menos carga de trabajo.
2Swappiness
La configuración del núcleo vm.swappiness (0-200, predeterminado 60) influye en la rapidez con la que el núcleo utiliza el intercambio en comparación con la liberación de la caché de archivos. Los valores más bajos mantienen la memoria de las aplicaciones en la memoria RAM durante más tiempo. Se lee con sysctl vm.swappiness y se configura de forma permanente en un archivo dentro de /etc/sysctl.d/.
3Archivos de intercambio
Un archivo de intercambio se crea, se formatea con mkswap, se habilita con swapon y se añade a /etc/fstab para que persista tras los reinicios. Sus permisos deben ser 600.
Cómo añadir un archivo de intercambio de 2 GB
- Crear el archivo:
sudo dd if=/dev/zero of=/swapfile bs=1M count=2048 - Restringir el acceso:
sudo chmod 600 /swapfile - Formatearlo:
sudo mkswap /swapfile - Habilitarlo:
sudo swapon /swapfile - Hacerlo permanente: añadir la línea '/swapfile none swap sw 0 0' a
/etc/fstab - Comprobar:
swapon --showyfree -h
Precauciones
- En Btrfs, un archivo de intercambio requiere una preparación especial (sin copia en escritura o copy-on-write); consulte la guía de su distribución.
- Un error en
/etc/fstabpuede impedir que el sistema arranque: compruebe la línea antes de reiniciar.
Artículos relacionados
- df (espacio libre en disco)Cómo leer la salida de df, por qué Use% puede alcanzar el 100% antes de que Avail llegue a cero para los usuarios normales, y cómo comprobar los inodos con df -i.
- unidades de systemd y systemctlQué es una unidad de systemd, los tipos de unidades comunes y cómo iniciar, detener, habilitar e inspeccionar servicios con systemctl.
- Uso de disco con du y ncduCómo descubrir qué llena un disco de Linux con du y el interactivo ncdu, usando opciones que se limitan a un solo sistema de archivos.
Fuentes
- swapon(8) man7.org
- mkswap(8) man7.org
- free(1) man7.org
- Documentación de /proc/sys/vm (kernel.org) kernel.org
Última revisión: