Utilisation de Multi-Gen LRU (MGLRU) sur des noyaux 023 AL2 - Amazon Linux 2023

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Utilisation de Multi-Gen LRU (MGLRU) sur des noyaux 023 AL2

Le LRU Multi-Gen est un algorithme moderne de restauration de pages du noyau Linux, conçu pour améliorer les performances de gestion de la mémoire sous pression de mémoire. Il remplace le mécanisme LRU (Least Recently Used) traditionnel utilisé pour déterminer les pages de mémoire à récupérer lorsque le système manque de mémoire.

Le mécanisme LRU traditionnel utilise un modèle à deux listes (active et inactive) pour suivre l'utilisation des pages, ce qui peut s'avérer inefficace dans les charges de travail modernes impliquant de grands ensembles de travail. MGLRU remplace cela par plusieurs « générations » de pages, permettant au noyau de prendre des décisions plus intelligentes sur la base d'informations plus précises sur le vieillissement.

Les avantages du MGLRU incluent :

  • De meilleures décisions en matière de récupération : identification plus précise des pages inutilisées.

  • Latence réduite et débit amélioré : en particulier pour les charges de travail comportant de grands espaces d'adressage ou de nombreux processus simultanés.

  • Meilleure conservation du cache : les pages récemment utilisées sont moins susceptibles d'être expulsées prématurément.

  • Conception évolutive et efficace en termes de verrouillage : fonctionne mieux sur de nombreuses machines. CPUs

Configuration et réglage

La configuration du noyau CONFIG_LRU_GEN est activée sur les noyaux AL2 023. Cela compile dans MGLRU mais ne l'active pas par défaut.

MGLRU peut être activé et réglé à l'aide du /sys/kernel/mm/lru_gen/enabled fichier. La valeur est un masque de bits. Il est recommandé d'activer tous les composants sauf si certains d'entre eux présentent des effets secondaires indésirables.

Bit Composants
0 Le commutateur principal pour le LRU multigénération.
1 Effacement du bit consulté dans les entrées du tableau des pages de feuilles par lots volumineux, lorsque MMU le définit (par exemple, sur x86). Ce comportement peut théoriquement aggraver la contention des verrous ()mmap_lock. Si elle est désactivée, le LRU multigénération subira une légère dégradation des performances pour les charges de travail qui mappent de manière contiguë des pages actives, dont les bits accédés peuvent être effacés par un nombre réduit de lots plus importants.
2 Efface également le bit consulté dans les entrées de table de pages autres que des feuilles, lorsque MMU le définit (par exemple, sur x86). Ce comportement n'a pas été vérifié sur les modèles x86 autres qu'Intel et AMD. S'il est désactivé, le LRU multigénération subira une dégradation négligeable des performances.
[yYnN] Enable/disable tous les composants ci-dessus.

Voici un exemple de la façon dont MGLRU peut être activé :

[ec2-user ~]$ echo y >/sys/kernel/mm/lru_gen/enabled

Cela permet à tous les composants de :

[ec2-user ~]$ cat /sys/kernel/mm/lru_gen/enabled 0x0007