Si está utilizando Linux, puede multiplicar su RAM disponible sin tener que comprar nuevos módulos de memoria. Zram, zswap y zcache le permiten comprimir el contenido de la RAM de su PC, prácticamente expandiéndolo. ¿Pero cuál deberías usar? Cual es mejor? Siga leyendo para averiguarlo.
Los beneficios de la compresión de RAM
Si vio una presentación sobre las consolas de próxima generación de Sony y Microsoft, es posible que haya notado que ambas compañías hicieron un gran escándalo por la rapidez de su almacenamiento. Hay una razón para todo eso: el almacenamiento es el cuello de botella más impactante incluso en las últimas PC de gama alta.
El objetivo final de las soluciones que vemos aquí es minimizar la cantidad de datos intercambiados entre la RAM de nuestra computadora y sus sistemas de almacenamiento más lentos. Es importante tener esto en cuenta porque, como veremos, es su factor diferenciador.
ZRam
Zram es la solución de compresión de RAM más sencilla de Linux en la actualidad. Anteriormente conocido como compcache, aprovecha el soporte de Linux para múltiples dispositivos de intercambio creando uno adicional (o más) en la RAM de la computadora.
Zram funciona creando una jerarquía de tres espacios de almacenamiento. Crea un nuevo volumen de intercambio comprimido en la RAM, es decir, jerárquicamente, ubicado entre la RAM y los dispositivos de almacenamiento. Luego, cuando la RAM está llena de datos, mueve el exceso al intercambio comprimido. Cuando eso también se llena, zram comienza a mover datos a la partición de intercambio en la unidad de almacenamiento.
A este nuevo dispositivo de intercambio se le asigna una prioridad más alta que los que residen en el almacenamiento real más lento de la PC, para usarse antes que ellos. También se basa en uno de los múltiples algoritmos de compresión, como LZ4 o LZO, para almacenar la mayor cantidad de datos posible en este dispositivo de intercambio.
Los procesadores modernos han llegado a un punto en el que pueden comprimir y descomprimir los datos almacenados en la RAM más rápido de lo que podrían escribirse o leerse desde una unidad SSD o HDD, con un impacto insignificante en el rendimiento de la computadora.
Vale la pena señalar que zram funciona solo, sin necesidad de otros dispositivos de intercambio. Entonces, puede, por ejemplo, usarlo en sistemas integrados o CD en vivo, ya que no tiene que estar respaldado por un almacenamiento real.
ZSwap
Zswap es más complicado que zram. Mejora la relación entre la RAM de nuestra computadora y sus dispositivos de almacenamiento más lentos al agregar compresión inteligente donde se cruzan.
Con zswap, la RAM comprimida y los volúmenes de intercambio que ya existen en los dispositivos de almacenamiento de una computadora se tratan como nodos en un sistema de almacenamiento inteligente. Zswap también ocupa una parte de la RAM de una computadora, pero no mueve ciegamente todo lo que no cabe en el resto de la RAM y luego intenta comprimirlo. En cambio, primero comprime todo lo que no cabe en la RAM real. Si los datos están comprimidos, zswap los almacena en la RAM. Si no es así, lo almacena en el intercambio existente.
De esta manera, zswap aprovecha mejor la RAM disponible y el espacio de intercambio, ya que, por ejemplo, no acaparará la RAM que usa con datos incompresibles.
Dado que se basa en el intercambio existente, zswap es mejor para las instalaciones de Linux en todas las PC, especialmente aquellas con menos de 4 GB de RAM.
Zcache
Zcache funciona en conjunto con el sistema tmem (“Memoria trascendente”) para ofrecer al kernel de Linux una forma más versátil de almacenar datos que no se utilizan actualmente.
Zcache agrega una capa extra transparente de administración de memoria en el kernel que comprime cualquier dato que no esté actualmente en uso. A diferencia de tener que administrar cada byte de datos, con zcache, el kernel de Linux puede almacenar páginas enteras de datos en «grupos» a través de la interfaz de tmem. El backend de zcache luego comprime estos grupos de datos.
Al igual que zswap, zcache solo mantiene los datos comprimidos en la RAM y envía las páginas sin comprimir al intercambio real, haciendo así el mejor uso de ambos.
¿Cuál es mejor?
En teoría, zcache ofrece la mejor de las soluciones. Sin embargo, eso no significa que sea el camino a seguir, ya que la practicidad también importa. A pesar de sus funciones avanzadas, zcache es ampliamente incompatible. Su desarrollo se ha estancado y se eliminó del kernel de Linux en la versión 3.11. Para usarlo hoy, tendrá que pasar por aros, y el resultado probablemente no sería mucho mejor que si usara zswap.
Por otro lado, zram está más restringido porque no es mucho más que un volumen virtual almacenado en la RAM y utilizado como espacio de intercambio. Puede ayudar con los sistemas atados a la RAM, pero funciona básicamente tomando cosas a ciegas del punto A y moviéndolas al punto B y luego al punto C sin importar lo que realmente son.
Esto hace que zswap sea la mejor opción para la mayoría de los usuarios de Linux, sin importar su distribución. Para ver cómo puede aprovecharlo, consulte nuestra guía sobre zswap.