Todos los productos
Search
Centro de documentos

Container Service for Kubernetes:Enable GPU monitoring for a cluster

Última actualización: Sep 05, 2026

El monitoreo de GPU basado en NVIDIA Data Center GPU Manager (DCGM) le ofrece visibilidad sobre la utilización, el estado y el rendimiento de las cargas de trabajo de GPU en todo su clúster. Utilice las métricas de GPU para diagnosticar problemas, optimizar la asignación de recursos y planificar la capacidad.

Funcionamiento

DCGM es la herramienta de NVIDIA para gestionar GPU en clústeres a gran escala. Un sistema de monitoreo basado en DCGM proporciona:

  • Monitoreo del comportamiento de la GPU

  • Gestión de la configuración de GPU

  • Gestión de directivas de GPU

  • Diagnóstico del estado de la GPU

  • Estadísticas a nivel de GPU y de hilo

  • Configuración y monitoreo de NVSwitch

Requisitos previos

Antes de empezar, asegúrese de contar con lo siguiente:

Límites

  • El controlador de NVIDIA en cada nodo debe ser versión 418.87.01 o posterior. Inicie sesión en un nodo GPU y ejecute nvidia-smi para comprobar la versión del controlador.

  • Las Profiling Metrics requieren el controlador de NVIDIA versión 450.80.02 o posterior. Para más detalles, consulte Feature Overview.

  • No se admite el monitoreo de NVIDIA Multi-Instance GPU (MIG).

Facturación

Las métricas de monitoreo de GPU se recopilan mediante Alibaba Cloud Managed Service for Prometheus. Para obtener detalles sobre precios, consulte Billing overview.

Paso 1: Habilitar el monitoreo de Prometheus

Importante

El componente ack-arms-prometheus debe ser versión 1.1.7 o posterior. Check the component version y actualícelo si es necesario.

Opción A: Habilitar el monitoreo para un clúster existente

  1. (Opcional) Para un clúster dedicado ACK, primero otorgue la autorización para las directivas de monitoreo al clúster.

  2. En la página Clusters, haga clic en el nombre del clúster objetivo. En el panel de navegación izquierdo, seleccione Operations > Prometheus Monitoring.

  3. En la página Prometheus Monitoring, seleccione una versión de monitoreo de contenedores y haga clic en Install.

Una vez habilitado el monitoreo, las métricas básicas predeterminadas se recopilan automáticamente. Para recopilar métricas personalizadas, consulte Recopilación de métricas personalizadas. En esta página también hay varios paneles preconfigurados disponibles, incluidos Cluster Overview, Node Monitoring, Application Monitoring, Network Monitoring y Storage Monitoring.

Opción B: Habilitar el monitoreo al crear un clúster

Clúster administrado ACK Pro Edition:

En la página Component Configuration, dentro de la sección Container Monitoring, seleccione ACK Cluster Monitoring Pro Edition o ACK Cluster Monitoring Basic Edition. Para más detalles, consulte Creación de un clúster administrado ACK.

Nota: El Auto Mode para smart hosting habilita Container Monitoring Basic Edition de forma predeterminada.

Clúster administrado ACK Basic Edition, clústeres ACS y clústeres ACK Serverless:

En la página Component Configurations del asistente de creación de clústeres, dentro de la sección Monitor containers, seleccione Enable Managed Service for Prometheus para instalar Container Monitoring Basic Edition.

Una vez habilitado el monitoreo, las métricas básicas predeterminadas se recopilan automáticamente. Para recopilar métricas personalizadas, consulte Recopilación de métricas personalizadas. En la página de detalles del clúster, seleccione Operations > Prometheus Monitoring para ver los paneles preconfigurados como Cluster Overview, Node Monitoring, Application Monitoring, Network Monitoring y Storage Monitoring.

Para obtener más información sobre cómo habilitar el monitoreo de Prometheus, consulte Enable Prometheus monitoring for ACK.

Si utiliza un servicio de Prometheus de código abierto autogestionado y necesita monitoreo de GPU, instale el componente ack-gpu-exporter.

Paso 2: Comprobar los componentes de monitoreo de GPU

Después de habilitar el monitoreo de Prometheus, compruebe que los pods del exportador de GPU se estén ejecutando:

kubectl get pods -n arms-prom -l k8s-app=ack-prometheus-gpu-exporter

Cada nodo GPU del clúster debe tener un pod ack-prometheus-gpu-exporter en ejecución. Este DaemonSet recopila las métricas de DCGM de sus nodos GPU.

Paso 3: Desplegar una aplicación de ejemplo

Para generar métricas de GPU, despliegue una carga de trabajo de ejemplo en un nodo GPU.

  1. Cree un archivo llamado tensorflow-benchmark.yaml con el siguiente contenido:

    apiVersion: batch/v1
    kind: Job
    metadata:
      name: tensorflow-benchmark
    spec:
      parallelism: 1
      template:
        metadata:
          labels:
            app: tensorflow-benchmark
        spec:
          containers:
          - name: tensorflow-benchmark
            image: registry.cn-beijing.aliyuncs.com/ai-samples/gpushare-sample:benchmark-tensorflow-2.2.3
            command:
            - bash
            - run.sh
            - --num_batches=50000
            - --batch_size=8
            resources:
              limits:
                nvidia.com/gpu: 1 # Request one GPU.
            workingDir: /root
          restartPolicy: Never
  2. Despliegue la aplicación:

    kubectl apply -f tensorflow-benchmark.yaml
  3. Compruebe el estado del pod:

    kubectl get pod

    Salida esperada:

    NAME                         READY   STATUS    RESTARTS   AGE
    tensorflow-benchmark-k***    1/1     Running   0          114s

Paso 4: Consultar los datos de monitoreo de GPU

  1. Inicie sesión en la ACK console. En el panel de navegación izquierdo, haga clic en Clusters.

  2. En la página Clusters, haga clic en el nombre del clúster objetivo. En el panel de navegación izquierdo, seleccione Operations > Prometheus Monitoring.

  3. Haga clic en la pestaña GPU Monitoring y luego en la pestaña GPUs - Pods. Los datos de monitoreo muestran en qué nodo se está ejecutando cada pod de GPU (por ejemplo, cn-beijing.10.131.xx.xxx).

    La tabla GPU Pod Details muestra los detalles de monitoreo del Pod tensorflow-benchmark-c2mjs (Namespace: default): Allocated Mode es exclusive, Used GPU Memory es 836.00 MiB, Allocated GPU Memory es 22.49 GiB, y SM Utilization, GPU Memory Copy Utilization y Decode Utilization son todas 0%.

  4. Haga clic en la pestaña GPUs - Nodes y establezca GPUNode en un nodo específico (por ejemplo, cn-beijing.10.131.xx.xxx) para ver información detallada de la GPU de ese nodo. Para descripciones de los parámetros, consulte Dashboard description.

    Por ejemplo, se pueden mostrar las siguientes métricas para el nodo seleccionado:

    • GPU Mode: Exclusive

    • NVIDIA Driver Version: 535.161.07

    • Allocated GPUs: 1.00

    • GPU Utilization: 0.0%

    • Allocated GPU Memory: 100.0%

    • Used GPU Memory: 3.3%

    • Allocated Computing Power (nvidia0): 0.00%

    • The Last one XID Error (past 24 hours): 0

Preguntas frecuentes

Pérdida de memoria de DCGM

El DaemonSet ack-prometheus-gpu-exporter se inicia automáticamente cuando instala Managed Service for Prometheus. En ocasiones, DCGM no libera correctamente la memoria durante la ejecución, lo que provoca que el uso de memoria aumente con el tiempo.

Se ha configurado un ajuste resources.limits en el pod del exportador para mitigar esto. Cuando se alcanza el límite de memoria, el pod se reinicia automáticamente. Esto suele ocurrir aproximadamente una vez al mes. Tras el reinicio, las métricas se reportan con normalidad. Grafana puede mostrar anomalías durante unos minutos (por ejemplo, un aumento repentino en el recuento de nodos), pero la visualización se corrige por sí sola.

Para más información, consulte The DCGM has a memory leak? en GitHub.

ack-prometheus-gpu-exporter finaliza por un evento de falta de memoria

El componente ack-prometheus-gpu-exporter utiliza DCGM en modo integrado, lo cual consume una gran cantidad de memoria en nodos con múltiples GPU y es propenso a pérdidas de memoria. Si ejecuta varios procesos de GPU en una instancia con múltiples GPU y asigna muy poca memoria al exportador, el pod puede finalizar debido a un evento de falta de memoria (OOM).

Por lo general, el pod reanuda el reporte de métricas después de reiniciarse. Si las finalizaciones por falta de memoria ocurren con frecuencia, aumente los limits de memoria para el DaemonSet ack-prometheus-gpu-exporter en el namespace arms-prom.

ack-prometheus-gpu-exporter reporta un error

Si los registros del pod contienen un error similar al siguiente:

failed to get all process informations of gpu nvidia1,reason: failed to get gpu utilizations for all processes on device 1,reason: Not Found

Este error ocurre porque las versiones anteriores de ack-prometheus-gpu-exporter no pueden recuperar métricas de GPU cuando no hay tareas ejecutándose en ciertas tarjetas GPU.

Actualice el componente ack-arms-prometheus a la última versión para resolver este problema.