O gerenciamento de memória RAM no Linux é uma ciência que evolui constantemente. Desde a popularização de técnicas como o Swap em disco até o advento do ZRAM, que virou padrão em distribuições como o Fedora e sistemas operacionais de ponta como o Android e o ChromeOS, a comunidade sempre procurou formas de “esticar” a memória física disponível. Mas uma apresentação durante o recente Linux Plumbers Conference deixou desenvolvedores boquiabertos: a tecnologia CRAM (Compressed RAM), idealizada pelos engenheiros de infraestrutura da Meta (antiga Facebook).
O gargalo das tecnologias de compressão atuais
Para entender por que o CRAM é tão revolucionário, precisamos entender como o ZRAM e o Zswap funcionam hoje.
Atualmente, quando seu sistema operacional percebe que a memória RAM está ficando cheia, em vez de enviar os dados antigos imediatamente para a unidade de armazenamento, que é muito mais lenta, ele comprime esses dados dentro da própria RAM. Isso cria mais espaço livre virtual de forma rápida. No entanto, existe um custo: se o processador (CPU) precisar acessar esse dado comprimido novamente, o sistema é obrigado a descomprimir a informação por inteiro e alocá-la novamente em um setor de memória normal. Esse processo constante de “compactar-descompactar” exige muito trabalho da CPU, o que pode causar picos de lentidão em sistemas superlotados.
O acesso direto do CRAM
A tecnologia proposta pelos engenheiros da Meta, o CRAM, elimina esse principal gargalo. A grande promessa é que o sistema passe a conseguir ler e acessar os blocos de memória sem precisar descompactá-los antes.
Utilizando novos algoritmos e estruturas de páginas de memória altamente modificadas diretamente no nível mais profundo do kernel, o CRAM consegue extrair as informações necessárias diretamente dos blocos que estão encolhidos. Os testes preliminares apresentados no painel mostraram um salto significativo em eficiência de I/O, diminuição do uso excessivo da CPU e preservação massiva de cache.
É lógico que a Meta desenvolveu essa tecnologia pensando primordialmente nos seus datacenters. Em clusters que rodam milhares de microsserviços simultâneos em containers, qualquer milissegundo salvo em latência de memória representa economias na casa dos milhões de dólares em energia e infraestrutura de rede.
Mas as ramificações da possível inclusão do CRAM no Linux Kernel vão muito além dos servidores. A comunidade já discute como o CRAM poderia salvar dispositivos com pouca memória no futuro, ou permitir que ambientes desktop pesados operem fluidamente em hardwares mais antigos ou computadores de placa única (como os Raspberry Pi de 2GB ou 4GB). Se essa tecnologia provar ser estável e os resultados da comunidade mantiverem os vistos no congresso, o gerenciamento de memória no pinguim dará um dos seus maiores saltos recentes.
Fique por dentro das principais novidades da semana sobre tecnologia e Linux: receba nossa newsletter!