Uso de LRU multigeneración (MGLRU) en núcleos 023 AL2 - Amazon Linux 2023

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Uso de LRU multigeneración (MGLRU) en núcleos 023 AL2

El LRU multigeneración es un algoritmo moderno de recuperación de páginas del núcleo de Linux, diseñado para mejorar el rendimiento de la administración de la memoria en situaciones de presión de memoria. Sustituye al mecanismo tradicional LRU (utilizado menos recientemente) que se utiliza para determinar qué páginas de memoria recuperar cuando el sistema se queda sin memoria.

El mecanismo LRU tradicional utiliza un modelo de dos listas (activa e inactiva) para realizar un seguimiento del uso de las páginas, lo que puede resultar ineficiente en las cargas de trabajo modernas con conjuntos de trabajo grandes. MGLRU lo sustituye por varias «generaciones» de páginas, lo que permite al núcleo tomar decisiones más inteligentes basándose en información detallada sobre la antigüedad.

Los beneficios de MGLRU incluyen:

  • Mejores decisiones de recuperación: identificación más precisa de las páginas frías (no utilizadas).

  • Menor latencia y rendimiento mejorado: especialmente para cargas de trabajo con grandes espacios de direcciones o muchos procesos simultáneos.

  • Mejora de la retención de la memoria caché: las páginas que se utilizan recientemente tienen menos probabilidades de ser desalojadas prematuramente.

  • Diseño escalable y eficiente en cuanto al bloqueo: funciona mejor en máquinas con muchas. CPUs

Configuración y ajuste

La configuración del núcleo CONFIG_LRU_GEN está habilitada en los núcleos AL2 023. Esto se compila en MGLRU pero no lo habilita de forma predeterminada.

MGLRU se puede activar y ajustar mediante el archivo. /sys/kernel/mm/lru_gen/enabled El valor es una máscara de bits. Se recomienda activar todos los componentes, a menos que algunos de ellos tengan efectos secundarios no deseados.

Bit Componentes
0 El interruptor principal de la LRU multigeneración.
1 Borrar el bit al que se ha accedido en las entradas de la tabla de hojas en lotes grandes, cuando la MMU lo configura (por ejemplo, en x86). En teoría, este comportamiento puede empeorar la contención de bloqueos (). mmap_lock Si está deshabilitada, la LRU multigeneración sufrirá una pequeña degradación del rendimiento en el caso de las cargas de trabajo que mapeen páginas activas de forma contigua, cuyos bits accedidos podrían borrarse con menos lotes más grandes.
2 También se borra el bit al que se ha accedido en las entradas de tablas de páginas que no son hojas, cuando MMU lo configura (por ejemplo, en x86). Este comportamiento no se verificó en modelos x86 distintos de Intel y AMD. Si está deshabilitada, la LRU multigeneración sufrirá una degradación de rendimiento insignificante.
[yYnN] Enable/disable todos los componentes anteriores.

Un ejemplo de cómo se puede activar MGLRU:

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

Esto habilita todos los componentes:

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