Aprendiendo con Raspberry PI, Entrega V – Aumentar la memoria SWAP de Raspbian

En anteriores entregas vimos como actualizar el Software y el Firmware de nuestra Raspberrycomo realizar o volcar una imagen completa de la tarjeta SD que hace la función de memoria principal en la PI, y como realizar Overclocking y Overvoltage sin perder la garantía.

En esta ocasión vamos a ver como aumentar la Swap de Raspbian, ya que los 100MB que vienen predefinidos se nos pueden quedar cortos según el proyecto que queramos desarrollar con nuestra Raspberry.

Surge la necesidad de ampliar la memória SWAP.

Surge la necesidad de ampliar la memória SWAP.

Podemos ampliarla de dos formas distintas, yo voy a explicar ambas y finalmente os ofreceré la reflexión del porque de mi elección.

Ampliar la SWAP utilizando una partición

Para ampliar la SWAP de esta forma, debemos crear una partición en la tarjeta SD, o si lo deseamos en un pendrive conectado al puerto USB, que actuara como espacio de intercambio, y esto se puede hacer desde cualquier programa de particionado que soporte Linux Swap.

Yo prefiero fdisk, pero para que lo veáis de una forma mas gráfica esta vez utilizaré Gparted. Primero redimensionaremos la partición del sistema operativo para dejarle 256MB a la memoria SWAP.

Redimensionamos la tarjeta SD.

Redimensionamos la tarjeta SD.

Y a continuación crearemos la partición de intercambio con esos 256MB libres.

Creamos una partición Linux SWAP.

Creamos una partición Linux SWAP.

Llegados a este punto, una vez introducida la tarjeta SD en nuestra Raspberry y arrancado el sistema operativo, desmontaremos la SWAP actual y montaremos la nueva partición.

Debemos recordar que al reiniciar dejará de funcionar ya que cargará la swap definida por Raspbian, porque de momento estamos realizando pruebas, y también debemos ser conscientes de que este sistema operativo llama a sus dispositivos de almacenamiento /dev/mmcblk* y no /dev/sd*.

pi@raspberrypi:~$ sudo mkswap /dev/mmcblk0p3
Setting up swapspace version 1, size = 262140 KiB
no label, UUID=d443580c-5ab7-4063-9aa3-beec81899ca4

pi@raspberrypi ~ $ sudo swapon /dev/mmcblk0p3

Con la siguiente orden podemos comprobar que todo esta funcionando correctamente consultando los valores referentes a la Swap en el archivo /proc/meminfo.

pi@raspberrypi:~$ cat /proc/meminfo | grep Swap
SwapCached:            0 kB
SwapTotal:        364536 kB
SwapFree:         364536 kB

Ya solo nos queda añadir los cambios en el archivo de configuración /etc/fstab para que el cambio sea definitivo, pero primero necesitamos la UUID de la partición.

pi@raspberrypi:~$ sudo blkid /dev/mmcblk0p3
/dev/mmcblk0p3: UUID="d443580c-5ab7-4063-9aa3-beec81899ca4" TYPE="swap"

Ahora ya podemos editar /etc/fstab y añadir esta referencia para que nuestra SWAP sea montada automáticamente al inicio del sistema cada vez que este arranque.

pi@raspberrypi:~$ sudo nano /etc/fstab

#/etc/fstab:
proc            /proc           proc    defaults          0       0
/dev/mmcblk0p1  /boot           vfat    defaults          0       2
/dev/mmcblk0p2  /               ext4    defaults,noatime  0       1
UUID=d443580c-5ab7-4063-9aa3-beec81899ca4 none            swap    sw              0       0

Tras reiniciar podemos comprobar que la partición swap que el sistema está usando sigue siendo la que nosotros hemos asignado para cubrir nuestras necesidades en materia de memoria virtual, ya sea con el comando visto anteriormente en esta entrada o de una forma mas gráfica.

Nueva SWAP de 256MB.

Nueva SWAP de 256MB.

Ampliar la SWAP modificando el fichero swapfile de Raspbian

Este método es mucho mas sencillo y limpio que el anterior, ya que es el que tiene el sistema operativo para definir el tamaño que tendrá la SWAP, que en este caso es un archivo y no una partición, ya que así lo han decidido los desarrolladores del proyecto Raspbian.

Para implementarlo solo debemos cambiar un valor en el archivo /etc/dphys-swapfile, donde se indica el tamaño en MB que tendrá la SWAP.

#/etc/dphys-swapfile (ORIGINAL)
CONF_SWAPSIZE=100

Una vez modificado el archivo debe quedar así:

#/etc/dphys-swapfile (MODIFICADO)
CONF_SWAPSIZE=256

Para aplicar los cambios, podemos reiniciar el sistema; o reiniciar la swap.

pi@raspberrypi:~$ sudo dphys-swapfile setup
pi@raspberrypi:~$ sudo dphys-swapfile swapon

Finalmente tras el reinicio del sistema, o de la swap; comprobaremos que los cambios se han aplicado correctamente.

pi@raspberrypi:~$ cat /proc/meminfo | grep Swap
SwapCached:            0 kB
SwapTotal:        364536 kB
SwapFree:         364536 kB

Reflexión final: Que implementacion he escogido y porqué?

Yo personalmente me quedo con este ultimo método por ser el que viene ya implementado en Raspbian, y supongo que por algo lo han escogido los desarrolladores tras pruebas y mas pruebas.

Además me permite en un futuro disponer de dos particiones primarias mas en la SD por las necesidades que me puedan surgir, y hay que tener en cuenta que es la forma mas fácil y rápida de entre las disponibles.

Si te ha gustado puedes seguirme en Twitter, Facebook, Google+, Linkedin, o compartirlo con los botones ubicados debajo de esta publicación, si tienes cualquier pregunta o sugerencia no dudes en comentar.

Ayudanos a llegar a más lectores Share on LinkedInShare on FacebookTweet about this on TwitterShare on Google+Email this to someone

Deja un comentario