FERRAMENTAS LINUX: Os novos patches do MGLRU Linux procuram melhorar a escalabilidade da recuperação global

quarta-feira, 7 de dezembro de 2022

Os novos patches do MGLRU Linux procuram melhorar a escalabilidade da recuperação global

 

Entre os muitos novos recursos interessantes do Kernel Linux 6.1 está a fusão do código Multi-Gen LRU "MGLRU" como o que se tornou uma das melhores inovações do kernel para 2022 para revisar o código de recuperação de página do kernel do Linux. Os resultados de desempenho já são muito promissores e o MGLRU está sendo usado com sucesso no Google e em outras grandes implantações. O trabalho ainda não acabou para avançar ainda mais o kernel nesta área.


O MGLRU está ótimo para o Linux 6.1 e continua evoluindo. O engenheiro do Google, Yu Zhao, que liderou os patches MGLRU para o kernel Linux upstream na semana passada, enviou um novo conjunto de aprimoramentos.

Os patches mais recentes de Yu Zhao cobrem o memcg LRU. Veja como ele resume esse trabalho de recurso adicional:

Um memcg LRU é um por nó LRU de memcgs. É também um LRU de LRUs, pois cada combinação de nó e memcg possui um LRU de fólios (consulte mem_cgroup_lruvec()).

O seu objetivo é melhorar a escalabilidade da recuperação global, que é crítica para o superalocamento de memória em todo o sistema em data centers. Observe que a recuperação de memcg está atualmente fora do escopo.

A sua sobrecarga de memória é um ponteiro para cada vetor LRU e insignificante para cada nó. Em termos de passagem de memcgs durante a recuperação global, melhora a complexidade de melhor caso de O(n) para O(1) e não afeta a complexidade de pior caso O(n). Portanto, em média, possui uma complexidade sublinear em contraste com a atual complexidade linear.

...

Em termos de valorização global, tem duas características distintas:

1. Sharding, que permite que cada thread comece em um memcg aleatório (na geração antiga) e melhora o paralelismo;

2. Equidade eventual, que permite a recuperação direta para resgate e reduz a latência sem afetar a imparcialidade por algum tempo.

Até agora, os resultados do teste são limitados, mas com um script de teste de amostra para medir a eficácia, o MGLRU está em muito boa forma.


Ele espera ter mais resultados de referência para compartilhar em breve. Consulte os patches memcg LRU para obter mais detalhes sobre este trabalho mais recente do MGLRU. Embora, devido ao tempo desses patches, não se espera que cheguem ao próximo ciclo da v6.2.












Até a próxima !!

Nenhum comentário:

Postar um comentário