Muchos de los equipos actuales vienen cargados de memoria RAM. Esta es la razón por la que el área de intercambio prácticamente no se utiliza. Eso, a menos que tengas una buena cantidad de aplicaciones en funcionamiento. O también es posible que tengas alguno de los devoradores de memoria por antonomasia como son Firefox o Chrome. Y no es necesario que los tengas abiertos con con una veintena de pestañas o múltiples complementos en funcionamiento, sino simplemente por su propia naturaleza. Pero, ¿y si tu máquina tiene menos de 1 ó 2 GB de RAM? Pues verás como interviene el área de intercambio. Dado que los discos duros o incluso los discos SSD son mucho mas lentos que la memoria RAM, notarán una reducción de la velocidad del equipo considerable. Sin embargo, hay una solución para aumentar la cantidad de memoria RAM sin hacerlo físicamente y acelerar tu equipo. Se trata de zram.
Acelerar Ubuntu en ordenadores antiguos con zram
¿Que es ZRAM?
zram, formalmente conocido como compcache, es un módulo del núcleo de Linux que nos permite crear bloques comprimidos llamados /dev/zram
. Todo lo que va a parar a estos discos se comprime y se guarda. Sin embargo, estos discos tienen muy buena velocidad de lectura y escritura, y por otro lado, la compresión nos proporciona un buen ahorro de memoria.
Estos bloque de memoria comprimido se pueden utilizar para la swap, o como una memoria RAM de propósito general.El uso mas habitual que se le da, es precisamente como swap, para ampliar la cantidad de memoria RAM. De esta manera, se una parte de la RAM como memoria swap o memoria de intercambio. Ahora bien, al estar comprimida, con una relación de compresión que puede ser 3:1, implica que 1GB de swap utiliza solo 333MB de RAM
ZRAM es una característica del núcleo de Linux, disponible desde la versión 3.14 de Linux, que te permite utilizar una memoria virtual comprimida en la RAM. Se trata de un mecanismo que se utiliza en Android, Cyanogenmod, Chrome OS, Lubuntu, y otros proyectos.
Desde la versión 3.15 del núcleo Linux, zram, soporta compresión múltiple, así como la posibilidad de cambiar el algoritmo de compresión que se utiliza.
¿Como utilizar ZRAM?
Para habilitar el uso de zram en Ubuntu, y así acelerar Ubuntu en ordenadores antiguos con zram, ejecuta la siguiente orden en un emulador de terminal,
sudo apt install zram-config
Una vez ejecutada la orden indicada anteriormente, zram se inicia de inmediato, utilizando la mitad de la RAM que tienes instalada en tu equipo como área de intercambio SWAP. Para ver la cantidad de RAM utilizada por zram, ejecuta la siguiente orden,
cat /proc/swaps
Para personalizar la cantidad de RAM utilizada por zram, tienes que editar /usr/bin/init-zram-swapping y buscar la siguiente línea,
mem=$(((totalmem / 2 / ${NRDEVICES}) * 1024))
Como puedes ver, la memoria, se calcula como la mitad del total de memoria RAM dividido por el número de núcleos. Así, se crearan tantos dispositivos zram como núcleos, uno por núcleo y la memoria se distribuirá de forma equitativa.
Evidentemente esta línea de código se puede modificar, adaptándola a nuestras propias necesidades.
Así, si ejecutamos la orden indicada anteriormente,
cat /proc/swaps
En el caso de tener una máquina con cuatro núcleos y 4 GB de RAM, obtendremos un resultado como el que ves a continuación,
Filename Type Size Used Priority /dev/dm-0 partition 16337404 0 -1 /dev/zram0 partition 1009768 0 5 /dev/zram1 partition 1009768 0 5 /dev/zram2 partition 1009768 0 5 /dev/zram3 partition 1009768 0 5
De forma que se crean cuatro dispositivos zram, uno por cada una de los núcleos del procesador. Para ver las características del equipo ejecutaremos la siguiente orden,
free -h
Esto arroja el siguiente resultado, antes de instalar zram,
una vez zram ya está en funcionamiento, el resultado es el siguiente,
total used free shared buff/cache available Mem: 7,7G 1,0G 3,9G 309M 2,8G 6,2G Intercambio: 19G 0B 19G
Para verificar si zram está activo, tenemos que ejecutar la siguiente orden en un emulador de terminal,
dmesg | grep zram
Esto, arrojará un resultado como el que puedes ver a continuación,
[ 831.832461] zram0: detected capacity change from 0 to 1034006528 [ 831.836215] Adding 1009768k swap on /dev/zram0. Priority:5 extents:1 across:1009768k SSFS [ 831.837119] zram1: detected capacity change from 0 to 1034006528 [ 831.840903] Adding 1009768k swap on /dev/zram1. Priority:5 extents:1 across:1009768k SSFS [ 831.841827] zram2: detected capacity change from 0 to 1034006528 [ 831.845648] Adding 1009768k swap on /dev/zram2. Priority:5 extents:1 across:1009768k SSFS [ 831.846567] zram3: detected capacity change from 0 to 1034006528 [ 831.850122] Adding 1009768k swap on /dev/zram3. Priority:5 extents:1 across:1009768k SSFS
Una vez en funcionamiento, también tienes la posibilidad de habilitarlo o inhabilitarlo. Así, para habilitar zram, solo tienes que ejecutar la siguiente orden en el terminal,
sudo /usr/bin/init-zram-swapping
mientras que para detener zram, la orden a ejecutar es
sudo /usr/bin/end-zram-swapping
Conclusiones
Por supuesto con esta solución conseguirás acelerar Ubuntu en ordenadores antiguos, y no tan antiguos, pero hay otras ventajas. Por un lado, reduces el acceso a tu disco, con lo que se acelera el funcionamiento del mismo. Pero también al reducir el acceso al disco cuando utilizas zram en equipos con unidades SSD, aumentas la vida útil de este tipo de dispositivos, al reducir la escritura en el mismo.
Más información,
Hola, Lorenzo.
Tengo un portátil viejuno (un DELL Latitude D620) del cual no sé ni su edad exacta, con un Core 2 Duo viejecito y un solo GB de RAM.
Lo muevo con un Xubuntu 14.04.4 (supongo que a no mucho tardar será Xubuntu 16.04), que, según creo, no trae ZRAM activado por defecto.
Con tan poquita RAM, le sentará bien ZRAM?
Hola Sr. Paquito,
Seguro que si. Yo lo probaría sin lugar a dudas.
Un saludo.
Estoy en ello.
Desde luego, a peor no ha ido. A simple vista no había notado gran cosa, pero cuando le das caña empiezas a ver los resultados.
Me explico: el principal problema que tenía eran los cacheos a disco brutales de Chromium, sobre todo, e imagino que la escritura en disco de la SWAP, la cosa era grave hasta el punto de bloquear el equipo, prácticamente. El uso normal era utilizar Chromium sólo para Gmail y Firefox para todo lo demás, básicamente, porque prefiero navegar sin tener una sesión de Google iniciada en el navegador, y solo con eso el equipo tendía a bloquearse.
Con ZRAM activado con la configuración por defecto, he estado probando y esto ya no me pasa. No es que parezca un portátil de última generación, pero no se bloquea por culpa de la SWAP, lo cual lo convierte en un equipo mucho más usable.
Saludos.
Excelente guia de zram siempre tenemos un ordenador viejito que no queremos descartar y que sigue vivo! Muy util! Comparto en G+!
Hola Tripaylan Jonatan,
Muchas gracias por el comentario. Saludos.
Una pregunta sobre el swapiness… tiene que estar con su valor por defecto o se pone más bajo?
Por cierto, he hecho un enlace a este post en mi blog.
Hola Leo,
Es recomendable ponerle un valor mas bajo. Te recomiendo que leas este artículo https://atareao.es/ubuntu/prolongar-la-vida-de-tu-disco-ssd-en-ubuntu/, aunque en breve publicaré una artículo mas detallado al respecto.
Saludos.
Comento por que si está bajo también hará menor uso de la zram, no?
Tengo una duda, ¿el archivo para personalizar la cantidad de memoria, no debería ser /etc/init/zram-config.conf, en vez de usr/bin/init-zram-swapping, como mencionas en el artículo, para buscar línea «
mem=$(((totalmem / 2 / ${NRDEVICES}) * 1024)) ».
Saludos, buen artículo.
Interesante, no lo conocía.
Buenos días amigo Atariao esta aplicación era mui útil lastima que ya este obsoleta, seria posible una actualización.