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:
#!/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