El ingeniero Kairui Song ha desarrollado una nueva versión de los parches MGLRU-FG (Frequency-Guided Promotion) para el kernel de Linux, una evolución de la tecnología Multi-Generational LRU que promete incrementos de rendimiento de entre el 10% y el 40% en distintas cargas de trabajo. La clave está en la promoción proactiva de páginas de memoria basada en la frecuencia de acceso, lo que permite al sistema identificar con mayor precisión los datos más utilizados y mantenerlos disponibles durante más tiempo.
Funcionamiento y mejoras técnicas
A diferencia del mecanismo original MGLRU, que se apoya en la protección basada en el tiempo de desalojo, MGLRU-FG incorpora un contador de referencias por página. Cuando una página supera ciertos umbrales de acceso, se promociona de forma anticipada dentro de las generaciones de memoria, sin esperar a que actúen otros controladores. Según explica Song en la documentación enviada a la lista de correo del kernel: "Cuando los árbitros alcanzan un cierto umbral, el folio se promueve de forma proactiva en lugar de esperar a que entre en acción el controlador PID".
El sistema implementa varios niveles de referencia, como LRU_REFS_REFERENCED, LRU_REFS_WORKINGSET, LRU_REFS_PROTECTED y LRU_REFS_MAX, lo que permite una clasificación más fina de las páginas activas. Además, esta versión reduce en un bit el uso de indicadores de página y mejora la exactitud de la contabilidad de referencias dentro de MGLRU. El objetivo es distinguir mejor qué datos son realmente importantes para la carga de trabajo en ejecución, reduciendo operaciones de recuperación innecesarias y conservando en memoria los datos con mayores probabilidades de reutilización.
Resultados en pruebas reales
Los benchmarks realizados muestran mejoras notables en diversos escenarios. En compilaciones estándar, el tiempo de ejecución se reduce cerca de un segundo, y en compilaciones con 96 tareas en paralelo la aceleración alcanza casi diez segundos. MongoDB registró una mejora cercana al 13,5%, mientras que las pruebas con Chromium y Node.js utilizando zRAM como espacio de intercambio lograron incrementos de hasta el 76%. Las pruebas de almacenamiento con FIO mostraron ganancias de hasta el 11%.
El parche ha sido probado en múltiples servidores con distintas arquitecturas, equipos de escritorio y dispositivos Android. Song afirma que la implementación es estable, utilizable y suficientemente madura para avanzar hacia una posible integración futura en el kernel Linux. En sus propias palabras: "En resumen, podemos ver un rendimiento entre un 10% y un 40% mayor o un rendimiento de referencia menor en varias pruebas diferentes; cierta carga de trabajo reduce drásticamente el tiempo de ejecución, al tiempo que reduce el uso de indicadores de página en 1 bit".
Con estas cifras, MGLRU-FG se posiciona como una evolución prometedora para la gestión de memoria en Linux, un apartado crítico para el rendimiento general del sistema. Queda por ver si la comunidad del kernel adopta estos parches en futuras versiones estables.
