
En un servidor HPE DL380 G10 con 2 Xeon(R) Gold 6246R (32 núcleos físicos, 64 log. con HT), en el BIOS, usando esta configuración:
Configuración del sistema > BIOS/Configuración de plataforma (RBSU) > Opciones de rendimiento > Opciones avanzadas de ajuste de rendimiento > Optimización del tamaño del grupo NUMA
Podemos elegir entre estas 2 opciones:
- agrupado— Optimiza los grupos a lo largo de los límites de NUMA, proporcionando un mejor rendimiento.
- Departamento- Permite que las aplicaciones que no están optimizadas para aprovechar procesadores que abarcan varios grupos utilicen procesadores más lógicos.
La opción "Agrupado" obligará a Windows a informar solo UN nodo NUMA PERO 2 grupos de procesadores, cada uno de 32 núcleos. La opción "Plana" del otro lado muestra 2 nodos NUMA y solo 1 grupo de procesadores con 64 núcleos lógicos.
Seguro que ya sé mucho sobre NUMA y los grupos de procesadores, por lo que realmente no estoy pidiendo recomendaciones sobre la mejor configuración para mi caso de uso. En cambio, la pregunta es: ¿Por qué tendría sentido que Windows decidiera utilizar 2 grupos de procesadores cuando solo hay un nodo NUMA y viceversa? Además, nunca encontré ninguna documentación que indique que Windows (Server 2019) divide 64 núcleos en 2 grupos. ¿Es este el comportamiento esperado?
Respuesta1
El artículo que ha encontrado data del año 2008. En aquella época Windows se enfrentaba a ordenadores NUMA con más de 64 procesadores, mientras que su implementación de grupos de procesadores se limitaba a 64. La solución entonces fue crear automáticamente más de uno de esos grupos de procesadores. no más de 64 procesadores cada uno.
A finales de 2014 se introdujo una solución más flexible. La primera referencia que he encontrado es una Nota de asesoramiento de HP con respecto a los servidores HP Gen9 y que datan del 24 de abril de 2015:
En la revisión 1.30 (24/12/2014) y versiones posteriores de las ROM del sistema para servidores Gen9, senueva utilidad de configuración basada en ROM, "Optimización del tamaño del grupo NUMA"Se ha agregado que permite al usuario cambiar el comportamiento de los procesadores de informes al sistema operativo. Esta opción permitirá que el sistema operativo coloque todos los procesadores lógicos en un solo grupo si hay 64 procesadores lógicos o menos ("Plano").
La opción En clúster crea un grupo de procesadores para los núcleos de cada CPU. La opción Plana está destinada a permitir que las aplicaciones utilicen todos los núcleos de la computadora, ya que en Windows, de forma predeterminada, una aplicación está limitada a un solo grupo y, por lo tanto, verá y usará solo su grupo.
Respecto a tus preguntas:
¿Por qué tendría sentido que Windows decidiera utilizar 2 grupos de procesadores cuando solo hay un nodo NUMA y viceversa?
Esto lo dicta la opción Agrupado, que tiene sentido que una aplicación y todos sus procesos y subprocesos los ejecuten todos en la memoria cercana para mejorar el rendimiento.
Si una aplicación necesita en su caso más de 32 núcleos, debe utilizar la opción Plana para que todos los núcleos estén disponibles.
Nunca encontré ninguna documentación que indique que Windows (Server 2019) divide 64 núcleos en 2 grupos. ¿Es este el comportamiento esperado?
Sí, este es el comportamiento esperado. No está muy bien documentado, pero hay referencias para este comportamiento, por ejemplo Rendimiento de intercambio: configuración del BIOS HP NUMA.