As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Usando o Multi-Gen LRU (MGLRU) em kernels AL2023
O LRU multigeracional
O mecanismo tradicional de LRU usa um modelo de duas listas (ativa e inativa) para rastrear o uso de páginas, o que pode se tornar ineficiente em workloads modernas com grandes conjuntos de trabalho. O MGLRU substitui esse método por várias “gerações” de páginas, permitindo que o kernel tome decisões mais inteligentes com base em informações mais refinadas sobre o envelhecimento.
Os benefícios do MGLRU incluem:
-
Melhores decisões de recuperação: identificação mais precisa de páginas frias (não utilizadas).
-
Menor latência e melhor throughput: especialmente para workloads com grandes espaços de endereço ou muitos processos simultâneos.
-
Retenção de cache aprimorada: páginas usadas recentemente têm menos probabilidade de serem removidas prematuramente.
-
Design escalável e eficiente em termos de bloqueio: funciona melhor em máquinas com muitos. CPUs
Configuração e ajuste
A configuração do kernel CONFIG_LRU_GEN está habilitada nos AL2023 kernels. Ela é compilada no MGLRU, mas não o habilita por padrão.
O MGLRU pode ser habilitado e ajustado usando o arquivo /sys/kernel/mm/lru_gen/enabled. O valor é uma máscara de bits. Recomenda-se ativar todos os componentes, a menos que alguns deles tenham efeitos colaterais indesejáveis.
| Bit | Componentes |
|---|---|
0 |
O interruptor principal para o LRU multigeracional. |
1 |
Limpando o bit acessado nas entradas da tabela de páginas folhas em grandes lotes, quando o MMU o definir (por exemplo, em x86). Teoricamente, esse comportamento pode piorar a contenção de bloqueios (mmap_lock). Se estiver desabilitado, o LRU multigeracional sofrerá uma pequena degradação de desempenho para workloads que mapeiam páginas ativas de forma contígua, cujos bits acessados podem ser eliminados por menos lotes maiores. |
2 |
Limpando também o bit acessado nas entradas da tabela de páginas não folhas, quando o MMU o definir (por exemplo, em x86). Esse comportamento não foi verificado em variações x86 além da Intel e da AMD. Se estiver desabilitado, o LRU multigeracional sofrerá uma degradação de desempenho insignificante. |
[yYnN] |
Enable/disable todos os componentes acima. |
Um exemplo de como o MGLRU pode ser habilitado:
[ec2-user ~]$echo y >/sys/kernel/mm/lru_gen/enabled
Isto habilita todos os componentes:
[ec2-user ~]$cat /sys/kernel/mm/lru_gen/enabled0x0007