Instalación, configuración y gestión de zram en SUSE Linux Micro
- DESCRIPCIÓN
zram es un módulo del kernel que crea un dispositivo de bloques comprimido en la RAM.
- INTENCIÓN
En este artículo se describe cómo instalar y configurar zram en SUSE Linux Micro.
- ESFUERZO
Se tardan aproximadamente 15 minutos en leer el artículo.
- OBJETIVO
Tendrá dispositivos de bloques configurados en RAM.
- REQUISITOS
Una instancia en ejecución y registrada de SUSE Linux Micro
1 ¿Qué es zram? #
zram es un módulo del kernel que crea un dispositivo de bloques comprimido en la RAM. El dispositivo de bloques se puede utilizar como disco RAM (normalmente para almacenar archivos temporales) o como espacio de intercambio.
1.1 Ventajas de zram #
Usar zram puede presentar las siguientes ventajas:
Operaciones de E/S rápidas: debido a la naturaleza basada en RAM de zram, los dispositivos de bloques proporcionan un acceso muy rápido a los datos.
Ahorro de memoria: ya que los datos se comprimen con zram, se puede ahorrar una cantidad de memoria importante. Por lo tanto, zram utiliza la memoria RAM de forma eficaz y es especialmente adecuado en entornos con un tamaño de RAM reducido, por ejemplo, en sistemas integrados.
Sistema de archivos en el dispositivo de bloques: puede crear sistemas de archivos en los dispositivos de bloques.
1.2 Limitaciones de zram #
No se admite la hibernación en el espacio de intercambio de zram aunque se configure un dispositivo de respaldo en almacenamiento permanente.
2 Configuración de zram #
Para configurar correctamente zram en el sistema, realice los siguientes pasos. Los detalles se proporcionan en las secciones siguientes.
Instale la utilidad
zram-generator
, que crea el dispositivo de bloque RAM según la configuración proporcionada. Para obtener más información, consulte la Sección 2.1, “Instalación de paquetes de zram”.Prepare la configuración como se describe en la Sección 2.2, “Configuración necesaria para zram”.
Ejecute comandos para crear nuevas unidades de dispositivo como se describe en la Sección 2.3, “Creación de unidades de dispositivo”.
Rearranque el equipo.
Verifique que todo funciona correctamente. Ejecute el comando
zramctl
, que debe producir un resultado similar al siguiente:>
sudo
zramctl
NAME ALGORITHM DISKSIZE DATA COMPR TOTAL STREAMS MOUNTPOINT /dev/zram1 lzo-rle 96.6M 4K 79B 12K 1 [SWAP] /dev/zram0 lzo-rle 483M 4K 79B 12K 1 [SWAP]
2.1 Instalación de paquetes de zram #
El paquete zram-generator
no está disponible por defecto en SUSE Linux Micro. Instale el paquete de la siguiente manera:
>
sudo
transactional-update pkg install zram-generator
Después de una instalación correcta, rearranque el sistema.
2.2 Configuración necesaria para zram #
El archivo de configuración principal de zram es /etc/systemd/zram-generator.conf
. Sin embargo, puede crear un directorio /etc/systemd/zram-generator.conf.d/
con un conjunto de archivos de inserción que pueden anular las entradas del archivo de configuración principal.
2.2.1 El archivo /etc/systemd/zram-generator.conf
#
El archivo no se instala junto con el paquete zram-generator
, por lo que debe escribir el suyo propio. Las opciones que se deben añadir se describen a continuación. Puede verse un ejemplo en la Sección 2.2.1.1, “Ejemplo de /etc/systemd/zram-generator.conf
”.
Defina al menos un dispositivo zram. La numeración comienza en 0, por lo que para definir un dispositivo zram, añada una sección [zram0]
al archivo de configuración.
Puede definir las siguientes entradas en la sección de dispositivos zram:
- host-memory-limit
Especifique el tamaño máximo de RAM del host en MiB cuando se pueda crear un dispositivo de bloques. Si el valor es mayor, no se creará el dispositivo zram. Si no se define, o si se define como
none
, no hay límite para la RAM del host.- zram-size
Especifique el tamaño del dispositivo zram en comparación con la RAM del host. El valor por defecto es
zram-size = min(ram / 10, RAM_HARD_LIMIT)
. Es el valor mínimo de los dos, donderam
es el tamaño de RAM del host obtenido medianteMemTotal
.ram
es la cantidad total de memoria del host en MB.ram/10
es la proporción de memoria de host total que se puede utilizar para zram. Según el ejemplo, zram puede utilizar el 10 % de la memoria total del host. Se recomienda usar fracciones de la RAM del host en el rango del 10 % al 50 %.RAM_HARD_LIMIT es la cantidad máxima de RAM en MB que puede utilizar zram.
min()
es una función que compara el valor de RAM_HARD_LIMIT y la relación calculada y selecciona la más baja.
- compression-algorithm
Especifique el algoritmo utilizado para comprimir los datos en zram. Puede utilizar cualquiera de los valores siguientes:
deflate
: un formato de archivo de compresión de datos sin pérdidaslz4
olz4hc
: un algoritmo de compresión de datos sin pérdidas que se centra en la velocidad de compresión y descompresiónlzo-rle
: un algoritmo de compresión de datos sin pérdidas que se centra en la velocidad de descompresiónzstd
, también conocido como Zstandard: un algoritmo de compresión de datos sin pérdidas comparable a DEFLATE en relación de compresión, pero más rápido durante la descompresión842
: un algoritmo de compresión de datos
Si se omite, se utiliza el valor por defecto del kernel (normalmente, LZO-RLE).
- options
Especifique las opciones del espacio de intercambio o montaje de un disco RAM. Si se define
discard
o se omite, las páginas comprimidas no utilizadas se recortan durante la ejecución del sistema. Esta solución proporciona una gestión eficaz de zram. Para anular el valor por defecto (discard
), deje el valor vacío:options =
- writeback-device
Especifique un dispositivo donde almacenar las páginas no comprimibles. Estas páginas se eliminan de zram.
- fs-type
Si el dispositivo se utiliza como disco, especifique el sistema de archivos que se utilizará. Por ejemplo,
ext4
.- mount-point
Especifique un directorio donde montar el sistema de archivos. Esta opción no se utiliza cuando el dispositivo zram se emplea como espacio de intercambio.
2.2.1.1 Ejemplo de /etc/systemd/zram-generator.conf
#
En el siguiente ejemplo se crean dos dispositivos de bloques en la RAM: zram0
para el espacio de intercambio y zram1
con el sistema de archivos ext4. Si el equipo tiene más de 9 GB de RAM, zram0
no se creará. Cada dispositivo de bloques asignará hasta 2 GB de RAM.
[zram0] host-memory-limit = 9048 zram-size = min(ram / 10, 2048) compression-algorithm = lzo-rle options = discard writeback-device = /dev/zvol/tarta-zoot/swap-writeback [zram1] zram-size = ram / 10 fs-type = ext4 mount-point = /run/compressed-mount-point
2.3 Creación de unidades de dispositivo #
Después de preparar la configuración, cree e inicie los dispositivos. Para ello, siga el procedimiento que se indica a continuación:
Cree las unidades de dispositivo zram ejecutando el comando:
>
sudo
systemctl daemon-reload
Inicie el dispositivo:
>
sudo
systemctl start DEVICE_NAME
DEVICE_NAME is the name you configured in/etc/systemd/zram-generator.conf
and it is in the format/dev/zramN
Para verificar que los módulos se han iniciado, ejecute el siguiente comando para cada dispositivo:
>
sudo
systemctl status DEVICE_NAME
3 Información legal #
Copyright © 2006 –2025 SUSE LLC y colaboradores. Reservados todos los derechos.
Está permitido copiar, distribuir y modificar este documento según los términos de la licencia de documentación gratuita GNU, versión 1.2 o (según su criterio) versión 1.3. Esta información de copyright y licencia deberán permanecer inalterados. En la sección titulada “GNU Free Documentation License” (Licencia de documentación gratuita GNU) se incluye una copia de la versión 1.2 de la licencia.
Para obtener información sobre las marcas comerciales de SUSE, consulte https://www.suse.com/company/legal/. Todas las marcas comerciales de otros fabricantes son propiedad de sus respectivas empresas. Los símbolos de marcas comerciales (®, ™, etc.) indican marcas comerciales de SUSE y sus filiales. Los asteriscos (*) indican marcas comerciales de otros fabricantes.
Toda la información recogida en esta publicación se ha compilado prestando toda la atención posible al más mínimo detalle. Sin embargo, esto no garantiza una precisión total. Ni SUSE LLC, ni sus filiales, ni los autores o traductores serán responsables de los posibles errores o las consecuencias que de ellos pudieran derivarse.