Añadir memoria swap en el arranque

¿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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *