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

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

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...
  • 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.