Todos os produtos
Search
Central de documentação

Container Service for Kubernetes:Enable GPU monitoring for a cluster

Última atualização: Jun 27, 2026

O monitoramento de GPU, baseado no NVIDIA Data Center GPU Manager (DCGM), oferece visibilidade sobre a utilização da GPU, a integridade e o desempenho das cargas de trabalho em todo o cluster. Use as métricas de GPU para diagnosticar problemas, otimizar a alocação de recursos e subsidiar o planejamento de capacidade.

Como funciona

O DCGM é a ferramenta da NVIDIA para gerenciar GPUs em clusters de grande escala. Um sistema de monitoramento baseado no DCGM fornece:

  • Monitoramento do comportamento da GPU

  • Gerenciamento da configuração da GPU

  • Gerenciamento de políticas da GPU

  • Diagnóstico de integridade da GPU

  • Estatísticas no nível da GPU e da thread

  • Configuração e monitoramento do NVSwitch

Pré-requisitos

Antes de começar, verifique se você tem:

Limitações

  • O driver NVIDIA em cada nó deve ser da versão 418.87.01 ou posterior. Acesse um nó de GPU e execute nvidia-smi para verificar a versão do driver.

  • As Profiling Metrics exigem o driver NVIDIA versão 450.80.02 ou posterior. Para mais detalhes, consulte Feature Overview.

  • Não há suporte para monitoramento de NVIDIA Multi-Instance GPU (MIG).

Faturamento

As métricas de monitoramento de GPU são coletadas por meio do Alibaba Cloud Managed Service for Prometheus. Para detalhes de preços, consulte Visão geral do faturamento.

Etapa 1: Ativar o monitoramento do Prometheus

Importante

O componente ack-arms-prometheus deve estar na versão 1.1.7 ou posterior. Verifique a versão do componente e atualize-o se necessário.

Opção A: Ativar o monitoramento para um cluster existente

  1. (Opcional) Para um cluster dedicado ACK, conceda primeiro a autorização para políticas de monitoramento ao cluster.

  2. Na página Clusters, clique em no nome do cluster desejado. No painel de navegação à esquerda, escolha Operations > Prometheus Monitoring.

  3. Na página Prometheus Monitoring, selecione uma versão de monitoramento de contêiner e clique em Install.

Após ativar o monitoramento, as métricas básicas padrão são coletadas automaticamente. Para coletar métricas personalizadas, consulte Coletar métricas personalizadas. Vários painéis predefinidos também estão disponíveis nesta página, incluindo Cluster Overview, Node Monitoring, Application Monitoring, Network Monitoring e Storage Monitoring.

Opção B: Ativar o monitoramento durante a criação do cluster

ACK managed cluster Pro Edition:

Na página Component Configuration, na seção Container Monitoring, selecione Container Cluster Monitoring Pro Edition ou Container Cluster Monitoring Basic Edition. Para mais detalhes, consulte Criar um cluster gerenciado ACK.

Nota: O Auto Mode para hospedagem inteligente ativa o Container Monitoring Basic Edition por padrão.

ACK managed cluster Basic Edition, clusters ACS e clusters ACK Serverless:

Na página Component Configurations do assistente de criação de cluster, na seção Monitor containers, selecione Enable Managed Service for Prometheus para instalar o Container Monitoring Basic Edition.

Após ativar o monitoramento, as métricas básicas padrão são coletadas automaticamente. Para coletar métricas personalizadas, consulte Coletar métricas personalizadas. Na página de detalhes do cluster, escolha Operations > Prometheus Monitoring para visualizar painéis predefinidos como Cluster Overview, Node Monitoring, Application Monitoring, Network Monitoring e Storage Monitoring.

Para obter mais informações sobre como ativar o monitoramento do Prometheus, consulte Ativar o monitoramento do Prometheus para ACK.

Se você utiliza um serviço Prometheus open source autogerenciado e precisa de monitoramento de GPU, instale o componente ack-gpu-exporter.

Etapa 2: Verificar os componentes de monitoramento de GPU

Depois de ativar o monitoramento do Prometheus, verifique se os pods do exportador de GPU estão em execução:

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

Cada nó de GPU no cluster deve ter um pod ack-prometheus-gpu-exporter em execução. Esse DaemonSet coleta métricas do DCGM dos seus nós de GPU.

Etapa 3: Implantar uma aplicação de exemplo

Para gerar métricas de GPU, implante uma carga de trabalho de exemplo em um nó de GPU.

  1. Crie um arquivo chamado tensorflow-benchmark.yaml com o seguinte conteúdo:

    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. Implante a aplicação:

    kubectl apply -f tensorflow-benchmark.yaml
  3. Verifique o status do pod:

    kubectl get pod

    Saída esperada:

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

Etapa 4: Visualizar dados de monitoramento de GPU

  1. Acesse o console do ACK. No painel de navegação à esquerda, clique em Clusters.

  2. Na página Clusters, clique em no nome do cluster desejado. No painel de navegação à esquerda, escolha Operations > Prometheus Monitoring.

  3. Clique em na aba GPU Monitoring e, em seguida, na aba GPUs-Pods. Os dados de monitoramento mostram em qual nó cada pod de GPU está em execução (por exemplo, cn-beijing.10.131.xx.xxx).

    GPU monitoring - Pods view

  4. Clique em na aba GPUs-Nodes e defina GPUNode para um nó específico (por exemplo, cn-beijing.10.131.xx.xxx) para visualizar informações detalhadas da GPU desse nó. Para descrições dos parâmetros, consulte Descrição do painel.

    GPU monitoring - Nodes view

Perguntas frequentes

Vazamento de memória do DCGM

O DaemonSet ack-prometheus-gpu-exporter inicia automaticamente quando você instala o Managed Service for Prometheus. Ocasionalmente, o DCGM não libera a memória corretamente durante a execução, o que faz com que o uso de memória aumente ao longo do tempo.

Uma configuração resources.limits está definida no pod do exportador para mitigar esse problema. Quando o limite de memória é atingido, o pod reinicia automaticamente. Isso geralmente ocorre cerca de uma vez por mês. Após a reinicialização, as métricas voltam a ser relatadas normalmente. O Grafana pode apresentar anomalias por alguns minutos (como um pico repentino na contagem de nós), mas a exibição se corrige sozinha.

Para mais informações, consulte The DCGM has a memory leak? no GitHub.

O ack-prometheus-gpu-exporter é encerrado por falta de memória

O ack-prometheus-gpu-exporter usa o DCGM no modo incorporado, o que consome uma grande quantidade de memória em nós com múltiplas GPUs e é propenso a vazamentos de memória. Se você executar vários processos de GPU em uma instância com múltiplas GPUs e alocar pouca memória para o exportador, o pod poderá ser encerrado por um evento de falta de memória (OOM).

Normalmente, o pod volta a relatar métricas após a reinicialização. Se os encerramentos por falta de memória forem frequentes, aumente os limits de memória do DaemonSet ack-prometheus-gpu-exporter no namespace arms-prom.

O ack-prometheus-gpu-exporter relata um erro

Se os logs do pod contiverem um erro semelhante ao seguinte:

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

Esse erro ocorre porque versões mais antigas do ack-prometheus-gpu-exporter não conseguem recuperar métricas de GPU quando não há tarefas em execução em determinadas placas de GPU.

Atualize o componente ack-arms-prometheus para a versão mais recente para resolver esse problema.