Crear o aumentar el swap en Linux

Swap es el fichero o partición de Linux que se utiliza guardar contenido que esta en RAM y no está siendo usando. El Linux es una partición independiente de las demás con características especiales.

El tamaño exacto que debemos tener de swap depende de la cantidad de memoria RAM que tengamos y del tipo de trabajo que realice el servidor, pero en líneas generales y según la documentación oficial de la distribución de Linux Fedora los tamaños recomendados serían los siguientes:

Cantidad de RAM en el sistema

Cantidad Recomendada de Espacio Swap

4GB de RAM o menos

un mínimo de 2GB de espacio swap

4GB a 16GB de RAM

un mínimo de 4GB de espacio swap

16GB a 64GB de RAM

un mínimo de 8GB de espacio swap

64GB a 256GB de RAM

un mínimo de 16GB de espacio swap

256GB a 512GB de RAM

un mínimo de 322GB de espacio swap

Crear el fichero de swap

Para crear una partición swap primero deberemos crear un fichero, en nuestro caso se llamará newswap, con el siguiente comando (ejemplo para 1GB):

# dd if=/dev/zero of=/newswap bs=1024 count=1048576

swap

Una vez creado el fichero newswap procederemos a cambiarle los permisos para que sólo root pueda escribir en el:

# chmod 600 /newswap

Posteriormente formateamos con el comando mkswap

# mkswap /newswap

swapon

Finalmente la activamos con el comando swapon

# swapon /newswap

Comprobamos que está activa:

# swapon --show

swap

Para que el fichero swap se monte al inicio deberemos agregar la siguiente línea al fichero /etc/fstab:

/newswap swap swap defaults 0 0

Eliminar el fichero de swap

En nuestro caso hemos ahora tenemos dos ficheros de swap por lo que procederemos a desactivar el antiguo con el comando swapoff

# swapoff /newswap

Posteriormente ya podremos eliminar el fichero de swap:

# rm /newswap

También deberemos acordarnos de eliminar la entrada en el fichero /etc/fstab para que no intente montarlo en el inicio del sistema.

Ajustar el uso de swap

El uso del swap por el sistema viene determinado por el parámetro del Kernel swappiness, es un valor entre 0 y 100, un valor más alto indica que el uso del swap será más agresivo, por defecto está a fijado 60.

Podemos ver su valor con el comando

# cat /proc/sys/vm/swappiness

Para cambiar el parámetro del Kernel utilizaremos el comando systemctl

# sysctl vm.swappiness=10

Para hacer el cambio permanente modificaremos el fichero /etc/sysctl.conf añadiendo la siguiente línea:

vm.swappiness=10