Otimização de Memória e Swap (zRAM + Sysctl)

Esta configuração visa maximizar a performance de sistemas com RAM moderada (12GB), utilizando compressão em memória antes de recorrer ao armazenamento em disco, além de ajustar a reatividade do Kernel Linux.

1. Arquitetura de Memória Implementada

A solução utiliza duas camadas de Swap com prioridades distintas:

  1. zRAM (Alta Prioridade): Um dispositivo de bloco comprimido na RAM. É ordens de magnitude mais rápido que o SSD.
  2. Swapfile (Baixa Prioridade): Arquivo de segurança em disco para evitar travamentos (OOM) em cargas extremas.

2. Componentes e Configurações

A. Instalação do zRAM

O zram-tools automatiza a criação da swap comprimida.

  • Instalação: sudo apt install zram-tools -y
  • Configuração (/etc/default/zramswap):
    • PERCENT=60: Reserva até 60% da RAM para compressão (geralmente entrega uma taxa de 2:1 ou 3:1).
    • PRIORITY=100: Garante que o zRAM seja consultado antes do arquivo em disco.

B. Parâmetros de Kernel (Sysctl)

As variáveis de sistema foram ajustadas em /etc/sysctl.d/99-otimizacoes.conf para equilibrar o uso de RAM e Disco.

ParâmetroValorDescrição
vm.swappiness10Define a agressividade do swap. O valor 10 faz o kernel priorizar a RAM física e usar swap apenas em necessidade real.
vm.vfs_cache_pressure50Controla a recuperação de memória de cache de diretórios/inodes. O valor 50 ajuda o Btrfs a manter metadados em cache por mais tempo, acelerando o sistema.

3. Passo a Passo para Replicar

Passo 1: Configurar zRAM

  1. Edite o arquivo: sudo nano /etc/default/zramswap
  2. Adicione:PlaintextPERCENT=60 PRIORITY=100
  3. Reinicie o serviço: sudo systemctl restart zramswap

Passo 2: Otimizar o Kernel

  1. Crie o arquivo de configuração:Bashecho -e "vm.swappiness=10\nvm.vfs_cache_pressure=50" | sudo tee /etc/sysctl.d/99-otimizacoes.conf
  2. Aplique as mudanças:Bashsudo sysctl --system

4. Comandos de Monitoramento e Validação

Para verificar se o balanço está correto, utilize os seguintes comandos:

  • Verificar Hierarquia de Swap:Bashswapon --show Certifique-se de que o /dev/zram0 possui uma PRIO superior ao /swapfile.
  • Verificar Parâmetros Ativos:Bashsudo sysctl vm.swappiness vm.vfs_cache_pressure
  • Monitorar Uso em Tempo Real:Bashzramctl Este comando mostra o quanto de memória original foi comprimida e quanto espaço ela ocupa atualmente (Disksize vs Data).

Resumo Final

Com estas alterações, Thomas, seu sistema ganha uma “RAM virtual” mais ágil e preserva a vida útil do seu SSD, mantendo a estabilidade para seus containers Docker e instâncias do Zabbix.

Voltar ao Blog