O Linux 7.3 chega com RWF_DONTCACHE para os block devices: Com ganhos de até +105% em escrita e +56% em leitura. Entenda como essa tecnologia revoluciona o I/O no kernel.
A busca por desempenho em I/O no universo Linux nunca foi tão intensa. Com a crescente demanda de cargas de trabalho em HPC (High-Performance Computing) e o avanço implacável da inteligência artificial, o subsistema de block do kernel Linux recebeu uma atualização que promete mudar o jogo: o suporte a RWF_DONTCACHE para os dispositivos de bloco no Linux 7.3.
O que é RWF_DONTCACHE e por que isso importa ?
Entendendo o problema: o custo do cache
Tradicionalmente, quando você realiza operações de leitura e escrita em um dispositivo de bloco no Linux, o kernel utiliza o page cache — uma camada de memória RAM que armazena dados recentemente acessados para acelerar operações futuras.
Embora isso seja benéfico para muitos cenários, em cargas de trabalho intensivas, como bancos de dados rodando diretamente em dispositivos raw ou aplicações de alta performance, esse cache pode se tornar um gargalo.
O page cache consome memória RAM valiosa, pode introduzir latência adicional e, em alguns casos, atrapalha mais do que ajuda. Era exatamente esse problema que o RWF_DONTCACHE veio resolver.
A solução: I/O sem cache
O RWF_DONTCACHE é uma flag que permite operações de I/O bufferizado sem cache. Na prática, quando você utiliza essa flag, o kernel executa a leitura ou escrita, mas imediatamente após a operação ser concluída, as páginas relacionadas são removidas do page cache.
O resultado? Menos pressão sobre a memória RAM, redução da latência em cenários de alta concorrência e, principalmente, ganhos expressivos de desempenho para cargas de trabalho que interagem diretamente com dispositivos de bloco.
Produto Recomendado
Este livro oferece um guia abrangente e bem estruturado sobre os aspectos essenciais da construção de sistemas de IA generativa. Ele é uma leitura obrigatória para qualquer profissional que queira escalar a IA para toda a empresa.”
Engenharia de IA: Construindo aplicações com modelos de fundação
-> https://link.amazon/B0eg7K8bY
Eu ganho uma comissão quando você faz uma compra.
Benchmarks: números que impressionam
Os testes realizados por Tal Zussman, desenvolvedor responsável por habilitar o suporte ao RWF_DONTCACHE para os dispositivos de bloco, revelam resultados surpreendentes:
Os testes foram conduzidos em uma máquina virtual com um único dispositivo de bloco. O ganho de mais de 100% em escrita é particularmente notável e demonstra o potencial transformador dessa tecnologia para aplicações que exigem alto throughput.
Para quem o RWF_DONTCACHE é útil ?
Bancos de dados em dispositivos raw
Empresas que rodam bancos de dados diretamente em dispositivos de bloco (sem sistemas de arquivos intermediários) serão as maiores beneficiadas.
O RWF_DONTCACHE permite que essas aplicações tenham um controle mais fino sobre o gerenciamento de cache, evitando que o kernel "polua" a memória com dados que não serão reutilizados.
Aplicações de HPC e IA
Cargas de trabalho de alto desempenho, como simulações científicas e treinamento de modelos de IA, frequentemente lidam com conjuntos de dados massivos. O RWF_DONTCACHE ajuda a manter a memória RAM livre para os dados que realmente importam, melhorando a eficiência geral do sistema.
Ambientes virtualizados
Provedores de nuvem e ambientes de virtualização podem se beneficiar significativamente, já que o RWF_DONTCACHE reduz a contenção de recursos de cache entre diferentes VMs, melhorando a previsibilidade de desempenho.
IO_uring: mais inovações no horizonte
Além do RWF_DONTCACHE, o Linux 7.3 trouxe melhorias significativas para o IO_uring, a revolucionária interface de I/O assíncrono do kernel.
Zero-Copy Receive (ZCRX) aprimorado
Correções e otimizações
Outras melhorias no subsistema de block do Linux 7.3
NVMe: paralelismo e suporte a Clang
Correções para o Apple NVMe
Melhorias no MD RAID
FAQ - Perguntas Frequentes
1. O RWF_DONTCACHE é seguro para todos os tipos de aplicação ?
R: Não necessariamente. O RWF_DONTCACHE é mais adequado para aplicações que realizam I/O em grandes conjuntos de dados e não se beneficiam do reuso de cache, como bancos de dados rodando em dispositivos raw. Para aplicações que acessam repetidamente os mesmos dados (como servidores web), o uso do page cache tradicional ainda é recomendado.
2. Preciso recompilar o kernel para usar o RWF_DONTCACHE ?
R: Não. O suporte ao RWF_DONTCACHE para dispositivos de bloco já está presente no kernel Linux 7.3. Você só precisa garantir que sua aplicação utilize a flag RWF_DONTCACHE nas chamadas de sistema apropriadas (como preadv2 e pwritev2).
3. O RWF_DONTCACHE funciona em qualquer dispositivo de bloco?
📋 Checklist para Migrar para o Linux 7.3
□ Verifique a compatibilidade do seu hardware com o kernel 7.3
□ Faça um backup completo dos seus dados e configurações
□ Atualize seu sistema para o kernel Linux 7.3 (ou aguarde a disponibilidade em sua distribuição)
□ Identifique aplicações que podem se beneficiar do RWF_DONTCACHE (bancos de dados, HPC, etc.)
□ Atualize o código de suas aplicações para utilizar a flag RWF_DONTCACHE onde apropriado
□ Realize testes de desempenho para validar os ganhos obtidos
□ Monitore o uso de memória para garantir que o RWF_DONTCACHE está funcionando como esperado
Conclusão
O Linux 7.3 representa um marco importante na evolução do subsistema de block do kernel.
O suporte ao RWF_DONTCACHE para dispositivos de bloco, combinado com as melhorias no IO_uring e no driver NVMe, oferece um ganho significativo de desempenho para aplicações que exigem o máximo de suas infraestruturas de armazenamento.
Se você trabalha com bancos de dados, HPC, IA ou qualquer carga de trabalho com I/O intensivo, o Linux 7.3 é uma atualização que você não pode ignorar.

Nenhum comentário:
Postar um comentário