Lanzamiento inicial | 30 de marzo de 2014 ( 30-03-2014 ) | (Linux 3.14)
---|---|
Escrito en | do |
Sistema operativo | Linux |
Tipo | Características del kernel de Linux |
Licencia | Licencia Pública General GNU |
Sitio web | www.kernel.org |
zram , anteriormente llamado compcache , es un módulo del kernel de Linux para crear un dispositivo de bloque comprimido en la RAM, es decir, un disco RAM con compresión de disco sobre la marcha. El dispositivo de bloque creado con zram puede luego usarse para intercambio o como disco RAM de propósito general. Los dos usos más comunes para zram son para el almacenamiento de archivos temporales ( /tmp
) y como dispositivo de intercambio. Inicialmente, zram solo tenía la última función, de ahí el nombre original "compcache" ("caché comprimido"). A diferencia del intercambio, zram solo usa el 0,1% del tamaño máximo del disco cuando no está en uso. [1]
Después de cuatro años en el área de pruebas de controladores del núcleo Linux, zram se introdujo en el núcleo principal de Linux en la versión 3.14, lanzada el 30 de marzo de 2014. [2] A partir de la versión 3.15 del núcleo Linux (lanzada el 8 de junio de 2014), zram admite múltiples flujos de compresión y múltiples algoritmos de compresión . Los algoritmos de compresión incluyen DEFLATE ( DEFLATE
), LZ4 ( LZ4
, y LZ4HC
"alta compresión"), LZO ( LZO-RLE
"codificación de longitud de ejecución"), [3] Zstandard ( ZSTD
), 842 ( 842
). A partir del núcleo 5.1, el valor predeterminado es LZO-RLE
, [3] que tiene un equilibrio de velocidad y relación de compresión. Como la mayoría de los demás parámetros del sistema, el algoritmo de compresión se puede seleccionar a través de sysfs . [4]
Cuando se utiliza como un espacio de intercambio comprimido, zram es similar a zswap , que no es un disco RAM de propósito general, sino más bien un caché comprimido dentro del núcleo para páginas de intercambio. Hasta la introducción de CONFIG_ZRAM_WRITEBACK
en la versión 4.14 del núcleo, a diferencia de zswap, zram no podía usar un dispositivo de almacenamiento como almacenamiento de respaldo, por lo que no podía mover páginas usadas con menos frecuencia al disco. Sin embargo, zswap siempre requiere un almacenamiento de respaldo, lo que no es el caso de zram.
Cuando se utiliza para el intercambio, zram (como zswap) permite a Linux hacer un uso más eficiente de la RAM, ya que el sistema operativo puede entonces almacenar más páginas de memoria en el intercambio comprimido que si se hubiera utilizado la misma cantidad de RAM como memoria de aplicación o caché de disco. Esto es particularmente efectivo en máquinas que no tienen mucha memoria. [5] [6] En 2012, Ubuntu consideró brevemente habilitar zram de forma predeterminada en computadoras con pequeñas cantidades de RAM instalada. [7] Por esta misma razón, Fedora habilitó zram de forma predeterminada a partir de la versión 33. [8]
El uso de espacio de intercambio comprimido con zram o zswap también ofrece ventajas para dispositivos de hardware de gama baja, como dispositivos integrados y netbooks . Estos dispositivos suelen utilizar almacenamiento basado en flash , que tiene una vida útil limitada debido a la amplificación de escritura , y también pueden usarlo para proporcionar espacio de intercambio . El uso de zram o zswap reduce el uso de espacio de intercambio, lo que reduce efectivamente la cantidad de desgaste que se produce en el almacenamiento basado en flash y hace que dure más. El uso de zram también da como resultado una E/S significativamente reducida para sistemas Linux que requieren intercambio. [9] [10]