Ir para o conteúdoIr para navegação de página: página anterior [tecla de acesso p]/próxima página [tecla de acesso n]
documentation.suse.com / Instalação, configuração e gerenciamento do zram no SUSE Linux Micro

Instalação, configuração e gerenciamento do zram no SUSE Linux Micro

Data de Publicação: 20/03/2025
O QUE É?

O zram é um módulo do kernel que cria um dispositivo de blocos compactado em RAM.

POR QUÊ?

O artigo descreve como instalar e configurar o zram no SUSE Linux Micro.

DEDICAÇÃO

A leitura do artigo leva aproximadamente 15 minutos.

META

Você terá dispositivos de blocos configurados em RAM.

REQUISITOS

Uma instância registrada em execução do SUSE Linux Micro.

1 O que é zram?

O zram é um módulo do kernel que cria um dispositivo de blocos compactado em RAM. É possível usar o dispositivo de blocos como um disco de RAM (geralmente para armazenar arquivos temporários) ou para troca.

1.1 Benefícios do zram

O uso do zram pode ter os seguintes benefícios:

  • Operações de E/S rápidas: devido à natureza baseada em RAM do zram, os dispositivos de blocos concedem acesso muito rápido aos dados.

  • Economia de memória: como os dados são compactados usando zram, é possível economizar uma boa quantidade de memória. Portanto, o zram usa a RAM com eficiência e é especificamente adequado a ambientes com tamanho de RAM baixo, por exemplo, sistemas incorporados.

  • Sistema de arquivos no dispositivo de blocos: você pode criar sistemas de arquivos nos dispositivos de blocos.

1.2 Limitações do zram

A hibernação para troca do zram não é suportada, mesmo que você configure um dispositivo de apoio no armazenamento permanente.

2 Configurando o zram

Para configurar o zram apropriadamente no sistema, execute as etapas a seguir. Os detalhes são apresentados nas demais seções.

  1. Instale o utilitário zram-generator, que cria o dispositivo de blocos de RAM de acordo com a configuração especificada. Para obter detalhes sobre a instalação, consulte a Seção 2.1, “Instalando pacotes do zram”.

  2. Prepare a configuração conforme descrito na Seção 2.2, “Configuração necessária para o zram”.

  3. Execute comandos para criar novas unidades de dispositivo conforme descrito na Seção 2.3, “Criando unidades de dispositivo”.

  4. Reinicialize sua máquina.

  5. Verifique se tudo funciona corretamente. Execute o comando zramctl, que deve produzir uma saída semelhante à seguinte:

    > sudozramctl
    
    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 Instalando pacotes do zram

Por padrão, o pacote zram-generator não está disponível no SUSE Linux Micro. Instale o pacote da seguinte maneira:

        > 
        sudo
        transactional-update pkg install zram-generator

Após a instalação bem-sucedida, reinicialize o sistema.

2.2 Configuração necessária para o zram

O arquivo de configuração principal do zram é /etc/systemd/zram-generator.conf. No entanto, você pode criar um diretório /etc/systemd/zram-generator.conf.d/ com um conjunto de arquivos drop-in que podem anular as entradas no arquivo de configuração principal.

2.2.1 O arquivo /etc/systemd/zram-generator.conf

O arquivo não é instalado junto com o pacote zram-generator, portanto, você precisa gravar seu próprio arquivo. As opções a serem adicionadas estão descritas abaixo. A Seção 2.2.1.1, “Um exemplo de /etc/systemd/zram-generator.conf inclui um exemplo.

Defina pelo menos um dispositivo zram. A numeração começa em 0, portanto, para definir um dispositivo zram, adicione uma seção [zram0] ao arquivo de configuração.

Você pode definir as seguintes entradas na seção do dispositivo zram:

host-memory-limit

Especifique o tamanho máximo da RAM do host em MiB quando um dispositivo de blocos puder ser criado. Se o valor for maior, o dispositivo zram não será criado. Se não for definido ou se for definido como none, não haverá limite para a RAM do host.

zram-size

Especifique o tamanho do dispositivo zram em comparação com a RAM do host. O valor padrão é zram-size = min(ram / 10, RAM_HARD_LIMIT). Esse valor é um mínimo de cada, em que ram é o tamanho da RAM do host obtido pelo comando MemTotal.

  • ram é a quantidade total de memória do host em MB.

  • ram/10 é a taxa de memória total do host que pode ser usada para o zram. De acordo com o exemplo, o zram pode usar 10% da memória total do host. Recomendamos frações da RAM do host na faixa de 10 a 50%.

  • RAM_HARD_LIMIT é a quantidade máxima de RAM em MB que pode ser usada pelo zram.

  • min() é uma função que compara o valor de RAM_HARD_LIMIT e da taxa calculada e seleciona o menor.

compression-algorithm

Especifique o algoritmo usado para compactar os dados no zram. Você pode usar qualquer um destes valores:

  • deflate: um formato de arquivo de compactação de dados sem perdas

  • lz4 ou lz4hc: um algoritmo de compactação de dados sem perdas que se concentra na velocidade de compactação e descompactação

  • lzo-rle: um algoritmo de compactação de dados sem perdas que se concentra na velocidade de descompactação

  • zstd, também conhecido como Zstandard: um algoritmo de compactação de dados sem perdas comparável ao DEFLATE com em relação à taxa de compactação, porém mais rápido durante a descompactação

  • 842: um algoritmo de compactação de dados

Se omitido, o padrão do kernel será usado (geralmente LZO-RLE).

options

Especifique opções de troca ou montagem para um disco de RAM. Se definido como discard ou omitido, as páginas compactadas não usadas serão cortadas durante a execução do sistema. Essa solução oferece um gerenciamento eficiente do zram. Para anular o padrão (discard), deixe o valor vazio:

options =
writeback-device

Especifique um dispositivo no qual armazenar páginas incompressíveis. Essas páginas serão removidas do zram.

fs-type

Se o dispositivo for usado como um disco, especifique o sistema de arquivos que será usado nele. Por exemplo, ext4.

mount-point

Especifique um diretório no qual montar o sistema de arquivos. Essa opção não é usada quando o dispositivo zram é usado para troca.

2.2.1.1 Um exemplo de /etc/systemd/zram-generator.conf

O exemplo a seguir cria dois dispositivos de blocos em RAM: zram0 para troca e zram1 com o sistema de arquivos ext4. Se a máquina tiver mais de 9 GB de RAM, o zram0 não será criado. Cada dispositivo de blocos alocará até 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 Criando unidades de dispositivo

Após preparar a configuração, crie e inicie os dispositivos. Para fazer isso, consulte o seguinte procedimento:

  1. Crie as unidades de dispositivo zram executando o comando:

                > 
                sudo
                systemctl daemon-reload
  2. Inicie o dispositivo:

    > sudosystemctl start DEVICE_NAMEDEVICE_NAME is the name you configured in
    /etc/systemd/zram-generator.conf and it is in the format /dev/zramN
  3. Para verificar se os módulos foram iniciados, execute o seguinte comando para cada dispositivo:

                > 
                sudo
                systemctl status DEVICE_NAME