Para supervisar el uso, el rendimiento y el estado de la GPU, configura GKE para que envíe métricas del administrador de GPU del centro de datos de NVIDIA (DCGM) a Cloud Monitoring.
Cuando habilitas las métricas de DCGM, GKE instala la herramienta DCGM-Exporter, instala los controladores de GPU administrados por Google y, luego, implementa un recurso ClusterPodMonitoring para enviar métricas a Google Cloud Managed Service para Prometheus.
También puedes configurar un DCGM autoadministrado si deseas personalizar el conjunto de métricas de DCGM o si tienes un clúster que no cumple con los requisitos de las métricas de DCGM administradas.
¿Qué es el DCGM?
El administrador de GPU del centro de datos de NVIDIA (DCGM) es un conjunto de herramientas de NVIDIA que te permiten administrar y supervisar las GPUs de NVIDIA. El DCGM proporciona una vista integral del uso, el rendimiento y el estado de la GPU.
- Las métricas de uso de GPU son una indicación de lo ocupada está la GPU supervisada y si se usa de manera eficaz para procesar tareas. Esto incluye métricas para el procesamiento principal, la memoria, las E/S y el uso de energía.
- Las métricas de rendimiento de la GPU se refieren a la eficacia y eficiencia con las que una GPU puede realizar una tarea de procesamiento. Esto incluye métricas para la velocidad de reloj y la temperatura.
- Las métricas de E/S de la GPU, como NVLink y PCIe, miden el ancho de banda de transferencia de datos.
Antes de comenzar
Antes de comenzar, asegúrate de haber realizado las siguientes tareas:
- Habilita la API de Google Kubernetes Engine. Habilitar la API de Google Kubernetes Engine
- Si deseas usar Google Cloud CLI para esta tarea, instala y, luego, inicializa gcloud CLI. Si ya instalaste gcloud CLI, ejecuta
gcloud components update
para obtener la versión más reciente.
Requisitos para las métricas del administrador de GPU del centro de datos de NVIDIA (DCGM)
Para recopilar métricas del administrador de GPU del centro de datos de NVIDIA (DCGM), tu clúster de GKE debe cumplir con los siguientes requisitos:
- Versión de 1.30.1-gke.1204000 o posterior
- La recopilación de métricas del sistema debe estar habilitada.
- Se debe habilitar la recopilación administrada de Google Cloud Managed Service para Prometheus.
- Los grupos de nodos deben ejecutarse en controladores de GPU administrados por GKE. Esto significa que debes crear tus grupos de nodos con
default
olatest
para--gpu-driver-version
. - Las métricas de generación de perfiles solo se recopilan para las GPU NVIDIA H100 de 80 GB.
Configura la recopilación de métricas de DCGM
Puedes habilitar GKE para que recopile métricas de DCGM para un clúster existente con la consola de Google Cloud, gcloud CLI o Terraform.
Console
Crea un grupo de nodos de GPU.
Debes usar Predeterminado o Más reciente para la instalación del controlador de GPU.
Ve a la página de Google Kubernetes Engine en la consola de Google Cloud.
Haz clic en el nombre de tu clúster.
Junto a Cloud Monitoring, haz clic en edit.
Selecciona
SYSTEM
yDCGM
.Haz clic en Guardar.
gcloud
Crea un grupo de nodos de GPU.
Debes usar
default
olatest
para--gpu-driver-version
.Actualiza tu clúster:
gcloud container clusters update CLUSTER_NAME \ --location=COMPUTE_LOCATION \ --enable-managed-prometheus \ --monitoring=SYSTEM,DCGM
Reemplaza lo siguiente:
CLUSTER_NAME
: es el nombre del clúster existente.COMPUTE_LOCATION
: la ubicación de Compute Engine del clúster.
Terraform
Para configurar la colección de métricas de DCGM mediante Terraform, consulta el bloque monitoring_config
en el registro de Terraform para google_container_cluster
.
Para obtener información general sobre el uso de Google Cloud con Terraform, consulta Terraform con Google Cloud.
Usa las métricas de DCGM
Puedes ver las métricas de DCGM con los paneles de la console de Google Cloud o directamente en las páginas de descripción general y detalles del clúster. Para obtener información, consulta Visualiza métricas de observabilidad.
Puedes ver las métricas con el panel de métricas de DCGM de Grafana. Para obtener más información, consulta Consulta con Grafana. Si encuentras algún error, consulta Compatibilidad de la API.
Precios
Las métricas de DCGM usan Google Cloud Managed Service para Prometheus para cargar métricas en Cloud Monitoring. Cloud Monitoring cobra por la transferencia de estas métricas según la cantidad de muestras transferidas. Sin embargo, estas métricas son sin costo para los clústeres registrados que pertenecen a un proyecto que tiene habilitada la edición GKE Enterprise.
Para obtener más información, consulta los Precios de Cloud Monitoring.
Cuota
Las métricas de DCGM consumen la cuota de solicitudes de transferencia de series temporales por minuto de la API de Cloud Monitoring. Antes de habilitar los paquetes de métricas, verifica tu uso máximo reciente de esa cuota. Si tienes muchos clústeres en el mismo proyecto o ya te acercaste al límite de esa cuota, puedes solicitar un aumento del límite de cuota antes de habilitar cualquiera de los paquetes de observabilidad.
Métricas de DCGM
Los nombres de las métricas de Cloud Monitoring en esta tabla deben tener el prefijo prometheus.googleapis.com/
. Este prefijo se omitió en las entradas de la tabla.
Además de las etiquetas en el recurso supervisado prometheus_target
, todas las métricas de DCGM recopiladas en GKE tienen las siguientes etiquetas adjuntas:
Etiquetas de GPU:
UUID
: El UUID del dispositivo de la GPUdevice
: Es el nombre del dispositivo de GPU.-
gpu
: Es el número de índice como un número entero del dispositivo de GPU en el nodo. Por ejemplo, si hay 8 GPUs adjuntas, este valor puede variar de0
a7
. modelName
: Es el nombre del modelo del dispositivo de GPU, comoNVIDIA L4
.
Etiquetas de Kubernetes:
container
: Es el nombre del contenedor de Kubernetes que usa el dispositivo de GPU.-
namespace
: Es el espacio de nombres de Kubernetes del Pod y el contenedor que usa el dispositivo de GPU. pod
: Es el pod de Kubernetes que usa el dispositivo de GPU.
Nombre de la métrica de PromQL Nombre de la métrica de Cloud Monitoring |
|
---|---|
Categoría, tipo, unidad
Recursos supervisados Versión de GKE requerida |
Descripción |
DCGM_FI_DEV_FB_FREE DCGM_FI_DEV_FB_FREE/gauge |
|
GAUGE , DOUBLE , 1
prometheus_target
1.30.1-gke.1204000 |
Es el búfer de tramas libre en MB. |
DCGM_FI_DEV_FB_TOTAL DCGM_FI_DEV_FB_TOTAL/gauge |
|
GAUGE , DOUBLE , 1
prometheus_target
1.30.1-gke.1204000 |
Es el búfer de trama total de la GPU en MB. |
DCGM_FI_DEV_FB_USED DCGM_FI_DEV_FB_USED/gauge |
|
GAUGE , DOUBLE , 1
prometheus_target
1.30.1-gke.1204000 |
Es el búfer de tramas utilizado en MB. |
DCGM_FI_DEV_GPU_TEMP DCGM_FI_DEV_GPU_TEMP/gauge |
|
GAUGE , DOUBLE , 1
prometheus_target
1.30.1-gke.1204000 |
Son las lecturas de temperatura actuales del dispositivo (en °C). |
DCGM_FI_DEV_GPU_UTIL DCGM_FI_DEV_GPU_UTIL/gauge |
|
GAUGE , DOUBLE , 1
prometheus_target
1.30.1-gke.1204000 |
Uso de la GPU (en %). |
DCGM_FI_DEV_MEM_COPY_UTIL DCGM_FI_DEV_MEM_COPY_UTIL/gauge |
|
GAUGE , DOUBLE , 1
prometheus_target
1.30.1-gke.1204000 |
Uso de memoria (en %) |
DCGM_FI_DEV_MEMORY_TEMP DCGM_FI_DEV_MEMORY_TEMP/gauge |
|
GAUGE , DOUBLE , 1
prometheus_target
1.30.1-gke.1204000 |
Es la temperatura de la memoria del dispositivo (en °C). |
DCGM_FI_DEV_POWER_USAGE DCGM_FI_DEV_POWER_USAGE/gauge |
|
GAUGE , DOUBLE , 1
prometheus_target
1.30.1-gke.1204000 |
Es el uso de energía del dispositivo (en vatios). |
DCGM_FI_DEV_SM_CLOCK DCGM_FI_DEV_SM_CLOCK/gauge |
|
GAUGE , DOUBLE , 1
prometheus_target
1.30.1-gke.1204000 |
Frecuencia de reloj de SM (en MHz). |
DCGM_FI_DEV_TOTAL_ENERGY_CONSUMPTION DCGM_FI_DEV_TOTAL_ENERGY_CONSUMPTION/counter |
|
CUMULATIVE , DOUBLE , 1
prometheus_target
1.30.1-gke.1204000 |
Es el consumo total de energía de la GPU en mJ desde la última vez que se volvió a cargar el controlador. |
DCGM_FI_PROF_DRAM_ACTIVE DCGM_FI_PROF_DRAM_ACTIVE/gauge |
|
GAUGE , DOUBLE , 1
prometheus_target
1.30.1-gke.1204000 |
Es la proporción de ciclos en los que la interfaz de memoria del dispositivo está activa enviando o recibiendo datos. |
DCGM_FI_PROF_GR_ENGINE_ACTIVE DCGM_FI_PROF_GR_ENGINE_ACTIVE/gauge |
|
GAUGE , DOUBLE , 1
prometheus_target
1.30.1-gke.1204000 |
Es la proporción de tiempo que el motor de gráficos está activo. |
DCGM_FI_PROF_NVLINK_RX_BYTES DCGM_FI_PROF_NVLINK_RX_BYTES/gauge |
|
GAUGE , DOUBLE , 1
prometheus_target
1.30.1-gke.1204000 |
Es la tasa de datos de rx (lectura) activos de NvLink en bytes, incluidos el encabezado y la carga útil. |
DCGM_FI_PROF_NVLINK_TX_BYTES DCGM_FI_PROF_NVLINK_TX_BYTES/gauge |
|
GAUGE , DOUBLE , 1
prometheus_target
1.30.1-gke.1204000 |
Es la tasa de datos de Tx (transmisión) activos de NvLink en bytes, incluidos el encabezado y la carga útil. |
DCGM_FI_PROF_PCIE_RX_BYTES DCGM_FI_PROF_PCIE_RX_BYTES/gauge |
|
GAUGE , DOUBLE , 1
prometheus_target
1.30.1-gke.1204000 |
Es la tasa de datos de recepción (lectura) PCIe activos en bytes, incluidos el encabezado y la carga útil. |
DCGM_FI_PROF_PCIE_TX_BYTES DCGM_FI_PROF_PCIE_TX_BYTES/gauge |
|
GAUGE , DOUBLE , 1
prometheus_target
1.30.1-gke.1204000 |
Es la tasa de datos de transmisión (Tx) PCIe activos en bytes, incluidos el encabezado y la carga útil. |
DCGM_FI_PROF_PIPE_FP16_ACTIVE DCGM_FI_PROF_PIPE_FP16_ACTIVE/gauge |
|
GAUGE , DOUBLE , 1
prometheus_target
1.30.1-gke.1204000 |
Es la proporción de ciclos en los que el canal de fp16 está activo. |
DCGM_FI_PROF_PIPE_FP32_ACTIVE DCGM_FI_PROF_PIPE_FP32_ACTIVE/gauge |
|
GAUGE , DOUBLE , 1
prometheus_target
1.30.1-gke.1204000 |
Es la proporción de ciclos en los que el colector de FP32 está activo. |
DCGM_FI_PROF_PIPE_FP64_ACTIVE DCGM_FI_PROF_PIPE_FP64_ACTIVE/gauge |
|
GAUGE , DOUBLE , 1
prometheus_target
1.30.1-gke.1204000 |
Es la proporción de ciclos en los que el canal de fp64 está activo. |
DCGM_FI_PROF_PIPE_TENSOR_ACTIVE DCGM_FI_PROF_PIPE_TENSOR_ACTIVE/gauge |
|
GAUGE , DOUBLE , 1
prometheus_target
1.30.1-gke.1204000 |
Es la proporción de ciclos en los que cualquier canalización de tensores está activa. |
DCGM_FI_PROF_SM_ACTIVE DCGM_FI_PROF_SM_ACTIVE/gauge |
|
GAUGE , DOUBLE , 1
prometheus_target
1.30.1-gke.1204000 |
Es la proporción de ciclos en los que un SM tiene al menos 1 warp asignado. |
¿Qué sigue?
- Obtén más información sobre cómo ver las métricas de observabilidad.