Durante o ciclo do Linux 5.15, a Intel contribuiu com uma melhoria para sistemas de memória em camadas, onde páginas de memória menos usadas podiam ser rebaixadas para camadas mais lentas de armazenamento de memória. No entanto, uma vez rebaixada, essa infraestrutura do kernel não tinha meios de promover essas páginas rebaixadas de volta para as camadas de memória mais rápidas, caso se tornassem populares novamente, embora agora os engenheiros do Facebook/Meta tenham trabalhado nessa funcionalidade. Facebook/Meta prepara melhorias para sistemas Linux.
Antes do kernel do Linux 5.15, durante o processo de recuperação de memória, quando o sistema RAM estava sob pressão de memória, era para simplesmente jogar fora as páginas frias. No entanto, com o Linux 5.15 veio a capacidade de mudar essas páginas frias para qualquer camada de memória mais lenta. Em particular, servidores modernos e futuros com memória persistente Optane DC ou memória habilitada para CXL, etc. Portanto, as páginas ainda estão acessíveis se necessário, mas não ocupam a preciosa DRAM do sistema se não estiverem sendo usadas e para evitar apenas esvaziá-las ou trocá-las para o disco.
Conforme observado naquele artigo de setembro, no entanto, não havia como promover as páginas de volta para DRAM quando a capacidade estava disponível ou as páginas esquentavam. O Facebook (agora Meta) tem trabalhado no tratamento da promoção e na semana passada enviou seus patches mais recentes.
Facebook/Meta prepara melhorias para sistemas Linux
Da série de patch:
Testamos esse patchset em sistemas com níveis DRAM e PMEM habilitados para CXL. Descobrimos que esse patchset pode trazer páginas mais quentes para o nó superior, enquanto move as páginas mais frias para os nós mais lentos para uma boa variedade de cargas de trabalho de metaprodução com tráfego ativo. Como resultado, os nós de camada superior atendem a mais páginas ativas e o desempenho do aplicativo melhora….Com a política de posicionamento de página padrão, os caches de arquivo preenchem o nó da camada superior e os ânons ficam presos no nó da camada mais lenta. Apenas 14% do total de ânons residem no nó de camada superior. A largura de banda de leitura NUMA remota é de 80%.
A regressão da taxa de transferência é de 18% em comparação com toda a memória servida pelo nó de camada superior.Este conjunto de patches traz 80% dos ânons para o nó de camada superior. Anons na memória mais lenta são, em sua maioria, anons frios. Como o nó da camada superior não pode hospedar toda a memória ativa, alguns arquivos ativos ainda permanecem no nó da camada mais lenta. Mesmo assim, a largura de banda de leitura NUMA remota reduz de 80% para 40%. Com este patchset, a regressão da taxa de transferência é de apenas 5% em comparação com a linha de base do nó de camada superior que atende a todo o conjunto de trabalho.
Com os servidores de memória em camadas se tornando mais predominantes com o CXL, é ótimo que esse tratamento de memória em camadas esteja sendo resolvido agora e em breve deverá chegar ao kernel principal.