Recolha e veja métricas do DCGM

Pode monitorizar a utilização, o desempenho e o estado da GPU configurando o GKE para enviar métricas do NVIDIA Data Center GPU Manager (DCGM) para o Cloud Monitoring.

Quando ativa as métricas do DCGM, o GKE instala a ferramenta DCGM-Exporter, instala controladores de GPU geridos pela Google e implementa um recurso ClusterPodMonitoring para enviar métricas para o serviço gerido do Google Cloud para Prometheus. Para novos clusters do GKE criados com a versão 1.32.1-gke.1357000 ou posterior, o pacote de métricas do DCGM está ativado por predefinição. Para clusters que executam versões anteriores, pode ativar a recolha de métricas do DCGM através da Google Cloud consola, da CLI gcloud ou do Terraform.

Também pode configurar o DCGM autogerido se quiser personalizar o conjunto de métricas do DCGM ou se tiver um cluster que não cumpra os requisitos para métricas do DCGM geridas.

O que é o DCGM

O NVIDIA Data Center GPU Manager (DCGM) é um conjunto de ferramentas da NVIDIA que lhe permite gerir e monitorizar GPUs NVIDIA. O DCGM expõe várias estruturas de observabilidade e contadores através do que denomina fields. Cada campo tem um identificador simbólico e um número de campo. Pode encontrar uma lista completa dos mesmos em NVIDIA DCGM list of Field IDs.

Se ativar as métricas do DCGM no GKE, as métricas suportadas ficam automaticamente disponíveis no Cloud Monitoring. Essas métricas oferecem uma vista abrangente da utilização, do desempenho e do estado da GPU.

  • As métricas de utilização da GPU são uma indicação do nível de ocupação da GPU monitorizada e se está a ser utilizada de forma eficaz para tarefas de processamento. Isto inclui métricas para o processamento principal, a memória, a E/S e a utilização de energia.
  • As métricas de desempenho da GPU referem-se à eficácia e eficiência com que uma GPU pode realizar uma tarefa computacional. Isto inclui métricas para a velocidade do relógio e a temperatura.
  • As métricas de E/S da GPU, como NVlink e PCIe, medem a largura de banda de transferência de dados.

Antes de começar

Antes de começar, certifique-se de que realizou as seguintes tarefas:

  • Ative a API Google Kubernetes Engine.
  • Ative a API Google Kubernetes Engine
  • Se quiser usar a CLI gcloud para esta tarefa, instale-a e, em seguida, inicialize-a. Se instalou anteriormente a CLI gcloud, execute o comando gcloud components update para obter a versão mais recente. As versões anteriores da CLI gcloud podem não suportar a execução dos comandos neste documento.

Requisitos para métricas do NVIDIA Data Center GPU Manager (DCGM)

Para recolher métricas do NVIDIA Data Center GPU Manager (DCGM), o cluster do GKE tem de cumprir os seguintes requisitos:

Limitações

  • Se estiver a executar um pacote de métricas do NVIDIA Data Center GPU Manager (DCGM) implementado por si, tem de parar de o recolher antes de ativar as métricas do NVIDIA Data Center GPU Manager (DCGM) geridas. Caso contrário, pode acabar com métricas duplicadas ou incorretas.

  • As métricas do DCGM geridas, incluindo os respetivos manifestos subjacentes e imagens de contentores, destinam-se a funcionar apenas em clusters do GKE. Não use métricas DCGM geridas de forma autónoma nem as execute fora do GKE.

Configure a recolha de métricas do DCGM

Pode ativar o GKE para recolher métricas do DCGM para um cluster existente através da consola, da CLI gcloud ou do Terraform. Google Cloud

Consola

  1. Crie um node pool de GPU.

    Tem de usar a opção Predefinição ou Mais recente para a instalação do controlador da GPU.

  2. Aceda à página do Google Kubernetes Engine na Google Cloud consola.

    Aceda ao Google Kubernetes Engine

  3. Clique no nome do cluster.

  4. Junto a Cloud Monitoring, clique em .

  5. Selecione SYSTEM e DCGM.

  6. Clique em Guardar.

gcloud

  1. Crie um node pool de GPU.

    Tem de usar default ou latest para --gpu-driver-version.

  2. Atualize o cluster:

    gcloud container clusters update CLUSTER_NAME \
        --location=COMPUTE_LOCATION \
        --enable-managed-prometheus \
        --monitoring=SYSTEM,DCGM
    

    Substitua o seguinte:

Terraform

Para configurar a recolha de métricas do DCGM através do Terraform, consulte o bloco monitoring_config no registo do Terraform para google_container_cluster. Para informações gerais sobre a utilização do Google Cloud com o Terraform, consulte Terraform com Google Cloud.

Use métricas do DCGM

Pode ver as métricas do DCGM através dos painéis de controlo na Google Cloud consola ou diretamente nas páginas de vista geral do cluster e detalhes do cluster. Para mais informações, consulte o artigo Veja métricas de observabilidade.

Pode ver as métricas através do painel de controlo de métricas do DCGM do Grafana. Para mais informações, consulte o artigo Consultar com o Grafana. Se encontrar erros, consulte a secção Compatibilidade da API.

Preços

As métricas do DCGM usam o Google Cloud Managed Service for Prometheus para carregar métricas no Cloud Monitoring. Os custos do Cloud Monitoring para a ingestão destas métricas baseiam-se no número de amostras ingeridas.

Para mais informações, consulte os preços do Cloud Monitoring.

Quota

As métricas do DCGM consomem a quota de pedidos de carregamento de séries cronológicas por minuto da API Cloud Monitoring. Antes de ativar os pacotes de métricas, verifique a sua utilização máxima recente dessa quota. Se tiver muitos clusters no mesmo projeto ou já se estiver a aproximar desse limite de quota, pode pedir um aumento do limite de quota antes de ativar qualquer um dos pacotes de observabilidade.

Métricas do DCGM

Os nomes das métricas do Cloud Monitoring nesta tabela têm de ter o prefixo prometheus.googleapis.com/. Esse prefixo foi omitido das entradas na tabela.

Juntamente com as etiquetas no recurso monitorizado prometheus_target, todas as métricas DCGM recolhidas no GKE têm as seguintes etiquetas anexadas:

Etiquetas de GPU:

  • UUID: o UUID do dispositivo GPU
  • device: o nome do dispositivo GPU.
  • gpu: o número do índice como um número inteiro do dispositivo GPU no nó. Por exemplo, se estiverem anexadas 8 GPUs, este valor pode variar entre 0 e 7.
  • modelName: o nome do modelo do dispositivo GPU, como NVIDIA L4.

Etiquetas do Kubernetes:

  • container: o nome do contentor Kubernetes que usa o dispositivo GPU.
  • namespace: o namespace do Kubernetes do pod e do contentor que usam o dispositivo GPU.
  • pod: o pod do Kubernetes que usa o dispositivo GPU.
Nome da métrica PromQL
Nome da métrica do Cloud Monitoring
Kind, Type, Unit
Recursos monitorizados
Versão do GKE obrigatória
Descrição
DCGM_FI_DEV_FB_FREE
DCGM_FI_DEV_FB_FREE/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
Memória intermédia de fotogramas disponível em MB.
DCGM_FI_DEV_FB_TOTAL
DCGM_FI_DEV_FB_TOTAL/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
Buffer de frames total da GPU em MB.
DCGM_FI_DEV_FB_USED
DCGM_FI_DEV_FB_USED/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
Memória intermédia de fotogramas usada em MB.
DCGM_FI_DEV_GPU_TEMP
DCGM_FI_DEV_GPU_TEMP/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
Leituras de temperatura atuais do dispositivo (em °C).
DCGM_FI_DEV_GPU_UTIL
DCGM_FI_DEV_GPU_UTIL/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
Utilização da GPU (em %).
DCGM_FI_DEV_MEM_COPY_UTIL
DCGM_FI_DEV_MEM_COPY_UTIL/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
Utilização da memória (em %).
DCGM_FI_DEV_MEMORY_TEMP
DCGM_FI_DEV_MEMORY_TEMP/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
Temperatura da memória do dispositivo (em °C).
DCGM_FI_DEV_POWER_USAGE
DCGM_FI_DEV_POWER_USAGE/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
Utilização de energia do dispositivo (em Watts).
DCGM_FI_DEV_SM_CLOCK
DCGM_FI_DEV_SM_CLOCK/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
Frequência do relógio SM (em MHz).
DCGM_FI_DEV_TOTAL_ENERGY_CONSUMPTION
DCGM_FI_DEV_TOTAL_ENERGY_CONSUMPTION/counter

CUMULATIVEDOUBLE1 prometheus_target
1.30.1-gke.1204000
Consumo energético total da GPU em mJ desde que o controlador foi recarregado pela última vez.
DCGM_FI_PROF_DRAM_ACTIVE
DCGM_FI_PROF_DRAM_ACTIVE/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
A proporção de ciclos em que a interface de memória do dispositivo está ativa a enviar ou receber dados.
DCGM_FI_PROF_GR_ENGINE_ACTIVE
DCGM_FI_PROF_GR_ENGINE_ACTIVE/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
A proporção do tempo em que o motor gráfico está ativo.
DCGM_FI_PROF_NVLINK_RX_BYTES
DCGM_FI_PROF_NVLINK_RX_BYTES/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
A taxa de dados de leitura (rx) NvLink ativos em bytes, incluindo o cabeçalho e o payload.
DCGM_FI_PROF_NVLINK_TX_BYTES
DCGM_FI_PROF_NVLINK_TX_BYTES/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
A taxa de dados de tx (transmissão) NvLink ativos em bytes, incluindo o cabeçalho e o payload.
DCGM_FI_PROF_PCIE_RX_BYTES
DCGM_FI_PROF_PCIE_RX_BYTES/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
A taxa de dados de leitura (rx) de PCIe ativos em bytes, incluindo o cabeçalho e a carga útil.
DCGM_FI_PROF_PCIE_TX_BYTES
DCGM_FI_PROF_PCIE_TX_BYTES/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
A taxa de dados de transmissão (tx) PCIe ativos em bytes, incluindo o cabeçalho e a carga útil.
DCGM_FI_PROF_PIPE_FP16_ACTIVE
DCGM_FI_PROF_PIPE_FP16_ACTIVE/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
A proporção de ciclos em que o pipeline fp16 está ativo.
DCGM_FI_PROF_PIPE_FP32_ACTIVE
DCGM_FI_PROF_PIPE_FP32_ACTIVE/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
A proporção de ciclos em que o pipeline fp32 está ativo.
DCGM_FI_PROF_PIPE_FP64_ACTIVE
DCGM_FI_PROF_PIPE_FP64_ACTIVE/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
A proporção de ciclos em que o pipeline fp64 está ativo.
DCGM_FI_PROF_PIPE_TENSOR_ACTIVE
DCGM_FI_PROF_PIPE_TENSOR_ACTIVE/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
A proporção de ciclos em que qualquer tensor pipe está ativo.
DCGM_FI_PROF_SM_ACTIVE
DCGM_FI_PROF_SM_ACTIVE/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
A proporção de ciclos em que um SM tem, pelo menos, 1 warp atribuído.

Para ajudar a compreender como estas métricas podem ser usadas, agrupámo-las da seguinte forma:

Utilização de computação ou do núcleo

Estas métricas permitem-lhe identificar dispositivos pouco usados e ajustar a computação ou a atribuição de GPU para otimizar a utilização. A utilização baixa significa que pode estar a pagar mais capacidade da GPU do que o necessário. Estas métricas podem ajudar a poupar custos consolidando a computação em menos dispositivos.

DCGM_FI_DEV_GPU_UTIL

Esta métrica representa a fração de tempo em que a GPU esteve ativa.

Utilização esperada: oferece uma vista geral da utilização média da GPU. Esta métrica é semelhante a DCGM_FI_PROF_GR_ENGINE_ACTIVE, que pode ser uma métrica mais precisa para a utilização da GPU.

DCGM_FI_PROF_GR_ENGINE_ACTIVE

Esta métrica representa o nível de ocupação do motor de gráficos para cada intervalo de amostragem. O valor é derivado do número médio de ciclos ativos em comparação com o número máximo de ciclos disponíveis possíveis durante o intervalo de amostragem. Por exemplo, se, num intervalo de amostragem de um segundo, estiverem disponíveis 1000 ciclos e uma média de 324 ciclos estiverem realmente ativos (a trabalhar), o valor da métrica resultante seria 0,324. Isto pode ser interpretado aproximadamente como uma utilização de (0,324 x 100) 32,4%.

Utilização esperada: oferece uma vista geral da utilização média da GPU. Os valores de utilização consistentemente elevados representam que a GPU pode ser um gargalo que causa problemas de desempenho do sistema. Os valores de utilização consistentemente baixos indicam que a aplicação não está a usar totalmente a capacidade de processamento disponível.

DCGM_FI_PROF_PIPE_FP16_ACTIVE, DCGM_FI_PROF_PIPE_FP32_ACTIVE, DCGM_FI_PROF_PIPE_FP64_ACTIVE, DCGM_FI_PROF_PIPE_TENSOR_ACTIVE

Estas métricas representam a proporção de ciclos em que qualquer pipeline de GPU está ativo em relação aos ciclos decorridos sustentados máximos.

Utilização esperada: meça a eficácia com que os vários pipelines computacionais na GPU são usados.

DCGM_FI_PROF_SM_ACTIVE

Esta métrica representa a fração de tempo em que, pelo menos, um warp estava ativo num SM(Streaming Multiprocessor), com a média calculada em todos os SMs. Por exemplo, se a GPU tiver 80 SMs disponíveis e, durante o período de amostragem, 16 SMs estiverem a executar um warp, o valor sm_active resultante seria (16/80) 0,20, o que pode ser interpretado como 20% dos SMs disponíveis a executar um warp.

Utilização esperada: fornece uma medida de como o paralelismo da GPU é utilizado.

Utilização da memória

A principal utilização destas métricas é detetar quando os dispositivos GPU não têm memória suficiente para as aplicações. Essas aplicações podem beneficiar da atribuição de mais capacidade da GPU.

DCGM_FI_DEV_FB_FREE, DCGM_FI_DEV_FB_USED, DCGM_FI_DEV_FB_TOTAL

Estas métricas destinam-se à memória da frame buffer, que é a memória na GPU. As métricas indicam a memória livre e a memória usada, que perfazem o total. Além disso, a memória total disponível.

Utilização esperada: determine os padrões de utilização da memória da GPU. Isto permite-lhe correlacionar a utilização real de memória na GPU com a utilização esperada para determinar a eficiência de memória da respetiva aplicação.

DCGM_FI_DEV_MEM_COPY_UTIL

Esta métrica representa a fração de tempo ao longo do período de amostragem anterior durante o qual a memória global (do dispositivo) estava a ser lida ou escrita.

Utilização esperada: determinar os padrões de transferência de dados para e da memória da GPU. Os valores elevados desta métrica, combinados com valores baixos das métricas de utilização de computação, podem indicar que a transferência de memória é o gargalo nas aplicações em execução.

DCGM_FI_PROF_DRAM_ACTIVE

Esta métrica representa a proporção de ciclos em que a interface de memória da GPU está a enviar ou a receber dados. Isto inclui cargas e armazenamentos de threads em execução em SMs, bem como cópias de memória para e da memória da GPU. Os valores mais elevados indicam níveis mais elevados de tráfego de memória.

Utilização esperada: esta métrica é semelhante à métrica DCGM_FI_DEV_MEM_COPY_UTIL e pode ser mais precisa.

Utilização de I/O

As seguintes métricas fornecem estatísticas sobre a utilização da transmissão de dados entre a GPU e o anfitrião, ou entre vários dispositivos GPU. Uma forma de usar essas métricas é detetar quando uma aplicação sobrecarrega a interligação. Devido à variabilidade inerente de tal transmissão, pode valer a pena explorar dados de resolução mais elevada (por exemplo, uma distribuição) para dar uma imagem mais detalhada do comportamento da interligação.

DCGM_FI_PROF_NVLINK_RX_BYTES, DCGM_FI_PROF_NVLINK_TX_BYTES

Estas métricas representam a taxa de transferência de transmissão (tx) e receção (rx) do NVLink em bytes.

Utilização esperada: acompanhe a carga nos conetores NVLink (entre chips de GPU). Se o valor destas métricas estiver próximo da largura de banda NVLink disponível total e as métricas de utilização de computação forem baixas, isto pode indicar que o NVLink é um gargalo nas aplicações em execução.

DCGM_FI_PROF_PCIE_RX_BYTES, DCGM_FI_PROF_PCIE_TX_BYTES

Estas métricas representam a taxa de transferência de transmissão (tx) e receção (rx) PCIe em bytes, em que tx é a GPU a transmitir dados e rx é a GPU a receber dados.

Utilização esperada: acompanhe a carga no barramento PCIe (entre a CPU e a GPU). Se os valores destas métricas estiverem próximos da largura de banda total do barramento PCIe e as métricas de utilização de computação forem baixas, isto pode indicar que o barramento PCIe é um gargalo nas aplicações em execução.

Utilização de energia

As seguintes métricas fornecem estatísticas sobre a utilização da potência da GPU, por vezes, cruciais para o desempenho e a eficiência da carga de trabalho.

DCGM_FI_DEV_GPU_TEMP

Esta métrica representa a temperatura média em todos os núcleos da GPU.

Utilização esperada: monitorize quando a GPU está perto do sobreaquecimento, principalmente para correlacionar com a limitação da velocidade do processador. Também pode usar esta métrica para identificar GPUs propensas ao sobreaquecimento para uma carga mais leve em aplicações mais avançadas.

DCGM_FI_DEV_POWER_USAGE

Esta métrica representa o consumo de energia da GPU em watts. Pode querer acompanhar o consumo de energia como uma métrica de ocupação da GPU. As GPUs NVIDIA ajustam os relógios do motor com base na quantidade de trabalho que estão a fazer. À medida que a velocidade do relógio (e, por conseguinte, a utilização) aumenta, o consumo de energia também aumenta.

Utilização esperada: acompanhe a quantidade de energia que a GPU está a usar para as aplicações do utilizador.

DCGM_FI_DEV_TOTAL_ENERGY_CONSUMPTION

Esta métrica representa o consumo total de energia da GPU em milijoules (mJ) após o último recarregamento do controlador. A taxa calculada com base nesta métrica deve corresponder à métrica de consumo de energia.

Utilização esperada: acompanhe a quantidade de energia que a GPU está a usar para as aplicações do utilizador.

Métricas de desempenho da GPU

O desempenho da GPU refere-se à eficácia e eficiência com que uma GPU pode realizar uma tarefa computacional.

DCGM_FI_DEV_MEMORY_TEMP

Esta métrica indica a temperatura média do bloco de memória.

Utilização esperada: para mostrar a temperatura do bloco de memória e correlacioná-la com a temperatura da GPU.

DCGM_FI_DEV_SM_CLOCK

Esta métrica representa a velocidade do relógio média em todos os SMs. Esta métrica é calculada num intervalo de tempo especificado.

Utilização esperada: acompanhe a velocidade do relógio para detetar a limitação e correlacionar com o desempenho da aplicação.

O que se segue?