SWAPFILE o fichero de intercambio
El SWAPFILE o fichero de intercambio es un espacio dedicado en el disco duro que el sistema operativo utiliza como extensión de la memoria RAM cuando ésta se encuentra cerca de su capacidad máxima. Funciona como una «memoria virtual» donde el sistema puede transferir datos temporalmente cuando la RAM física está llena, evitando así que las aplicaciones se cierren por falta de memoria. Aunque es más lento que la RAM, el swap es esencial para la estabilidad del sistema, especialmente cuando se ejecutan aplicaciones que consumen muchos recursos o múltiples máquinas virtuales.
Verificar el SWAP existente
Para comprobar que swapfile
o fichero de intercambio tenemos en nuestro sistema Linux ejecutamos el comando:
free -h
Lo que nos devuelve algo similar a esto:
total usado libre compartido búf/caché disponible
Mem: 15Gi 5,1Gi 1,9Gi 670Mi 9,3Gi 10Gi
Inter: 0B 0B 0B
Si nos fijamos en la última línea, la que empieza por ‘Inter’ vemos que el total es ‘0B’.
En vista que no tenemos nada asignado, vamos a crear un fichero de intercambio con 2 Gb.
También podemos obtener información más detallada con:
sudo swapon --show
Crear un fichero de intercambio o ‘swapfile’
Creamos el fichero swap:
sudo fallocate -l 2G /swapfile
Establecemos los permisos correctos:
sudo chmod 600 /swapfile
Formateamos el archivo como swap:
sudo mkswap /swapfile
Activamos el swap:
sudo swapon /swapfile
Para que el fichero de intercambio no se pierda al reiniciar y que persista editamos el archivo fstab
:
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
Por último verificamos que el swap está en funcionamiento usando de nuevo free -h
y nos debe devolver los cambios:
total usado libre compartido búf/caché disponible
Mem: 15Gi 5,0Gi 2,0Gi 710Mi 9,3Gi 10Gi
Inter: 2,0Gi 0B 2,0Gi
Si nos fijamos ahora el total son 2,0Gi.
Modificar un fichero de intercambio o ‘swapfile’
Podemos ampliar o reducir un fichero de intercambio por diferentes razones y para conseguirlo, primero, desactivamos el swap actual:
sudo swapoff /swapfile
Cambiamos el tamaño a 4GB o la cantidad elegida:
sudo fallocate -l 4G /swapfile
Establecemos los permisos correctos:
sudo chmod 600 /swapfile
Configuramos el archivo como swap:
sudo mkswap /swapfile
Y por último lo activamos:
sudo swapon /swapfile
Si ahora volvemos a comprobar el archivo de intercambio con free -h
, el resultado será el siguiente:
total usado libre compartido búf/caché disponible
Mem: 15Gi 5,0Gi 2,0Gi 710Mi 9,3Gi 10Gi
Inter: 4,0Gi 0B 4,0Gi
Optimizar el uso de SWAP
Para mejorar el rendimiento del sistema, podemos ajustar la frecuencia con la que Linux utiliza el swap mediante el parámetro «swappiness»:
Ver el valor actual (por defecto es 60):
cat /proc/sys/vm/swappiness
Establecer un valor más bajo para usar menos el swap (recomendado para sistemas con buena cantidad de RAM):
sudo sysctl vm.swappiness=10
Para hacer este cambio permanente:
echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf
Un valor más bajo (como 10) hace que el sistema priorice el uso de la RAM y recurra menos al swap, lo que generalmente mejora el rendimiento en equipos con memoria suficiente.
¿Cuánto SWAP necesito?
Como regla general:
- Para sistemas con menos de 2GB de RAM: el doble de la RAM
- Para sistemas con 2-8GB de RAM: igual a la cantidad de RAM
- Para sistemas con más de 8GB: al menos 4GB o según necesidades específicas
Si ejecutas máquinas virtuales o aplicaciones que consumen mucha memoria, considera aumentar el tamaño del swap según los requisitos.