Durante el ciclo de Linux 5.15, Intel contribuyó con una mejora para los sistemas de memoria por niveles en los que las páginas de memoria menos utilizadas podrían degradarse a niveles más lentos de almacenamiento de memoria.
Pero una vez degradada, la infraestructura del kernel no tenía un medio para promover esas páginas degradadas de nuevo a los niveles de memoria más rápidos en caso de que volvieran a estar calientes, aunque ahora los ingenieros de Facebook / Meta han estado trabajando en dicha funcionalidad.
Antes del kernel de Linux 5.15, durante el proceso de recuperación de memoria, cuando la RAM del sistema estaba bajo presión de memoria, era simplemente arrojar páginas frías. Sin embargo, con Linux 5.15 vino la capacidad de cambiar esas páginas frías a niveles de memoria más lentos. En particular, los servidores modernos y futuros con memoria persistente Optane DC o memoria habilitada para CXL, etc. Por lo tanto, las páginas aún son accesibles si es necesario, pero no ocupan la preciosa DRAM del sistema si no se están utilizando y para evitar simplemente eliminarlas o intercambiarlas. al disco.
Sin embargo, como se señaló en ese artículo de septiembre, no había un medio de promover páginas de nuevo en DRAM cuando hay capacidad disponible o las páginas se calientan. Facebook (ahora Meta) ha estado trabajando en el manejo de esa promoción y la semana pasada envió sus últimos parches.
La ubicación de página transparente para la memoria por niveles proporciona ese soporte para aprovechar AutoNUMA y promover páginas desde nodos de nivel lento a nodos de nivel superior.
De la serie de parches:
Probamos este conjunto de parches en sistemas con niveles de DRAM y PMEM habilitados para CXL. Descubrimos que este conjunto de parches puede traer páginas más calientes al nodo superior mientras mueve las páginas más frías a los nodos de nivel lento para una buena variedad de cargas de trabajo de metaproducción con tráfico en vivo. Como resultado, los nodos superiores ofrecen más páginas activas y el rendimiento de la aplicación mejora.
Con la política de ubicación de página predeterminada, los cachés de archivos llenan el nodo superior y los anónimos quedan atrapados en el nodo más lento. Solo el 14% del total de anones reside en el nodo superior. El ancho de banda de lectura remota de NUMA es del 80%. La regresión del rendimiento es del 18% en comparación con toda la memoria que se sirve desde el nodo superior.
Este conjunto de parches trae el 80% de los anones al nodo superior. Los anones en la memoria más lenta son en su mayoría anones fríos. Como el nodo superior no puede alojar toda la memoria activa, algunos archivos activos aún permanecen en el nodo más lento. Sin embargo, el ancho de banda de lectura remota de NUMA se reduce del 80% al 40%. Con este conjunto de parches, la regresión del rendimiento es solo del 5% en comparación con la línea de base del nodo superior que sirve a todo el conjunto de trabajo.
Con los servidores de memoria en niveles para volverse más frecuentes con CXL, es genial que este manejo de la memoria en niveles se esté resolviendo ahora y pronto debería abrirse camino hacia el kernel de la línea principal.
Fuente: phoronix | somoslibres