Verwendung von Multi-Gen LRU (MGLRU) auf 023-Kerneln AL2 - Amazon Linux 2023

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Verwendung von Multi-Gen LRU (MGLRU) auf 023-Kerneln AL2

Das Multi-Gen LRU ist ein moderner Algorithmus zur Seitenrückgewinnung im Linux-Kernel, der entwickelt wurde, um die Leistung der Speicherverwaltung unter Speicherdruck zu verbessern. Er ersetzt den herkömmlichen LRU-Mechanismus (Least Recently Used), mit dem bestimmt wird, welche Speicherseiten zurückgewonnen werden sollen, wenn dem System der Arbeitsspeicher knapp wird.

Der herkömmliche LRU-Mechanismus verwendet ein Modell mit zwei Listen (aktiv und inaktiv), um die Seitennutzung zu verfolgen, was bei modernen Workloads mit großen Arbeitsgruppen ineffizient werden kann. MGLRU ersetzt dies durch mehrere „Generationen“ von Seiten, sodass der Kernel intelligentere Entscheidungen auf der Grundlage detaillierterer Alterungsinformationen treffen kann.

Zu den Vorteilen von MGLRU gehören:

  • Bessere Entscheidungen zur Rückforderung: Genauere Identifizierung von kalten (ungenutzten) Seiten.

  • Geringere Latenz und verbesserter Durchsatz: Insbesondere für Workloads mit großen Adressräumen oder vielen gleichzeitigen Prozessen.

  • Verbesserte Cache-Aufbewahrung: Bei Seiten, die kürzlich verwendet wurden, ist die Wahrscheinlichkeit geringer, dass sie vorzeitig gelöscht werden.

  • Skalierbares und sperreneffizientes Design: Bessere Leistung auf Computern mit vielen Geräten. CPUs

Konfiguration und Tuning

Die Kernel-Konfiguration CONFIG_LRU_GEN ist auf AL2 023-Kerneln aktiviert. Dies kompiliert in MGLRU, aktiviert es aber nicht standardmäßig.

MGLRU kann mithilfe der Datei aktiviert und eingestellt werden. /sys/kernel/mm/lru_gen/enabled Der Wert ist eine Bitmaske. Es wird empfohlen, alle Komponenten zu aktivieren, sofern nicht einige von ihnen unerwünschte Nebenwirkungen haben.

Bit Komponenten
0 Der Hauptschalter für die Multi-Gen-LRU.
1 Löschen des Bits, auf das zugegriffen wurde, in großen Stapeln in Blatttabelleneinträgen, wenn MMU es setzt (z. B. auf x86). Dieses Verhalten kann theoretisch den Lockkonflikt () verschlimmern. mmap_lock Wenn es deaktiviert ist, erleidet die Multi-Gen-LRU eine geringfügige Leistungseinbuße bei Workloads, die Hotpages zusammenhängend zuordnen, deren abgerufene Bits andernfalls durch weniger größere Batches gelöscht werden können.
2 Das Bit, auf das zugegriffen wurde, wird auch in Einträgen in Seitentabellen gelöscht, wenn MMU es festlegt (z. B. auf x86). Dieses Verhalten wurde bei anderen x86-Varianten als Intel und AMD nicht verifiziert. Wenn es deaktiviert ist, erleidet die Multi-Gen-LRU eine vernachlässigbare Leistungseinbuße.
[yYnN] Enable/disable alle oben genannten Komponenten.

Ein Beispiel dafür, wie MGLRU aktiviert werden kann:

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

Dadurch werden alle Komponenten aktiviert:

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