Swap en Linux: Mi experiencia y cómo configurarla correctamente
En alguna ocasión he llevado al extremo mi viejo ordenador, en este caso concreto usando VS Code. Esta aplicación consume muchos recursos, más concretamente memoria volátil (RAM) y, como uso Linux, memoria Swap.
La Swap (o “espacio de intercambio”) es una técnica que utiliza Linux para ampliar virtualmente la memoria RAM de tu ordenador utilizando un trozo de tu disco duro.
Imagina que tu ordenador es un escritorio de trabajo:
- La RAM es la superficie del escritorio: Aquí tienes los papeles y herramientas que estás usando justo ahora. Es muy rápido alcanzar cualquier cosa, pero el espacio es limitado.
- La SWAP es un cajón del escritorio: Cuando el escritorio se llena y necesitas abrir un libro nuevo, coges un papel que no has tocado en un rato y lo guardas en el cajón para hacer sitio. El cajón es más grande que el escritorio, pero tardas más tiempo en abrirlo y sacar lo que hay dentro.
El problema: Solo 15 MB libres
Cuando instalé Linux Mint, la configuración de la partición la realizó de forma automática el sistema asignándome una partición para el espacio de intercambio de 2 GB. Al comprobar la memoria que tenía libre, vi que solo me quedaba un suspiro:
free -h
| Tipo | Total | Usado | Libre | Compartido | Búf/Cache | Disponible |
|---|---|---|---|---|---|---|
| Mem | 7,6 Gi | 4,8 Gi | 361 Mi | 349 Mi | 3,1 Gi | 2,9 Gi |
| Inter | 1,9 Gi | 1,9 Gi | 15 Mi | — | — | — |
La solución inmediata era ampliar la partición de intercambio, una opción que puede ser peligrosa si no se tiene cuidado. La otra era dejar de utilizar mi antigua Swap y crear una nueva mediante un archivo en la partición donde se alojan mis datos.
Pasos para crear tu archivo de Swap
Aquí te explico cómo crear un archivo de 8GB de forma rápida y segura:
# 1. Desactiva la swap actual
sudo swapoff -a
# 2. Crea un archivo de swap de 8GB
# (Usamos fallocate porque es casi instantáneo, si falla usa el comando dd)
sudo fallocate -l 8G /swapfile
# 3. Permisos de seguridad (solo root puede leerlo)
sudo chmod 600 /swapfile
# 4. Formatear como swap
sudo mkswap /swapfile
# 5. Activarla
sudo swapon /swapfile
Si fallara fallocate utiliza este otro bash usando el comando dd:
# Desactivar la swap actual
sudo swapoff -a
# Crear un archivo de swap de 8GB (esto puede tardar un poco)
sudo dd if=/dev/zero of=/swapfile bs=1G count=8
# Darle permisos correctos
sudo chmod 600 /swapfile
# Formatearlo como swap y activarlo
sudo mkswap /swapfile
sudo swapon /swapfile
Para que sea permanente: Primero, haz una copia de seguridad: sudo cp /etc/fstab /etc/fstab.bak.
Luego edita el archivo de configuración: sudo nano /etc/fstab. Busca la línea que diga swap y asegúrate de que se vea así:
/swapfile none swap sw 0 0
(Si había otra línea de swap antigua, bórrala o coméntala con un #).
Optimización: Ajustando el “Swappiness”
Por defecto, Linux intenta usar la Swap muy pronto. Queremos que use tu RAM (que es mucho más rápida) lo máximo posible antes de tocar el disco.
Mira tu valor actual:
cat /proc/sys/vm/swappiness(probablemente sea 60).-
Cámbialo a 10:
sudo sysctl vm.swappiness=10 -
Para que sea permanente, añade la configuración al sistema:
echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf
Una vez que tu archivo de swap esté funcionando perfectamente, puedes usar una herramienta como GParted para borrar la partición antigua y expandir tu partición principal para recuperar ese espacio.
Cómo borrar y redimensionar el archivo (si quieres 12GB o 16GB)
Si ves que con 8GB sigues teniendo problemas, estos son los pasos para cambiarlo:
# 1. Desactivar la swap actual
sudo swapoff /swapfile
# 2. Borrar el archivo viejo
sudo rm /swapfile
# 3. Crear el nuevo (ejemplo para 12GB)
sudo fallocate -l 12G /swapfile
# 4. Dar permisos, formatear y activar
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
Swap en Linux: ¿Partición o Archivo?
En los viejos tiempos de Linux, la regla era clara: “Crea una partición swap o prepárate para el caos”. Sin embargo, los tiempos han cambiado. Con kernels modernos y discos SSD/NVMe, la línea entre una partición dedicada y un archivo de swap se ha desdibujado.
El Gran Duelo: Partición vs. Archivo
| Característica | Partición Swap | Archivo de Swap (swapfile) |
|---|---|---|
| Rendimiento | Máximo teórico (acceso directo). | Idéntico en kernels modernos (4.0+). |
| Flexibilidad | Muy baja. Requiere redimensionar. | Muy alta. Se gestiona como un archivo. |
| Hibernación | Más sencilla de configurar. | Requiere calcular el offset. |
| Riesgo | Manipular particiones puede borrar datos. | Riesgo nulo para el resto del disco. |
Ventajas y Desventajas
-
Partición de Swap
- Ventaja: Evita la fragmentación y es ideal para la hibernación intensiva.
- Desventaja: Es una “isla” de espacio. Si no la usas, ese espacio está desperdiciado y es difícil de cambiar.
-
Archivo de Swap
- Ventaja: Flexibilidad total. Puedes crear uno hoy de 2GB y mañana otro de 10GB en segundos.
- Desventaja: En sistemas Btrfs, requiere pasos adicionales (desactivar el Copy-on-Write) para no perder rendimiento.
¿Cómo saber cuánta Swap necesitas?
No hay una cifra mágica, pero esta es una buena regla de oro según el uso que le des al PC:
| Tu RAM física | Uso del PC | Swap recomendada |
|---|---|---|
| 8 GB | Uso básico (Navegar, Office) | 2 GB a 3 GB |
| 8 GB | Programación / Diseño (VS Code) | 8 GB a 12 GB |
| 16 GB+ | Programación pesada | 4 GB a 8 GB |