Um novo método de compressão de memória para Linux promete acelerar a leitura de dados comprimidos em até 452 vezes em relação ao ZRAM. Chamado de CRAM, o projeto foi concebido por Gregory Price e sua equipe na Meta e muda a forma como o sistema trata a memória comprimida.
Sumário
O problema dos métodos atuais
Hoje, as opções mais populares de compressão de memória no Linux são o zswap e o ZRAM. Apesar de úteis, ambos são recursos da camada de swap: os dados comprimidos acabam sendo tratados como um dispositivo de bloco, o que introduz sobrecarga. Segundo os pesquisadores, a maior parte da perda de desempenho não vem da compressão em si, mas da troca de páginas e do comportamento do swap.
Como o CRAM funciona
A ideia central do CRAM é simples de resumir: manter os dados comprimidos dentro da memória, sem envolvê-los no mecanismo de swap. Para isso, ele usa um nó NUMA privado — uma espécie de CPU fantasma — em vez de se passar por um dispositivo de bloco. Isso permite que o Linux continue aplicando as suas semânticas normais de memória, como migração e ballooning, para gerenciar o CRAM.
Um detalhe importante é o Chicken Bit, um mecanismo que instrui o Linux a parar de tentar usar o CRAM enquanto ele está ocupado gerenciando alocações, evitando falhas em cascata.
Um problema em aberto
Há ainda uma questão não resolvida: como calcular quanta memória lógica existe quando parte dela está comprimida, já que a compressibilidade varia conforme o conteúdo — de pilhas de zeros, fáceis de comprimir, até dados já comprimidos. Essa é uma área de pesquisa ativa, e o CRAM ainda não tem uma resposta definitiva para ela.
O projeto está em estágio inicial, mas os ganhos de leitura divulgados indicam um caminho promissor para servidores e sistemas que dependem de muita memória comprimida.










