De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.

Compressão Transparente com Zstd - Menos Espaço, Mais Desempenho

Colaboração: Rubens Queiroz de Almeida

Data de Publicação: 1º de julho de 2026

Durante muito tempo, a compressão de arquivos foi tratada como uma atividade manual. Quando o espaço em disco começava a ficar escasso, selecionávamos alguns diretórios, criávamos um arquivo ZIP ou TAR.GZ e arquivávamos tudo em outro local. O inconveniente dessa abordagem é evidente: um arquivo compactado deixa de ser prático para uso diário. Antes de editar um documento ou compilar um programa, torna-se necessário descompactá-lo novamente.

O Btrfs resolveu esse problema de forma muito mais elegante. Em vez de compactar arquivos depois que eles são gravados, o próprio sistema de arquivos pode armazená-los comprimidos desde o início, sem que o usuário ou as aplicações precisem fazer absolutamente nada. Os programas continuam abrindo, modificando e salvando arquivos exatamente como sempre fizeram. Toda a compressão e descompressão ocorre de maneira automática, dentro do sistema de arquivos.

Nas versões mais recentes do kernel Linux, essa funcionalidade recebeu diversas otimizações, principalmente quando utilizada com o algoritmo Zstd, hoje considerado uma das melhores opções para uso geral.

A escolha do Zstd não foi por acaso. Desenvolvido originalmente pelo Facebook (atual Meta), esse algoritmo conseguiu alcançar um equilíbrio bastante difícil entre velocidade e eficiência. Algoritmos tradicionais costumam privilegiar um desses aspectos. Alguns produzem arquivos extremamente pequenos, mas exigem bastante processamento. Outros são muito rápidos, porém economizam pouco espaço. O Zstd conseguiu combinar os dois mundos, oferecendo excelente taxa de compressão sem penalizar o desempenho do sistema.

Ativar esse recurso é bastante simples. Basta montar o sistema de arquivos informando a opção correspondente:

$ mount -o compress=zstd /dev/sdb1 /dados

Caso a montagem seja realizada através do arquivo /etc/fstab, basta acrescentar a opção compress=zstd às demais opções de montagem. A partir desse momento, todos os novos arquivos gravados passam a ser comprimidos automaticamente.

O interessante é que essa configuração praticamente desaparece do cotidiano. Não existe um novo formato de arquivo, não é necessário executar comandos especiais e nenhum aplicativo precisa ser adaptado. Um editor de texto continua gravando documentos normalmente. Um compilador continua produzindo seus executáveis. O navegador continua armazenando seu cache. A diferença é que, no disco, esses dados ocupam menos espaço.

Os ganhos variam bastante conforme o tipo de informação armazenada.

Projetos de desenvolvimento costumam apresentar resultados excelentes. Um diretório contendo milhares de arquivos de código-fonte em C, C++, Python, Shell Script ou Java normalmente possui enorme quantidade de texto repetitivo, identificadores, comentários e estruturas semelhantes. Não é incomum observar reduções superiores a cinquenta por cento. Um projeto que ocupava dois gigabytes pode passar a consumir pouco mais de um gigabyte sem qualquer alteração na forma de trabalho do desenvolvedor.

O comportamento dos documentos PDF depende bastante da sua origem. Manuais técnicos compostos predominantemente por texto costumam encolher de forma significativa. Já documentos contendo imagens digitalizadas ou fotografias normalmente já utilizam compressão interna bastante eficiente e apresentam ganhos modestos. O importante é que o Btrfs tenta evitar trabalho desnecessário. Quando identifica arquivos que praticamente não podem ser comprimidos, simplesmente deixa de insistir, preservando recursos do processador.

As máquinas virtuais representam outro caso bastante interessante. Imagens de discos virtuais frequentemente armazenam enormes quantidades de espaço vazio, arquivos semelhantes e sistemas operacionais praticamente idênticos. Ambientes de desenvolvimento contendo várias distribuições Linux instaladas tendem a apresentar economias bastante expressivas. Em servidores de virtualização, essa redução pode significar dezenas ou centenas de gigabytes disponíveis para novos ambientes sem necessidade de ampliar o armazenamento.

Existe ainda um efeito colateral bastante positivo, especialmente para quem utiliza SSDs. Como menos dados precisam ser gravados fisicamente, reduz-se também o número de operações de escrita. Embora os SSDs modernos possuam vida útil elevada, qualquer tecnologia capaz de diminuir gravações desnecessárias contribui para aumentar sua longevidade.

Outro aspecto curioso é que a compressão nem sempre significa perda de desempenho. Intuitivamente, poderíamos imaginar que descompactar arquivos consumiria mais tempo do que simplesmente lê-los do disco. Em muitos cenários ocorre exatamente o contrário. Como o volume de dados transferido do SSD para a memória é menor, o tempo economizado na leitura pode compensar com folga o pequeno esforço necessário para descompressão. Em processadores modernos, essa operação é extremamente rápida. Dependendo da carga de trabalho, arquivos comprimidos podem ser carregados mais rapidamente do que suas versões originais.

Essa característica torna a compressão transparente uma daquelas tecnologias raras que conseguem entregar múltiplos benefícios ao mesmo tempo. O sistema passa a ocupar menos espaço em disco, reduz a quantidade de gravações realizadas no SSD e, em determinadas situações, ainda melhora o desempenho das operações de leitura. Tudo isso sem alterar a forma como o usuário trabalha ou exigir qualquer adaptação dos programas instalados.

Os aperfeiçoamentos incorporados recentemente ao kernel Linux reforçam essa tendência. O suporte ao Zstd continua evoluindo, novas otimizações vêm sendo adicionadas a cada versão e o Btrfs demonstra, mais uma vez, que um sistema de arquivos moderno pode fazer muito mais do que simplesmente armazenar arquivos. Ele passa a participar ativamente da otimização do desempenho e do uso eficiente dos recursos disponíveis, realizando seu trabalho de forma quase invisível para quem utiliza o computador diariamente.

No próximo artigo veremos como o Btrfs se comporta em unidades SSD modernas. Apesar de muitos usuários ainda acreditarem que a técnica de Copy-on-Write aumenta desnecessariamente o desgaste desses dispositivos, veremos que a realidade é bem mais interessante e que diversos mecanismos do próprio Btrfs foram desenvolvidos justamente para aproveitar ao máximo as características desse tipo de armazenamento.



Veja a relação completa dos artigos de Rubens Queiroz de Almeida