Separação de tamanho de página chega ao Kernel Linux 7.0 para servidores x86 de alta memória

Escrito por
Emanuel Negromonte
Emanuel Negromonte é Jornalista, Mestre em Tecnologia da Informação e atualmente cursa a segunda graduação em Engenharia de Software. Com 14 anos de experiência escrevendo sobre...

Nova arquitetura de memória no Kernel Linux 7.0 foca em escalabilidade para servidores massivos!

  • Implementação de tamanhos de página distintos para alocação e mapeamento virtual.
  • Subsistema de gerenciamento de memória em arquiteturas x86 com muita RAM.
  • Kirill A. Shutemov, engenheiro de software da Intel.
  • Proposta inicial enviada para o ciclo de desenvolvimento do Kernel Linux 7.0.

O desenvolvedor Kirill A. Shutemov, da Intel, enviou uma proposta de patch para o Kernel Linux 7.0 que visa desacoplar o conceito de tamanho de página. A mudança permite que o sistema utilize páginas de 64 KB (ou 16 KB) para alocações internas, enquanto mantém a compatibilidade de mapeamento de 4 KB para os aplicativos. O objetivo principal é aumentar a escalabilidade em servidores que gerenciam múltiplos terabytes de memória RAM.

O que isso significa na prática

Atualmente, o Kernel Linux utiliza um tamanho padrão de 4 KB para quase tudo o que envolve memória no x86. Em máquinas modernas com volumes massivos de RAM, gerenciar bilhões dessas pequenas unidades cria uma sobrecarga imensa. O patch permite que o sistema operacional trabalhe com blocos maiores “por baixo do capô”. Para o usuário, isso resulta em um sistema mais rápido para alocar memória e uma redução significativa no desperdício de RAM que o próprio kernel consome para se organizar. No entanto, o custo é um aumento no consumo de memória para arquivos muito pequenos, que passarão a ocupar pelo menos 64 KB no cache.

Detalhes da implementação

A mudança técnica central reside na separação da macro PAGE_SIZE em dois valores distintos: o PTE_SIZE, que define a granularidade do mapeamento no espaço de endereçamento virtual, e o PG_SIZE, que define o tamanho da alocação no alocador buddy. No subsistema de memória (MM), os PFNs continuam utilizando unidades de PTE_SIZE, mas o cache de arquivos e as operações de I/O passam a operar em unidades de PG_SIZE.

MétricaKernel Linux padrão (4k)Proposta Shutemov (64k)
Sobrecarga de RAM (struct page)~1.6% da memória total~0.1% da memória total
Tamanho da alocação ordem-04 KB64 KB
Pressão no lock de zonaAltaReduzida
Alocação de 2M (THP)Ordem-9Ordem-5

O patch exige uma reformulação profunda no tratamento de falhas de página (page faults) e nas VMAs, especialmente para lidar com casos onde o início de uma área de memória não está perfeitamente alinhado com o novo tamanho de página maior.

Curiosidades e bastidores da discussão

A recepção na LKML foi uma mistura de nostalgia e cautela técnica. Peter Zijlstra relembrou que propostas similares foram discutidas há quase duas décadas, em 2007. Dave Hansen trouxe uma análise pragmática sobre o desperdício de memória: ao testar em uma árvore do código-fonte do kernel, o cache de páginas subiu de 11 GB para 16 GB devido ao arredondamento de arquivos pequenos para 64 KB. A discussão agora foca em determinar se a economia de memória nas estruturas struct page (que pode chegar a centenas de gigabytes em servidores gigantes) compensa esse inchaço no cache de arquivos para o uso geral.

Quando isso chega no meu PC?

O patch está em estágio de Prova de Conceito (PoC) e foi enviado como um tópico para discussão no LSF/MM/BPF Summit. Como a mudança afeta o cerne do gerenciamento de memória, não deve ser integrada de imediato na versão estável. A expectativa é que, se aprovada, a base tecnológica comece a aparecer de forma experimental no Kernel Linux 7.0, mas a adoção em distribuições focadas em desktop como Ubuntu ou Fedora pode levar mais tempo, dado que o benefício é maior para datacenters do que para usuários domésticos.

Compartilhe este artigo
Emanuel Negromonte é Jornalista, Mestre em Tecnologia da Informação e atualmente cursa a segunda graduação em Engenharia de Software. Com 14 anos de experiência escrevendo sobre GNU/Linux, Software Livre e Código Aberto, dedica-se a descomplicar o universo tecnológico para entusiastas e profissionais. Seu foco é em notícias, tutoriais e análises aprofundadas, promovendo o conhecimento e a liberdade digital no Brasil.

Veja também: