Saltar al contenido

Usar archivo de swap en GNU/Linux

En GNU/Linux así como en otros sistemas tipo Unix y también en Windows es habitual utilizar una porción del disco como área de intercambio, archivo de paginación o swap, que se usa para guardar procesos y no mantenerlos en la memoria física liberando así a esta última.

Lo usual es utilizar particiones enteras para esta tarea y así lo entienden los instaladores de la mayoría de las distros al momento del particionado. Pero al día de hoy, y desde el kernel Linux 2.6, no hay necesidad de usar este esquema para el área de intercambio ya que los archivos swap ofrecen un rendimiento razonable y debido el avance de las memorias RAM y los caché el intercambio se utiliza cada vez menos en sistemas de escritorio y servidores de uso general.

Utilizar un archivo swap ofrece una mayor flexibilidad al momento de trabajar con las particiones de nuestro disco ya que esta porción de almacenamiento reservada será un archivo más dentro de nuestro sistema de archivos raíz y no una partición en sí misma, podremos eliminar, crear, aumentar o disminuir el área de intercambio sin pasar por un particionador.

En recientes versiones de Ubuntu el particionado automático ya no crea particiones sino archivos de swap, pero en la mayoría de las distribuciones esto no es así.

Veamos como podemos crear un archivo swap y utilizarlo en el sistema, el procedimiento debe ser válido para el 99% de las distros GNU/Linux. Lo primero será crear un archivo vacío usando el comando `dd`, en mi caso lo crearé de 512MB (*1024 \* 512MB = 524288 bloques*):

sudo dd if=/dev/zero of=/swapfile bs=1024 count=524288

Le asignamos los permisos necesarios:

sudo chown root:root /swapfile

sudo chmod 0600 /swapfile

Le damos formato swap (como si de una partición se tratara):

sudo mkswap /swapfile

Y si la terminal no devolvió errores al momento, ya podemos activar el
archivo de intercambio:

swapon /swapfile

Para que el cambio sea persistente y este archivo de intercambio se
active al iniciar el sistema debemos editar el archivo /etc/fstab:

sudo vi /etc/fstab

agregando la siguiente línea:

/swapfile none swap sw 0 0

Y por último, para verificar qué áreas de intercambio se estan usando
podemos ejecutar sudo swapon -s :

dmurana@nbk-dmurana:~$ sudo swapon -s
Filename Type Size Used Priority
/swapfile file 524284 0 -1

Espero les sea útil este artículo. En mi caso desde hace bastante tiempo al momento de instalar el sistema omito la creación de la partición swap y posteriormente ejecuto este procedimiento, aunque como verán la swap casi nunca llega a usarse es importante tenerla para evitarnos kernel panic en caso sea necesaria y no esté.