Utilizzo di Multi-Gen LRU (MGLRU) su kernel 023 AL2 - Amazon Linux 2023

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Utilizzo di Multi-Gen LRU (MGLRU) su kernel 023 AL2

Il Multi-Gen LRU è un moderno algoritmo di recupero delle pagine nel kernel Linux, progettato per migliorare le prestazioni di gestione della memoria in condizioni di pressione della memoria. Sostituisce il tradizionale meccanismo LRU (Least Recently Used) utilizzato per determinare quali pagine di memoria recuperare quando il sistema sta esaurendo la memoria.

Il meccanismo LRU tradizionale utilizza un modello a due elenchi (attivo e inattivo) per tenere traccia dell'utilizzo delle pagine, il che può diventare inefficiente nei carichi di lavoro moderni con set di lavoro di grandi dimensioni. MGLRU lo sostituisce con più «generazioni» di pagine, permettendo al kernel di prendere decisioni più intelligenti sulla base di informazioni dettagliate sull'invecchiamento.

I vantaggi di MGLRU includono:

  • Decisioni di recupero migliori: identificazione più accurata delle pagine fredde (non utilizzate).

  • Latenza inferiore e velocità effettiva migliorata: in particolare per carichi di lavoro con ampi spazi di indirizzi o molti processi simultanei.

  • Migliore conservazione della cache: le pagine utilizzate di recente hanno meno probabilità di essere rimosse prematuramente.

  • Design scalabile ed efficiente in termini di blocco: offre prestazioni migliori su macchine con molte unità. CPUs

Configurazione e ottimizzazione

La configurazione del kernel CONFIG_LRU_GEN è abilitata sui kernel AL2 023. Questa viene compilata in MGLRU ma non la abilita di default.

MGLRU può essere abilitato e ottimizzato utilizzando il file. /sys/kernel/mm/lru_gen/enabled Il valore è una maschera di bit. Si consiglia di attivare tutti i componenti a meno che alcuni di essi non abbiano effetti collaterali indesiderati.

Bit Componenti
0 Lo switch principale per la LRU multigenerazione.
1 Cancellazione del bit a cui si accede nelle voci della tabella Leaf Page in grandi quantità, quando MMU lo imposta (ad esempio, su x86). Questo comportamento può teoricamente peggiorare lock contention (). mmap_lock Se è disabilitato, la LRU multigenerazione subirà un lieve peggioramento delle prestazioni per i carichi di lavoro che mappano in modo contiguo le pagine calde, i cui bit a cui si accede potrebbero altrimenti essere cancellati da un minor numero di batch di dimensioni maggiori.
2 Cancellazione del bit a cui si accede anche nelle voci di tabella non a foglia, quando MMU lo imposta (ad esempio, su x86). Questo comportamento non è stato verificato su varietà x86 diverse da Intel e AMD. Se è disattivata, la LRU multigenerazione subirà un degrado delle prestazioni trascurabile.
[yYnN] Enable/disable tutti i componenti di cui sopra.

Un esempio di come MGLRU può essere abilitato:

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

Ciò abilita tutti i componenti:

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