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
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
Finalmente la activamos con el comando swapon
# swapon /newswap
Comprobamos que está activa:
# swapon --show
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