SWAP

Categoria:

En esta sección veremos como crear un fichero de SWAP (área de intercambio) para que no nos haga falta tener una partición aparte, o por ejemplo para raspberry pi, que viene por defecto con solo una partición de 100MB para swap, que en muchas ocasiones es insuficiente.

Primero creamos el fichero de swap con:

fallocate -l 1G /swap

Si no tenemos disponible el comando fallocate podemos usar dd:

dd if=/dev/zero of=/swap bs=1024 count=1048576

Después le asignamos los permisos adecuados:

chmod 600 /swap

Luego utilizamos el comando mkswap para convertir el fichero en un area de intercambio:

mkswap /swap

Finalmente añadimos la línea para montar el swap en el arranque en /etc/fstab:

/swap none swap defaults 0 0

Y ejecutamos el comando swapon para que active todas las configuraciones de swap en el fichero fstab:

swapon -a

Como parte adicional linux empieza a usar el swap a cuando tenemos mas del 40% de la RAM ocupada, podemos ver este valor con:

cat /proc/sys/vm/swappiness

El valor que nos da indica el porcentaje de ram libre en el cual se empezará a usar el swap, el valor por defecto es 60. Pero podemos cambiar este valor a uno mas bajo para que se utilice menos el swap, con el siguiente comando se empezaría a utilizar el swap cuando quedara solo un 10% de RAM libre:

sysctl vm.swappiness=10

Para hacer este cambio permanente hay que añadirlo a la configuración sysctl:

echo "vm.swappiness=10" >> /etc/sysctl.conf

Para comprobar que funciona podemos reiniciar el sistema y ejecutar de nuevo el comando con el que que comprobamos el valor actual.


Podemos ejecutar lo anterior directamente con el siguiente script:

configure_swap.sh
#!/bin/bash
fallocate -l 1G /swap
chmod 600 /swap
mkswap /swap
echo "/swap none swap defaults 0 0" >> /etc/fstab
swapon -a
sysctl vm.swappiness=10
echo "vm.swappiness=10" >> /etc/sysctl.conf