Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
La ubicación y la optimización eficaces de las cargas de trabajo de GPU a menudo requieren visibilidad sobre el uso y el rendimiento de los recursos. Las métricas de GPU administradas en AKS (versión preliminar) proporcionan recopilación automatizada y exposición de datos de uso, memoria y rendimiento de GPU en grupos de nodos habilitados para GPU nvidia. Esto permite a los administradores de plataforma optimizar los recursos del clúster y los desarrolladores para optimizar y depurar cargas de trabajo con instrumentación manual limitada.
En este artículo, obtendrá información sobre las métricas de GPU recopiladas por el exportador de NVIDIA Data Center GPU Manager (DCGM) con un grupo de nodos habilitado para GPU totalmente administrado (versión preliminar) en Azure Kubernetes Service (AKS).
Importante
Las características en versión preliminar de AKS están disponibles a elección del usuario y en régimen de autoservicio. Las versiones preliminares se proporcionan "tal cual" y "como están disponibles", y están excluidas de los Acuerdos de nivel de servicio y garantía limitada. Las versiones preliminares de AKS cuentan con soporte parcial por parte del servicio al cliente en la medida de lo posible. Por lo tanto, estas características no están diseñadas para su uso en producción. Para más información, consulte los siguientes artículos de soporte:
Prerrequisitos
- Un clúster de AKS con un grupo de nodos habilitado para GPU totalmente administrado (versión preliminar) y garantizar que las GPU sean susceptibles de ser programadas.
- Una carga de trabajo de GPU de ejemplo implementada en el grupo de nodos.
- Azure Managed Prometheus habilitado en el clúster de AKS.
Comprobación de que los componentes de GPU administrados están instalados
Después de crear el grupo de nodos de GPU de NVIDIA administrado (versión preliminar) siguiendo estas instrucciones, confirme que los componentes de software de GPU se instalaron con el comando az aks nodepool show :
az aks nodepool show \
--resource-group <resource-group-name> \
--cluster-name <cluster-name> \
--name <node-pool-name> \
La salida debe incluir los siguientes valores:
...
"gpuProfile": {
"driver": "Install",
"driverType": "",
"nvidia": {
"managementMode": "Managed",
...
...
}
},
...
...
Personalización de la extracción de métricas de GPU en Azure Managed Prometheus
Cree y aplique un ConfigMap que habilite un perfil de recopilación para las métricas de GPU NVIDIA desde dcgm-exporter en el agente de Azure Monitor del kube-system espacio de nombres, similar al siguiente:
cat <<EOF | kubectl create -f -
kind: ConfigMap
apiVersion: v1
data:
schema-version:
v1
config-version:
ver1
default-scrape-settings-enabled: |-
dcgmexporter = true
metadata:
name: ama-metrics-settings-configmap
namespace: kube-system
EOF
Nota:
Una vez aplicado este ConfigMap en el clúster de AKS, todos los grupos de nodos de GPU NVIDIA existentes y nuevos añadidos al clúster se recopilan automáticamente.
Deshabilitar la extracción automática de métricas de GPU en Azure Managed Prometheus
Para deshabilitar la recopilación de métricas de NVIDIA DCGM por parte del agente de Prometheus administrado por Azure Monitor (AMA), edite el mismo ConfigMap. Las cargas de trabajo de GPU no se ven afectadas.
Ejecute el siguiente comando:
kubectl edit configmap ama-metrics-settings-configmap -n kube-system
Actualice la configuración dcgmexporter de true a false:
...
...
default-scrape-settings-enabled: |-
dcgmexporter = false
...
...
Las métricas dcGM de NVIDIA ya no aparecen en Azure Monitor ni en el Explorador de métricas.
Supervisión de las métricas de GPU en el portal de Azure
Después de crear un área de trabajo de Azure Monitor específicamente para el clúster de AKS, vaya al portal de Azure y abra Azure Monitor>Paneles con Grafana en su área de trabajo de Azure Monitor.
Utilizando la barra de búsqueda, filtre el panel de Grafana
Kubernetes | NVIDIA GPU DCGM Exportercon la etiquetaAzure-managed.Seleccione este panel y confirme que los grupos de nodos seleccionados
ClusteryPrometheus Datasourcecoinciden con los grupos de nodos habilitados para GPU. Ahora puede ver las métricas de GPU en tiempo real, como se muestra en la imagen siguiente:
Descripción de las métricas de GPU
Métricas de uso de GPU
Las métricas de uso de GPU muestran el porcentaje de tiempo que los núcleos de la GPU están procesando activamente el trabajo. Los valores altos indican que la GPU se usa en gran medida, lo que suele ser deseable para cargas de trabajo como el entrenamiento o el procesamiento de datos. La interpretación de esta métrica debe tener en cuenta el tipo de carga de trabajo: el entrenamiento de IA normalmente mantiene la utilización alta, mientras que la inferencia puede tener una utilización intermitente debido al tráfico irregular.
Uso de memoria: muestra el porcentaje de memoria de GPU en uso. Un uso elevado de memoria sin un uso elevado de GPU puede indicar cargas de trabajo enlazadas a memoria en las que la GPU espera las transferencias de memoria. Un uso bajo de memoria con un uso bajo puede sugerir que la carga de trabajo es demasiado pequeña para aprovechar completamente la GPU.
Sm (multiprocesador de streaming): mide la eficiencia con la que se usan los núcleos de la GPU. Una baja eficiencia de SM indica que los núcleos están inactivos o infrautilizados debido al desequilibrio de la carga de trabajo o al diseño de kernel poco óptimo. La alta eficiencia es ideal para aplicaciones de proceso intensivo.
Métricas de memoria
Uso del ancho de banda de memoria: refleja la cantidad de ancho de banda de memoria teórica que se consume. Un uso elevado del ancho de banda con un uso de proceso bajo puede indicar una carga de trabajo enlazada a memoria. Por el contrario, un uso elevado en el ancho de banda de proceso y memoria sugiere una carga de trabajo bien equilibrada.
Errores de memoria: realiza un seguimiento de los errores de código de corrección de errores (ECC) si está habilitado. Un gran número de errores puede indicar problemas térmicos o degradación del hardware y debe supervisarse para lograr confiabilidad.
Métricas de temperatura y energía
Temperatura de GPU: indica la temperatura de funcionamiento de la GPU. Las temperaturas altas sostenidas pueden desencadenar el estrangulamiento térmico, reduciendo el rendimiento. La interpretación ideal de esta métrica implica observar la temperatura en relación con los límites térmicos y la capacidad de refrigeración de la GPU.
Uso de energía: muestra el consumo instantáneo de energía. Comparar el uso de energía con la TDP (potencia de diseño térmico) ayuda a comprender si la GPU está siendo llevada a sus límites. Los descensos repentinos en la potencia pueden indicar limitación o infrautilización.
Relojes y métricas de frecuencia
Reloj de GPU: la frecuencia de funcionamiento real de la GPU. En combinación con el uso, esto ayuda a determinar si la GPU está limitando o presentando déficit de rendimiento con respecto a su potencial.
Reloj de memoria: frecuencia de funcionamiento de la memoria gpu. Las cargas de trabajo enlazadas a memoria pueden beneficiarse de mayores frecuencias de memoria; una falta de coincidencia entre la memoria y la utilización de procesamiento puede resaltar cuellos de botella.
Métricas de PCIe y NVLink
Ancho de banda PCIe: mide el rendimiento a través del bus PCIe. Un uso bajo con cargas de trabajo pesadas puede sugerir que la comunicación entre CPU y GPU no es un cuello de botella. Un uso elevado podría apuntar a las limitaciones de transferencia de datos que afectan al rendimiento.
Ancho de banda nvLink: esta métrica es similar al ancho de banda PCIe, pero específico de las interconexiones NVLink y relevantes en los sistemas de varias GPU para la comunicación entre GPU. El uso elevado de NVLink con un uso bajo de SM puede indicar retrasos de sincronización o transferencia de datos.
Métricas de error y confiabilidad
Páginas retiradas y errores XID: seguimiento de errores de memoria de GPU y errores críticos. Las repeticiones frecuentes indican posibles errores de hardware y requieren atención para cargas de trabajo de larga duración.
Guía de interpretación
Las métricas DCGM deben interpretarse en el contexto del tipo de carga de trabajo en AKS. Una carga de trabajo computacionalmente muy intensiva debería mostrar idealmente un uso elevado de GPU y SM, un uso elevado del ancho de banda de memoria, temperaturas estables por debajo de los umbrales de limitación y el consumo de energía cerca, pero por debajo del TDP.
Las cargas de trabajo enlazadas a memoria pueden mostrar un uso elevado de memoria y ancho de banda, pero un menor uso de proceso. Anomalías como bajo uso con alta temperatura o consumo de energía a menudo indican limitación, planificación ineficiente o cuellos de botella a nivel del sistema.
La supervisión de las tendencias a lo largo del tiempo en lugar de las instantáneas únicas es fundamental. Las caídas repentinas en el uso o los picos de errores suelen revelar problemas subyacentes antes de que afecten a las cargas de trabajo de producción. La comparación de métricas entre varias GPU también puede ayudar a identificar valores atípicos o dispositivos de comportamiento erróneo en un grupo de nodos. Comprender estas métricas en combinación, en lugar de aislamiento, proporciona la información más clara sobre la eficiencia de GPU y el rendimiento de la carga de trabajo.
Métricas comunes de GPU
Las siguientes métricas de NVIDIA DCGM se evalúan normalmente para el rendimiento de los grupos de nodos de GPU en Kubernetes:
| Nombre de la métrica de GPU | Meaning | Intervalo o indicador típicos | Sugerencia de uso |
|---|---|---|---|
DCGM_FI_DEV_GPU_UTIL |
Uso de GPU (% tiempo que los núcleos de GPU están activos) | 0–100% (mayor es mejor) | Supervisar por nodo y por pod; los valores bajos podrían indicar cuellos de botella de E/S o CPU. |
DCGM_FI_DEV_SM_UTIL |
Eficiencia de multiprocesador de streaming (% núcleos activos) | 0–100% | Los valores bajos con un uso elevado de memoria indican una carga de trabajo enlazada a memoria |
DCGM_FI_DEV_FB_USED |
Memoria framebuffer usada (bytes) | De 0 a la memoria total | Uso de límites de memoria de GPU de pod y seguimiento del uso de memoria por pod |
DCGM_FI_DEV_FB_FREE |
Memoria de GPU libre (bytes) | De 0 a la memoria total | Útil para programar y evitar errores de OOM |
DCGM_FI_DEV_MEMORY_UTIL |
Uso de memoria (%) | 0–100% | Combinación con el uso de GPU/SM para determinar las cargas de trabajo enlazadas a memoria |
DCGM_FI_DEV_MEMORY_CLOCK |
Frecuencia del reloj de memoria actual (MHz) | 0 al reloj de memoria máximo | Los valores bajos en un uso elevado de memoria pueden indicar limitación |
DCGM_FI_DEV_POWER_USAGE |
Uso instantáneo de energía (Watts) | De 0 a TDP | Las caídas durante un uso elevado pueden indicar limitación |
DCGM_FI_DEV_TEMPERATURE |
Temperatura de GPU (°C) | ~30–85°C normal | Alerta sobre temperaturas altas sostenidas |
DCGM_FI_DEV_NVLINK_RX |
Uso del ancho de banda de recepción de NVLink (%) | 0–100% | Cuello de botella de sincronización de varias GPU si es alto con un uso bajo de SM |
DCGM_FI_DEV_XID_ERRORS |
Errores críticos de GPU notificados por el controlador | Normalmente 0 | Se requiere una investigación inmediata; puede no tolerar el nodo en Kubernetes |
Para obtener información sobre el conjunto completo de métricas de GPU, visite la documentación original de NVIDIA DCGM.
Pasos siguientes
- Más información sobre los procedimientos recomendados de observabilidad de GPU en AKS
- Realiza un seguimiento del estado de salud del nodo de GPU con el Detector de problemas de nodo (NPD)
- Creación de grupos de nodos de GPU de varias instancias en el clúster de AKS