Conciliando ZRAM Swap com Swap em arquivo ou partição

Nesse artigo demonstro como conciliar o uso de ZRAM Swap com Swap em partição ou em arquivo em disco de modo a priorizar o uso entre elas para um melhor desempenho.

[ Hits: 236 ]

Por: Sidnei Serra em 18/08/2025 | Blog: https://www.youtube.com/channel/UCRgokKtNlttdmg2RJEa2VYw


Implementando a swap em ZRAM



Como foi explicado, a ZRAM é um bloco comprimido na RAM do sistema onde os dados que circulam por ali são compactados e descompactados em tempo real, então o processador tem que ser bom o suficiente para lidar com essa carga de trabalho para que não haja erros no processo de compressão e descompressão. E mesmo que haja erros nos processos, ainda assim o sistema se comporta de modo adequado desde que eventuais dados não processados adequadamente não sejam críticos para evitar que a máquina trave com a entrada do "oomkiller" - que é um serviço que "mata" serviços de modo a liberar espaço na RAM para que o sistema se "recomponha". Esse bloco de memória não é fixo mas é delimitado um valor máximo pois ele concorre diretamente com os outros dados presentes na memória RAM; a compressão e descompressão é dada por algoritmos como lz4 ou zstd já presentes no sistema e, dependendo dos dados circulantes, um bloco de 512MB pode lidar facilmente com 2GB de dados.

Aqui vamos usar o pacote ZRAM-TOOLS e, no Debian de demais distribuições "xupadoras" os comandos para instalar, habilitar e iniciar são:

sudo apt install zram-tools
sudo systemctl enable zramswap.service
sudo systemctl start zramswap.service

Se você tiver algum monitor de recursos na máquina como o Conky, dependendo dos parâmetros nele já deverá aparecer o tamanho e uso da Swap, seja ela só em disco, em ZRAM ou ambas.

O arquivo de configuração fica em /etc/default/zramswap e o conteúdo é mais ou menos assim:
#Compression algorithm selection
#speed: lz4 > zstd > lzo
#compression: zstd > lzo > lz4
#This is not inclusive of all that is available in latest kernels
#See /sys/block/zram0/comp_algorithm (when zram module is loaded) to see
#what is currently set and available for your kernel[1]
#[1] https://github.com/torvalds/linux/blob/master/Documentation/blockdev/zram.txt#L86
ALGO=lz4

#Specifies the amount of RAM that should be used for zram
#based on a percentage the total amount of available memory
#This takes precedence and overrides SIZE below
#PERCENT=25

#Specifies a static amount of RAM that should be used for
#the ZRAM devices, this is in MiB
SIZE=512

#Specifies the priority for the swap devices, see swapon(2)
#for more details. Higher number = higher priority
#This should probably be higher than hdd/ssd swaps.
PRIORITY=100

As linhas que importam são:
  • ALGO=lz4
  • PERCENT=25
  • SIZE=512
  • PRIORITY=100

ALGO=lz4


Aqui é o algoritmo de compressão. Ele fornece menor compressão mas é mais rápido e usa menos processador que o zstd; já o zstd comprime mais mas é mais lento e usa mais processador. Para garantir que os algoritmos estejam disponíveis adequadamente, edite (crie) o arquivo /etc/modules-load.d/compressors.conf e coloque lá dentro:

lz4_compress
lz4
zstd
zstd_compress

PERCENT=25 SIZE=512

Você deve usar um ou outro. PERCENT faz com que o bloco de RAM tenha 25% da memória total; já SIZE especifica o tamanho do bloco de "modo fixo" também da memória total. Se usar o PERCENT coloque um # na linha do SIZE e vice-versa. Nesse ponto de configuração acredito que 25% ou 1/4 da RAM total seja suficiente. Como falado antes, o tamanho da ZRAM concorre diretamente com os outros dados circulantes no fluxo da RAM mas isso não significa que o bloco tem um tamanho fixo: ele não vai passar do tamanho especificado em PERCENT ou SIZE. Então, para ilustrar, um sistema com 2GB de RAM, para usar 1/4 da RAM, OU use PERCENT=25 OU use SIZE=512. Essa configuração então reserva 512MB de RAM para a ZRAM deixando 1,5GB para o resto do sistema.

PRIORITY=100


É a prioridade dada para o kernel usar a ZRAM na prioridade máxima. Quando a RAM estiver no limite estipulado no parâmetro swappness o kernel irá começar a usar a ZRAM até ela se completar para depois passar a usar outro dispositivo SWAP presente ma máquina, como SWAP em disco.
Página anterior     Próxima página

Páginas do artigo
   1. O que é SWAP e ZRAM Swap
   2. Implementando Swap em disco
   3. Implementando a swap em ZRAM
   4. Distribuindo as prioridades e outros parâmetros
   5. Limpando a Swap e monitorando o uso
Outros artigos deste autor

Máquina perereca - até onde é possível o uso de Linux?

Mitigação - O que é e quando é "seguro" desabilitar

Leitura recomendada

Comandos para redes wifi

Pós-instalação no Slackware 10

Recebendo notificações de seus servidores no seu celular e e-mail

KDM no Slackware 11.0

Construindo um servidor NFS usando o Insigne GNU/Linux

  
Comentários

Nenhum coment�rio foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts