📖 Tempo estimado de leitura: 5 min
Quem administra sistemas Linux está sempre procurando maneiras de otimizar desempenho e economizar recursos. E um ponto que costuma ser ignorado — até o disco encher — é a gestão de logs.
Neste post, você vai conhecer o ZLogs, uma solução de armazenamento de logs em RAM comprimida via ZRAM, que melhora a performance do sistema e ajuda a preservar o SSD.
ZRAM (antigo compcache) é um recurso do kernel Linux que cria dispositivos de bloco comprimidos diretamente na RAM. Quando você grava algo em um zram, ele é comprimido e armazenado na memória — sem tocar o disco.
Vantagens:
⒈ Velocidade: RAM é muito mais rápida que qualquer SSD
⒉ Menos I/O: Reduz drasticamente escritas no disco
⒊ Compressão automática: Cabe mais dado na mesma quantidade de RAM
⒋ Baixa latência: Ideal para servidores com muita escrita de log
Para logs — que são escritos o tempo todo, mas lidos raramente — ZRAM é o casamento perfeito entre eficiência e desempenho.
A solução consiste em montar um diretório de logs temporários (ex: /var/log/debug-zram
) usando um dispositivo ZRAM formatado em ext4
, com script de limpeza automática baseado no uso.
👉 Veja como funciona na prática:
https://github.com/linuxelitebr/zlogs
O script de instalação se parece com isso:
Após a instalação, as units do zlogs devem estar em execução.
E se você quiser desinstalar, o script produzirá um resultado como este.
Ao aplicar corretamente o uso de ZRAM para logs, observamos:
⒈ Menos escrita no disco: tudo fica comprimido em RAM
⒉ Maior vida útil do SSD: menos ciclos de escrita
⒊ Respostas mais rápidas: ideal para aplicações que geram muito log
⒋ Limpeza automática: evita que o zram fique cheio
⒌ Persistência esperta: recriação automática após reboot
Em nossos testes com servidores de alto tráfego, o uso de ZRAM reduziu o número de operações de escrita em disco em até 70%, além de tornar o sistema mais responsivo durante picos de log.
💡 O MySQL também tem uma opção de tabelas comprimidas (nativa), que utilizam zram e lzo. Ao contrário do que alguns acham, isso aumenta bastante o rendimento do MySQL.
Os arquivos de log de texto são altamente compactáveis em comparação com a maioria dos arquivos binários porque contêm redundância significativa na forma de padrões repetidos, formatação consistente e texto simples legível por humanos. Os arquivos de log geralmente incluem carimbos de data/hora, níveis de log, IDs de processos e formatos de mensagens repetitivas - todos elementos que os algoritmos de compactação podem codificar com eficiência usando menos bits do que os dados originais.
A tabela abaixo compara os requisitos de armazenamento de arquivos de log típicos quando armazenados tradicionalmente em disco e em ZRAM com compactação LZO:
Log Type | Original Size on Disk | Size in ZRAM (LZO) | Space Saving |
---|---|---|---|
Apache Access Logs | 100 MB | 23 MB | 77% |
Nginx Error Logs | 50 MB | 12 MB | 76% |
System Logs (syslog) | 200 MB | 38 MB | 81% |
Application Debug Logs | 500 MB | 85 MB | 83% |
Database Transaction Logs | 350 MB | 91 MB | 74% |
Mail Server Logs | 150 MB | 36 MB | 76% |
Security/Auth Logs | 75 MB | 16 MB | 79% |
Kernel Logs | 120 MB | 22 MB | 82% |
Average | 193 MB | 40 MB | 79% |
Os arquivos de registro baseados em texto normalmente atingem taxas de compactação de 4:1 a 5:1 (75-80% de economia de espaço)
por vários motivos:
⒈ Estruturas repetitivas: As entradas de registro seguem padrões consistentes com elementos repetidos, como carimbos de data e hora, níveis de registro e identificadores de processo.
⒉ Conjunto limitado de caracteres: A maioria dos registros usa apenas caracteres ASCII em vez de toda a gama Unicode, o que permite uma codificação mais eficiente.
⒊ Conteúdo previsível: Palavras e frases comuns aparecem com frequência (por exemplo, “ERROR”, ‘WARNING’, “Connection refused”).
⒋ Espaço em branco: Os registros contêm espaços em branco significativos para facilitar a leitura, o que comprime com eficiência.
⒌ Padrões numéricos: IDs sequenciais, registros de data e hora e contadores incrementais são extremamente bem compactados.
Em comparação, os arquivos binários, como imagens, vídeos ou arquivos já compactados, normalmente atingem taxas de compactação muito menores:
-
Imagens JPEG: 5-15% de compressão adicional
-
Áudio MP3: 1-3% de compressão adicional
-
Arquivos ZIP/comprimidos: 0-2% de compactação adicional
O algoritmo de compactação LZO usado na ZRAM oferece um excelente equilíbrio entre taxa de compactação e desempenho, com sobrecarga mínima da CPU em comparação com algoritmos mais agressivos, como GZIP ou BZIP2, o que o torna ideal para a compactação de registros em tempo real na memória.
O ZLogs pode trazer benefícios significativos para sua infraestrutura se aplicado estrategicamente. Por exemplo, você pode criar um dispositivo zram dedicado para armazenar logs de servidores ocupados como Squid ou Apache, onde milhares de entradas são geradas por minuto, reduzindo drasticamente a latência de escrita e prolongando a vida útil de seus SSDs.
Particularmente em servidores de proxy ou web com alto tráfego, esta solução pode prevenir gargalos de E/S quando múltiplas requisições simultâneas precisam ser registradas.
🔴 Atenção: é importante lembrar que o conteúdo de dispositivos zram não persiste após reinicializações. Embora o ZLogs recrie e monte automaticamente o dispositivo zram na inicialização, ele estará vazio. Portanto, configure adequadamente sua rotação de logs ou arquivamento de logs importantes em armazenamento permanente se precisar manter registros históricos por períodos mais longos.
Armazenar logs em ZRAM é uma estratégia simples e eficaz para melhorar o desempenho do sistema e prolongar a vida útil dos discos. Para servidores, appliances, ou mesmo workstations Linux, essa abordagem reduz I/O e evita surpresas desagradáveis como discos cheios por logs esquecidos.
A solução proposta pelo ZLogs é modular, adaptável e fácil de automatizar. É a forma ideal de tratar logs de debug de maneira eficiente — sem prejudicar o sistema.
Compartilhe este post com a sua equipe, e continue acompanhando o blog para mais soluções práticas em Linux e tecnologias open source. 😉
🔍 Veja também outros artigos interessantes sobre monitoramento!
Se este conteúdo te ajudou, clique em algum dos banners do site. Você ajuda a manter o blog no ar e gratuito. Obrigado! 🙏