Durante la instalación de Debian 12, al elegir el particionado automático se crea una swap del tipo «partición swap». Esto sucede indistintamente, tanto si usas un disco HDD como un SDD. No sé si se ha corregido en una instalación limpia de Debian 13, pero después de actualizar siguiendo la guía Cómo actualizar Debian 12 bookworm a Debian 13 Trixie esto continúa en la misma situación.
Tras crear la entrada de Modifica el tamaño de la swap de tu Raspberry Pi y ver como MX Linux rpi respin se ha modernizado en este aspecto, he comprobado que el resto de mis equipos (con Debian 12) no tienen un swapfile.
Así que vamos a desactivar la vieja «partición de disco» reservada para la swap y vamos a crear una nueva swapfile.
¡Recordemos que es la swap!
La swap es un espacio de intercambio que se usa como una extensión de la memoria RAM. Cuando la memoria RAM física se llena, el sistema operativo mueve datos inactivos de la RAM al espacio de swap en el disco duro para liberar memoria. Esto permite que el sistema siga funcionando sin errores por falta de memoria, aunque a una velocidad mucho más lenta, ya que el disco de almacenamiento es considerablemente más lento que la RAM.
Tipos de swap
- Partición swap, como su nombre indica, es un área dedicada y separada en tu disco duro. Es una partición de disco indendiente del sistema.
- Swapfile, es simplemente un archivo de intercambio dentro de tu sistema de archivos. Suele estar en la raiz del sistema.
En resumen, la swap es el concepto de memoria virtual, mientras que «swapfile y partición swap",
son dos formas de implementarlo.
¿Cuál debería usar?
- Si usas un disco SSD: swapfile es la opción más recomendada. Su flexibilidad supera con creces la pequeña diferencia de velocidad, que en un SSD es casi imperceptible.
- Si usas un disco HDD: o tienes requisitos de alto rendimiento, una partición swap podría ofrecerte una ligera ventaja en velocidad.
En la mayoría de los casos de uso personal y de escritorio, swapfile es la solución más práctica y sencilla de gestionar.
Que tamaño de swapfile necesito en mi sistema.
El tamaño del swapfile
depende de la cantidad de memoria RAM que tengas y de si planeas usar la hibernación:
- Si usas hibernación: El tamaño del swap file debe ser igual o ligeramente mayor que la cantidad de RAM de tu sistema. Por ejemplo, si tienes 16 GB de RAM, crea un swap file de 16 GB o 17 GB.
- Si no usas hibernación: Una guía común es hacer el swap file del mismo tamaño que la RAM si tienes hasta 4 GB, o la mitad de la RAM si tienes más de 4 GB. Por ejemplo, si tienes 8 GB de RAM, un swap file de 4 GB es suficiente.
- Para sistemas con mucha RAM (más de 16 GB): Si no usas hibernación, la necesidad de swap es menor. Un tamaño de 2 GB a 4 GB es a menudo suficiente para evitar problemas si la memoria se llena inesperadamente.
Nota. El equipo donde crearé un swapfile, tiene 8 gigas de Ram y utiliza la hibernación, por lo que el tamaño será de 10 GB
¿Qué tipo de swap usa mi sistema?.
Puedes ver el tipo de swap que usa tu sistema con el comando
sudo swapon --show
Nos ofrece la siguiente salida:
chapuboot@huardilla:~$ sudo swapon --show
NAME TYPE SIZE USED PRIO
/dev/sdb3 partition 8,0G 0B -2
Com resultado muestra información sobre la partición de intercambio (swap) de tu sistema.
Aquí te explico lo que significa cada columna:
- NAME: El nombre del dispositivo que se está utilizando como espacio de intercambio. En mi caso, es la partición
/dev/sdb3
. - TYPE: El tipo de espacio de intercambio. En este caso, es una
partition
(partición de disco). - SIZE: El tamaño total de la partición de intercambio. (Mi partición es de 8,0 GB).
- USED: La cantidad de espacio de intercambio que se está utilizando actualmente. En mi caso, es 0B (cero bytes), lo que significa que el sistema no está usando la memoria swap en este momento.
- PRIO: La prioridad del espacio de intercambio. El valor -2 indica que tiene una prioridad baja.
En resumen, la salida indica que tengo una partición de intercambio de 8,0 GB en /dev/sdb3
que está activa, pero no se está utilizando en este momento. Esto es algo normal si tu sistema tiene suficiente memoria RAM y no la necesita para mover datos.
Cómo crear un swapfile
Para cambiar de una partición swap
a una swapfile
en Debian, el método más directo y recomendado es editar el archivo fstab. No es necesario instalar dphys-swapfile
ya que el proceso se puede realizar manualmente con comandos estándar.
Por lo general, Debian no crea automáticamente un archivo de intercambio (swapfile) durante la instalación, debes crearlo tú mismo después de la instalación.
El proceso es sencillo y se realiza a través de la terminal. Aquí tienes los pasos principales:
1. Desactivar la partición de swap actual
Primero, identifica la partición con:
sudo swapon --show
chapuboot@huardilla:~$ sudo swapon --show
NAME TYPE SIZE USED PRIO
/dev/sdb3 partition 8,0G 0B -2
Luego desactívala con:
sudo swapoff /dev/sdb3
Reemplaza el nombre_de_la_particion por la tuya.
2. Crear el archivo de swap (swapfile)
Es recomendable crear el archivo de intercambio, (swapfile) en la raíz del sistema de archivos, es decir, en el directorio /
. Por convención, el nombre del archivo suele ser swapfile
, lo que resulta en la ruta /swapfile
.
Razones para usar la raíz (/)
- Acceso temprano en el arranque: El sistema necesita acceder al archivo de swap muy temprano en el proceso de inicio, antes de que se monten otros directorios como
/home
o/var
. Colocarlo en la raíz garantiza que esté disponible de inmediato. - Convención y facilidad de gestión: La mayoría de las guías y herramientas de gestión de sistemas Linux asumen esta ubicación, lo que hace que la configuración y el mantenimiento sean más sencillos y consistentes.
- Seguridad: El archivo de swap contiene datos confidenciales que se han movido desde la RAM. Ponerlo en la raíz y con permisos restringidos (modo
600
) asegura que solo el usuario root pueda acceder a él. - Evitar fragmentación: Aunque no se puede garantizar que el archivo no se fragmente con el tiempo, un archivo recién creado en la raíz de una partición que no está demasiado llena tiene una mayor probabilidad de ser contiguo, lo que mejora el rendimiento. Sin embargo, en sistemas de archivos modernos (como
ext4
), el impacto de la fragmentación en el swapfile es mínimo.
Usa el comando fallocate
para crear un archivo del tamaño que desees. Por ejemplo, para un archivo de 10 GB
sudo fallocate -l 10G /swapfile
Establece los permisos oportunos, por seguridad, solo el usuario root
debe tener acceso al archivo.
sudo chmod 600 /swapfile
Marcamos el archivo como swap, formateamos y conviertimos el archivo en un área de intercambio.
sudo mkswap /swapfile
3. Activar el nuevo swapfile
Para empezar a usar el archivo, actívalo con:
sudo swapon /swapfile
4. Actualizar el archivo fstab
Este es el paso más importante para que el cambio sea permanente después de reiniciar el sistema.
Primero, edita el archivo /etc/fstab
con un editor de texto como nano
:
sudo nano /etc/fstab
He aquí un ejemplo del fstab
de mi equipo.
# /etc/fstab: static file system information.
2 #
3 # Use 'blkid' to print the universally unique identifier for a device; this may
4 # be used with UUID= as a more robust way to name devices that works even if
5 # disks are added and removed. See fstab(5).
6 #
7 # <file system> <mount point> <type> <options> <dump> <pass>
8 UUID=D482-54E2 /boot/efi vfat defaults,noatime 0 2
9 UUID=mon9d248-0315-471a-9b02-187171e78b6b / ext4 defaults,noatime,discard 0 1
10 UUID=6505d262-2322-47f8-8e59-0d5eecc05011 swap swap defaults,noatime,discard 0 0
11 tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0
Dentro del archivo, busca la línea que hace referencia a tu partición de swap, la línea puede verse similar a esta:
UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx swap swap defaults,noatime,discard 0 0
En mi equipo, la línea 10 es la que hace referencia a mi swap, coméntala agregando un # al principio.
Agrega una nueva línea al final del archivo para el swapfile que acabas de crear:
/swapfile none swap sw 0 0
A continuación subrayo en verde los cambios producidos.
# /etc/fstab: static file system information.
2 #
3 # Use 'blkid' to print the universally unique identifier for a device; this may
4 # be used with UUID= as a more robust way to name devices that works even if
5 # disks are added and removed. See fstab(5).
6 #
7 # <file system> <mount point> <type> <options> <dump> <pass>
8 UUID=D482-54E2 /boot/efi vfat defaults,noatime 0 2
9 UUID=mon9d248-0315-471a-9b02-187171e78b6b / ext4 defaults,noatime,discard 0 1
10 # UUID=6505d262-2322-47f8-8e59-0d5eecc05011 swap swap defaults,noatime,discard 0 0
11 tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0
12 /swapfile none swap sw 0 0
Guarda y cierra el archivo: presiona Ctrl + O
para guardar y Ctrl + X
para salir.
Comprueba tus cambios.
Como puedes ver, nuestra swap ya no es del tipo partition
, si no que es del tipo file
y muestra que hay un archivo de intercambio activo de 10 GB en el sistema.
$ sudo swapon --show
NAME TYPE SIZE USED PRIO
/swapfile file 10GB 0B -2
Resumen del proceso
Para un sistema Debian estándar, la configuración manual del swapfile mediante /etc/fstab
es la práctica más común y te da un control completo y transparente. Es el método «tradicional» y el preferido en entornos de escritorio y servidor porque es simple, directo y no requiere la instalación de software adicional para una tarea básica de configuración
¿Porqué no usar dphys-swapfile
?
dphys-swapfile
se usa más comúnmente en sistemas como Raspberry Pi OS (basado en Debian) para gestionar un swapfile de manera automática, ajustando su tamaño.