Articulo de referencia

zram

zram , anteriormente llamado compcache , es un módulo del kernel de Linux para crear un dispositivo de bloques comprimido en la RAM, es decir, un disco RAM con compresión de dis...

zram , anteriormente llamado compcache , es un módulo del kernel de Linux para crear un dispositivo de bloques comprimido en la RAM, es decir, un disco RAM con compresión de disco sobre la marcha. El dispositivo de bloques creado con zram se puede usar para intercambio o como un disco RAM de propósito general. Los dos usos más comunes de zram son el almacenamiento de archivos temporales /tmpy como dispositivo de intercambio. Inicialmente, zram solo tenía esta última función, de ahí el nombre original "compcache" ("caché comprimida"). Cuando está vacío, el dispositivo de bloques zram asigna aproximadamente el 0,1 % de su tamaño. [ 1 ]

Después de cuatro años en el área de pruebas de controladores del kernel de Linux, zram se introdujo en el kernel principal de Linux en la versión 3.14, publicada el 30 de marzo de 2014. [ 2 ] A partir de la versión 3.15 del kernel de Linux (publicada 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 kernel 5.1, el valor predeterminado es LZO-RLE, [ 3 ] que tiene un equilibrio entre velocidad y relación de compresión. Al igual que 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 espacio de intercambio comprimido, zram es similar a zswap , que no es un disco RAM de propósito general, sino una caché comprimida en el núcleo para páginas de intercambio. Sin embargo, zswap siempre requiere un almacenamiento de respaldo, [ 5 ] lo cual no es el caso de zram. Desde la introducción de CONFIG_ZRAM_WRITEBACKen la versión 4.14 del núcleo, zram también puede usar un dispositivo de almacenamiento como almacenamiento de respaldo, por lo que puede mover páginas menos utilizadas al disco, aunque el dispositivo solo puede ser una partición por el momento [ 6 ] (y el proceso no puede ser administrado automáticamente por el núcleo cuando se necesita liberar la memoria, sino que requiere programación de espacio de usuario con prioridad [ 7 ] ). Desde la versión 7.0 del núcleo, zram puede enviar los datos al almacenamiento de respaldo sin descomprimirlos primero. [ 8 ]

Cuando se utiliza para el intercambio, zram (al igual que zswap) permite a Linux hacer un uso más eficiente de la RAM, ya que el sistema operativo puede entonces mantener más páginas de memoria en el intercambio comprimido que si la misma cantidad de RAM se hubiera utilizado como memoria de aplicación o caché de disco. Esto es particularmente efectivo en máquinas que no tienen mucha memoria. [ 9 ] [ 10 ] En 2012, Ubuntu consideró brevemente habilitar zram por defecto en computadoras con poca RAM instalada. [ 11 ] Por esta misma razón, Fedora habilitó zram por defecto a partir de la versión 33. [ 12 ]

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 usar almacenamiento basado en memoria 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 intercambio, lo que reduce eficazmente el desgaste del almacenamiento basado en memoria flash y hace que dure más. El uso de zram también resulta en una reducción significativa de E/S para sistemas Linux que requieren intercambio. [ 13 ] [ 14 ]

Además, en cargas de trabajo específicas, zram puede funcionar como un método para casi duplicar la memoria (aunque con un gran riesgo sin intercambio de respaldo) y, al mismo tiempo, ser más rápido que si zram estuviera deshabilitado. Esto suele observarse al usar zram en hardware de gama baja junto con cargas de trabajo con recolección de basura y uso intensivo de E/S con almacenamiento lento (por ejemplo, USB), donde las escrituras en el intercambio pueden causar bloqueos prolongados. Esto puede hacer que las instalaciones persistentes de Linux en USB sean más utilizables en sistemas con poca memoria. [ 15 ]

Uso por Android

zram es utilizado por Android como parte de su administración de memoria [ 16 ] , los fabricantes generalmente se referían a esta función con sus propios nombres, como RAM Plus para Samsung , Extended RAM para Vivo , Memory Extension para Xiaomi , [ 17 ] y virtual RAM/RAM Turbo para Honor.

Véase también

Referencias

  1. "zram: Dispositivos de bloques basados ​​en RAM comprimida — Documentación del kernel de Linux" . docs.kernel.org . Consultado el 25 de febrero de 2024 .
  2. "Núcleo de Linux 3.14, Sección 1.2. zram: Mecanismo de compresión de memoria considerado estable" . kernelnewbies.org . 30 de marzo de 2014. Consultado el 1 de abril de 2014 .
  3. 1 2 "ZRAM tendrá un mayor rendimiento en Linux 5.1: cambió su compresor predeterminado - Phoronix" . Phoronix.com .
  4. "Núcleo de Linux 3.15, Sección 1.7. zram: Compatibilidad con compresión LZ4, rendimiento mejorado" . kernelnewbies.org . 8 de junio de 2014. Consultado el 15 de junio de 2014 .
  5. Jonathan Corbet (19 de febrero de 2026). "Modernizando el intercambio: espacios de intercambio virtuales" . lwn.net . Consultado el 19 de junio de 2026 .
  6. "zram: Dispositivos de bloques basados ​​en RAM comprimida — Documentación del kernel de Linux" . www.kernel.org . 2026. Consultado el 19 de junio de 2026 .
  7. "Desmintiendo mitos sobre zswap y zram: rendimiento bajo presión de memoria" . chrisdown.name . 2026. Consultado el 19 de junio de 2026 .
  8. Daroc Alden (23 de febrero de 2026). "La segunda mitad de la ventana de fusión 7.0" . lwn.net . Consultado el 19 de junio de 2026 .
  9. "Mayor rendimiento en Linux con zram (intercambio virtual comprimido en RAM)" . webupd8.org . 2 de octubre de 2011. Consultado el 8 de noviembre de 2011 .
  10. "compcache Almacenamiento en caché comprimido para Linux" . code.google.com . 27 de abril de 2010. Consultado el 11 de noviembre de 2011 .
  11. ^ Dinsan, Francis (8 de diciembre de 2012). "Ubuntu Linux considera un mayor uso de zRAM" . Consultado el 30 de octubre de 2013 .
  12. "Fedora 33 busca usar la memoria de intercambio en zRAM por defecto con zram-generator de systemd - Phoronix" . Phoronix.com . Consultado el 29 de marzo de 2021 .
  13. "ZRAM podría finalmente ser retirado del entorno de pruebas de Linux" . Phoronix . 14 de agosto de 2013. Consultado el 9 de febrero de 2014 .
  14. "zRAM aún espera un ascenso" . Phoronix . 25 de noviembre de 2013. Consultado el 9 de febrero de 2014 .
  15. "Uso de zram con Raspberry Pi" . Pi My Life Up. 30 de enero de 2022. Consultado el 16 de febrero de 2026 .
  16. "Asignación de memoria entre procesos | Calidad de la aplicación" . Desarrolladores de Android . Consultado el 22 de enero de 2026 .
  17. Debasish (30 de abril de 2025). "La verdad sobre la RAM virtual de Android: apenas utiliza el almacenamiento interno" . Gizmochina . Consultado el 22 de enero de 2026 .
  • Documentación del kernel de Linux zram y página del manual zramctl(8)
  • Compcache, almacenamiento en caché comprimido para Linux
  • Compcache: intercambio comprimido en memoria , 26 de mayo de 2009, LWN.net, por Nitin Gupta
  • Compresión de memoria en el núcleo , 3 de abril de 2013, LWN.net, por Dan Magenheimer
  • La caché de compresión: Compresión de memoria virtual para ordenadores portátiles , 16 de marzo de 2000, por Michael J. Freedman