Translate

Mejora el rendimiento con Zram, la swap en ram

ram-memory

El swap es un tipo de memoria especial en disco que se utiliza para mover datos de la ram que no se están utilizando en ese momento. Cuando nos hace falta más memoria ram de la que realmente tenemos disponible.

Su problema, es que el disco es infinitamente más lento que la ram, lo que hace que leer o escribir los datos del swap sea lento y apreciemos ralentización en el equipo.
Una buena forma de mejorar esto es crear esta memoria especial swap en la propia memoria ram, utilizando zram.

Seguramente estarás pensando que estoy loco. Crear una memoria en la ram cuyo fin es meter datos que no caben en la ram,  así contado, no tiene sentido. Pero es que lo que nos falta por decir es que zram comprime los datos al meterlos en su área de memoria swap, por lo que realmente tenemos más capacidad de memoria sin el ralentizamiento de escribir en disco.

Esto es útil en equipos con pocos recursos, pero también en equipos con discos SSD, puesto que alarga su vida al realizar menos operaciones de lectura y escritura en ellos.

Para activarla, lo primero que vamos a hacer es abrir una terminal como root, o si la abrirnos como usuario normal, convertirnos en root con el comando su. Este es uno de los pocos casos que he visto en los que sudo no nos dará los permisos suficientes para hacer lo que deseamos.

Primero comprobaremos si nuestro kernel soporta el modulo de zram. En mi caso, con Wheezy no hay problema alguno.

grep -i zram /boot/config-`uname -r`

El resultado será algo como esto

CONFIG_ZRAM=
# CONFIG_ZRAM_DEBUG is not set

Esa “m” nos indica que zram es soportada como un modulo externo al kernel, así que vamos a cargarlo.

modprobe zram

Ahora vamos a crear el dispositivo zram, vamos a asignarle 100 megas, pero tu puedes asignar más o menos memoria según tu gusto cambiándolo por el 100 que yo pongo en el comando

echo $((100*1048576)) > /sys/block/zram0/disksize

Montamos el dispositivo

mkswap /dev/zram0

Y le asignamos prioridad, que debe ser mayor que la de la swap en disco, para que se use preferentemente nuestra zram. Con una prioridad 10 bastará

swapon -p 10 /dev/zram0

Y ya lo tenemos funcionando. Pero claro, lo que nos interesa es que funcione siempre cuando iniciamos el ordenador, sin tener que dar todos estos pasos cada vez. Para ello vamos a editar el fichero /etc/rc.local con nuestro editor favorito. Yo utilizaré nano, pero puede ser cualquier otro, por ejemplo gedit.

nano /etc/rc.local

Y pegamos estas líneas antes de donde pone exit 0

modprobe zram &&
echo $((100*1048576)) > /sys/block/zram0/disksize
mkswap /dev/zram0 &&
swapon -p 10 /dev/zram0 &&

Guardamos los cambios y listo, ya tenemos zram funcionando y nuestro equipo "más ligero".

0 comentarios:

Publicar un comentario