Acelerar Ubuntu en ordenadores antiguos con zram

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. Portada.

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

Acelerar Ubuntu en ordenadores antiguos con zram. Terminal.

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,

Acelerar Ubuntu en ordenadores antiguos con zram. Memoria.

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

Acelerar Ubuntu en ordenadores antiguos con zram. Memoria de intercambio.

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

Acelerar Ubuntu en ordenadores antiguos con zram. Resultado.

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,

12 comentarios en “Acelerar Ubuntu en ordenadores antiguos con zram

  1. SR
    Sr. Paquito hace 9 años

    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?

    1. EL
      El atareao hace 9 años

      Hola Sr. Paquito,

      Seguro que si. Yo lo probaría sin lugar a dudas.

      Un saludo.

      1. SR
        Sr. Paquito hace 9 años

        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.

  2. TR
    Tripaylan Jonatan hace 9 años

    Excelente guia de zram siempre tenemos un ordenador viejito que no queremos descartar y que sigue vivo! Muy util! Comparto en G+!

    1. EL
      El atareao hace 9 años

      Hola Tripaylan Jonatan,

      Muchas gracias por el comentario. Saludos.

  3. LE
    Leo hace 9 años

    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.

      1. LE
        Leo hace 9 años

        Comento por que si está bajo también hará menor uso de la zram, no?

  4. LU
    Luis Alberto Fernández Tello hace 9 años

    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.

  5. Pingback: Spacemacs: el oh-my-zsh para Emacs – indigocat
  6. VI
    Vicente Villazana hace 2 años

    Buenos días amigo Atariao esta aplicación era mui útil lastima que ya este obsoleta, seria posible una actualización.

Deja una respuesta

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