É possível monitorar a utilização, o desempenho e a integridade da GPU configurando o GKE para que envie métricas do NVIDIA Data Center GPU Manager (DCGM) ao Cloud Monitoring.
Quando você ativa as métricas do DCGM, o GKE instala a ferramenta DCGM-Exporter, instala drivers de GPU gerenciados pelo Google e implanta um recurso ClusterPodMonitoring para que envie métricas ao Google Cloud Managed Service para Prometheus.
Também é possível configurar o DCGM autogerido se você quiser personalizar o conjunto de métricas do DCGM ou se tiver um cluster que não atenda aos requisitos para métricas do DCGM gerenciado.
O que é o DCGM?
O NVIDIA Data Center GPU Manager (DCGM) é um conjunto de ferramentas da NVIDIA que permitem gerenciar e monitorar GPUs NVIDIA. O DCGM oferece uma visão ampla da GPU em termos de utilização, desempenho e integridade.
- As métricas de utilização da GPU são uma indicação de como a GPU monitorada está ocupada e se ela é usada de forma eficaz para processar tarefas. Isso inclui métricas de processamento central, memória, E/S e consumo de energia.
- As métricas de desempenho da GPU se referem à eficácia e eficiência com que uma GPU pode realizar uma tarefa computacional. Isso inclui métricas de velocidade do clock e 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, verifique se você realizou as tarefas a seguir:
- Ativar a API Google Kubernetes Engine. Ativar a API Google Kubernetes Engine
- Se você quiser usar a Google Cloud CLI para essa tarefa,
instale e, em seguida,
inicialize a
CLI gcloud. Se você instalou a CLI gcloud anteriormente, instale a versão
mais recente executando
gcloud components update
.
Requisitos para as métricas do NVIDIA Data Center GPU Manager (DCGM)
Para coletar métricas do NVIDIA Data Center GPU Manager (DCGM), o cluster do GKE precisa atender aos seguintes requisitos:
- GKE versão 1.30.1-gke.1204000 ou posterior.
- A coleta de métricas do sistema precisa estar ativada.
- A coleta gerenciada do Google Cloud Managed Service para Prometheus precisa estar ativada.
- Os pools de nós precisam executar drivers de GPU gerenciados pelo GKE. Ou seja, você precisa criar seus pools de nós usando
default
oulatest
para--gpu-driver-version
. - As métricas de perfil são coletadas apenas para GPUs NVIDIA H100 de 80 GB.
Configurar a coleta de métricas do DCGM
É possível ativar o GKE para coletar métricas do DCGM em um cluster existente usando o console do Google Cloud, a gcloud CLI ou o Terraform.
Console
-
Use Padrão ou Mais recente para instalação do driver de GPU.
Acesse a página Google Kubernetes Engine no console do Google Cloud.
Clique no nome do cluster.
Ao lado de Cloud Monitoring, clique em edit.
Selecione
SYSTEM
eDCGM
.Clique em "Salvar".
gcloud
Crie um pool de nós de GPU.
Use
default
oulatest
para--gpu-driver-version
.Atualize o cluster:
gcloud container clusters update CLUSTER_NAME \ --location=COMPUTE_LOCATION \ --enable-managed-prometheus \ --monitoring=SYSTEM,DCGM
Substitua:
CLUSTER_NAME
: o nome do cluster existente.COMPUTE_LOCATION
: o local do Compute Engine do cluster.
Terraform
Para configurar a coleta de métricas do DCGM usando o Terraform, consulte o bloco monitoring_config
no registro do Terraform para google_container_cluster
.
Para informações gerais sobre como usar o Google Cloud com o Terraform, consulte
Terraform com o Google Cloud.
Usar métricas do DCGM
É possível conferir as métricas do DCGM usando os painéis no console do Google Cloud ou diretamente nas páginas de visão geral e detalhes do cluster. Para mais informações, consulte Conferir métricas de observabilidade.
É possível conferir as métricas usando o painel de métricas do DCGM do Grafana. Para mais informações, veja Consultar usando o Grafana. Se você encontrar erros, consulte Compatibilidade com a API.
Preços
As métricas do DCGM usam o Google Cloud Managed Service para Prometheus para carregar métricas no Cloud Monitoring. O Cloud Monitoring cobra pela ingestão dessas métricas com base no número de amostras ingeridas. No entanto, essas métricas são gratuitas para os clusters registrados que pertencem a um projeto com o GKE edição Enterprise ativado.
Para mais informações, consulte preços do Cloud Monitoring.
Cota
As métricas do DCGM consomem a cota de Solicitações de ingestão de séries temporais por minuto da API Cloud Monitoring. Antes de ativar os pacotes de métricas, verifique o pico de uso recente dessa cota. Se você tiver muitos clusters no mesmo projeto ou já estiver perto do limite dessa cota, solicite um aumento no limite de cota antes de ativar qualquer pacote de observabilidade.
Métricas do DCGM
Os nomes das métricas do Cloud Monitoring nesta tabela precisam ser prefixados com
prometheus.googleapis.com/
. Esse prefixo foi omitido das
entradas na tabela.
Além dos rótulos no recurso monitorado prometheus_target
, todas as métricas do DCGM coletadas no GKE têm os seguintes rótulos anexados:
Rótulos da GPU:
UUID
: o UUID do dispositivo da GPU.device
: o nome do dispositivo da GPU.-
gpu
: o número do índice como um número inteiro do dispositivo de GPU no nó. Por exemplo, se houver 8 GPUs anexadas, esse valor poderá variar de0
a7
. modelName
: o nome do modelo do dispositivo de GPU, comoNVIDIA L4
.
Marcadores do Kubernetes:
container
: o nome do contêiner do Kubernetes que usa o dispositivo de GPU.-
namespace
: o namespace do Kubernetes do pod e do contêiner que usa o dispositivo de GPU. pod
: o pod do Kubernetes que usa o dispositivo de GPU.
Nome da métrica do PromQL Nome da métrica do Cloud Monitoring |
|
---|---|
Tipo, Classe, Unidade
Recursos monitorados Versão obrigatória do GKE |
Descrição |
DCGM_FI_DEV_FB_FREE DCGM_FI_DEV_FB_FREE/gauge |
|
GAUGE , DOUBLE , 1
prometheus_target
1.30.1-gke.1204000 |
Framebuffer livre em MB. |
DCGM_FI_DEV_FB_TOTAL DCGM_FI_DEV_FB_TOTAL/gauge |
|
GAUGE , DOUBLE , 1
prometheus_target
1.30.1-gke.1204000 |
Framebuffer total da GPU em MB. |
DCGM_FI_DEV_FB_USED DCGM_FI_DEV_FB_USED/gauge |
|
GAUGE , DOUBLE , 1
prometheus_target
1.30.1-gke.1204000 |
Framebuffer usado em MB. |
DCGM_FI_DEV_GPU_TEMP DCGM_FI_DEV_GPU_TEMP/gauge |
|
GAUGE , DOUBLE , 1
prometheus_target
1.30.1-gke.1204000 |
Leituras atuais de temperatura do dispositivo (em °C). |
DCGM_FI_DEV_GPU_UTIL DCGM_FI_DEV_GPU_UTIL/gauge |
|
GAUGE , DOUBLE , 1
prometheus_target
1.30.1-gke.1204000 |
Uso da GPU (em %). |
DCGM_FI_DEV_MEM_COPY_UTIL DCGM_FI_DEV_MEM_COPY_UTIL/gauge |
|
GAUGE , DOUBLE , 1
prometheus_target
1.30.1-gke.1204000 |
Uso da memória (em %). |
DCGM_FI_DEV_MEMORY_TEMP DCGM_FI_DEV_MEMORY_TEMP/gauge |
|
GAUGE , DOUBLE , 1
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 |
|
GAUGE , DOUBLE , 1
prometheus_target
1.30.1-gke.1204000 |
Consumo de energia do dispositivo (em watts). |
DCGM_FI_DEV_SM_CLOCK DCGM_FI_DEV_SM_CLOCK/gauge |
|
GAUGE , DOUBLE , 1
prometheus_target
1.30.1-gke.1204000 |
Frequência do clock do SM (em MHz). |
DCGM_FI_DEV_TOTAL_ENERGY_CONSUMPTION DCGM_FI_DEV_TOTAL_ENERGY_CONSUMPTION/counter |
|
CUMULATIVE , DOUBLE , 1
prometheus_target
1.30.1-gke.1204000 |
Consumo de energia total da GPU em mJ desde a última recarga do driver. |
DCGM_FI_PROF_DRAM_ACTIVE DCGM_FI_PROF_DRAM_ACTIVE/gauge |
|
GAUGE , DOUBLE , 1
prometheus_target
1.30.1-gke.1204000 |
A proporção de ciclos em que a interface de memória do dispositivo está ativa enviando ou recebendo dados. |
DCGM_FI_PROF_GR_ENGINE_ACTIVE DCGM_FI_PROF_GR_ENGINE_ACTIVE/gauge |
|
GAUGE , DOUBLE , 1
prometheus_target
1.30.1-gke.1204000 |
A proporção de tempo em que o motor gráfico está ativo. |
DCGM_FI_PROF_NVLINK_RX_BYTES DCGM_FI_PROF_NVLINK_RX_BYTES/gauge |
|
GAUGE , DOUBLE , 1
prometheus_target
1.30.1-gke.1204000 |
A taxa de dados ativos de rx (leitura) do NvLink em bytes, incluindo cabeçalho e payload. |
DCGM_FI_PROF_NVLINK_TX_BYTES DCGM_FI_PROF_NVLINK_TX_BYTES/gauge |
|
GAUGE , DOUBLE , 1
prometheus_target
1.30.1-gke.1204000 |
A taxa de dados ativos de tx (transmissão) do NvLink em bytes, incluindo cabeçalho e payload. |
DCGM_FI_PROF_PCIE_RX_BYTES DCGM_FI_PROF_PCIE_RX_BYTES/gauge |
|
GAUGE , DOUBLE , 1
prometheus_target
1.30.1-gke.1204000 |
A taxa de dados ativos de rx (leitura) do PCIe em bytes, incluindo cabeçalho e payload. |
DCGM_FI_PROF_PCIE_TX_BYTES DCGM_FI_PROF_PCIE_TX_BYTES/gauge |
|
GAUGE , DOUBLE , 1
prometheus_target
1.30.1-gke.1204000 |
A taxa de dados ativos de tx (transmissão) do PCIe em bytes, incluindo cabeçalho e payload. |
DCGM_FI_PROF_PIPE_FP16_ACTIVE DCGM_FI_PROF_PIPE_FP16_ACTIVE/gauge |
|
GAUGE , DOUBLE , 1
prometheus_target
1.30.1-gke.1204000 |
A proporção de ciclos em que o pipe fp16 está ativo. |
DCGM_FI_PROF_PIPE_FP32_ACTIVE DCGM_FI_PROF_PIPE_FP32_ACTIVE/gauge |
|
GAUGE , DOUBLE , 1
prometheus_target
1.30.1-gke.1204000 |
A proporção de ciclos em que o pipe fp32 está ativo. |
DCGM_FI_PROF_PIPE_FP64_ACTIVE DCGM_FI_PROF_PIPE_FP64_ACTIVE/gauge |
|
GAUGE , DOUBLE , 1
prometheus_target
1.30.1-gke.1204000 |
A proporção de ciclos em que o pipe fp64 está ativo. |
DCGM_FI_PROF_PIPE_TENSOR_ACTIVE DCGM_FI_PROF_PIPE_TENSOR_ACTIVE/gauge |
|
GAUGE , DOUBLE , 1
prometheus_target
1.30.1-gke.1204000 |
A proporção de ciclos em que qualquer pipe tensor está ativo. |
DCGM_FI_PROF_SM_ACTIVE DCGM_FI_PROF_SM_ACTIVE/gauge |
|
GAUGE , DOUBLE , 1
prometheus_target
1.30.1-gke.1204000 |
A proporção de ciclos em que uma SM tem pelo menos um warp atribuído. |
A seguir
- Saiba como ver as métricas de observabilidade.