¿Cómo incrementar la memoria swap de mi sistema? y ¿cómo añadir esta memoria de forma automática al inicio?
Si necesitamos ampliar la memoria swap, podemos hacerlo usando un archivo formateado.
Algunos VPS en cloud se entregan sin memoria swap configurada, quedando a consideración del administrador cómo y cuánta swap añadir. El método que os comentamos es perfecto para esta situación de máquinas virtuales en la nube.
También puede servir para añadir una cantidad extra a un sistema con escasa memoria swap configurada.
Veremos además cómo añadir esta cantidad de memoria al arrancar.
Trabajaremos conectados como root o en cada una de las sentencias indicaremos sudo al inicio.
Crear y formatear archivo swap
Crear el archivo swap usando ‘dd’
El primer paso para crear un archivo es saber el tamaño que va a tener, o lo que es lo mismo ¿Cuánto queremos ampliar nuestra memoria swap?
Imaginemos que queremos ampliar nuestra memoria swap en 1024 MB, realizamos el siguiente cálculo para obtener el tamaño de bloque:
1024 * 1024 = 1048576
Si lo quisiésemos de 512 MB:
1024 * 512 = 524288
Y finalmente creamos el archivo, en este ejemplo lo creamos de 1 GB de tamaño, con el nombre swapfile en la raíz de nuestro sistema:
dd if=/dev/zero of=/swapfile bs=1024 count=1048576
Como siempre, mucho cuidado usando dd.
Crear el archivo swap usando ‘fallocate’
Sobre todo en caso de generar archivos swap de grandes tamaños, podemos utilizar fallocate para crear el archivo swap, será mucho más rápido que usando dd.
fallocate -l 1G /swapfile
Formatear el archivo swap
Ahora solo nos queda darle permisos adecuados y formatear este archivo para ser usado como swap.
Permisos
chown root:root /swapfile chmod 0600 /swapfile
Formateo
mkswap /swapfile
Ampliar swap
Finalmente, cuando tengamos nuestro archivo swapfile preparado, no tenemos más que añadirlo al sistema y éste entrará en uso inmediatamente.
swapon /swapfile
Disminuir Swap
Si queremos quitar el archivo de swap que hemos añadido anteriormente, lo hacemos de la siguiente manera:
swapoff /swapfile
Si no estaba en uso, será inmediato, si estaba en uso, podría tardar mucho en ejecutarse.
Ejemplo de script sencillo
Con lo expuesto anteriormente se puede realizar un pequeño script para invocarlo bajo demanda o al inicio del sistema, según necesidades.
Aquí tenéis un ejemplo muy sencillo:
#!/bin/bash /bin/dd if=/dev/zero of=/swapfile bs=1024 count=1048576 /bin/chown root:root /swapfile /bin/chmod 0600 /swapfile /sbin/mkswap /swapfile /sbin/swapon /swapfile
Lo guardamos en «/bin» y le damos el nombre «addswapfile.sh».
No olvidemos dar permisos de ejecución al script:
chmod u+x /bin/addswapfile.sh
Podemos usar fallocate en lugar de dd, solo hay que sustituir la linea del dd por:
/usr/bin/fallocate -l 1G /swapfile
Añadir de forma automática al inicio del sistema
Una forma sencilla de ejecutar el script al inicio es usando Cron. Para ello, edita cron con «crontab -e» y añade la siguiente linea:
@reboot /bin/addswapfile.sh
O incluso mejor aún, incluye la siguiente linea en el archivo /etc/fstab
/swapfile none swap sw 0 0