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:
- Os clusters têm de estar a executar a versão 1.30.1-gke.1204000 ou posterior do GKE.
- A recolha de métricas do sistema tem de estar ativada
- A recolha gerida do Managed Service for Prometheus do Google Cloud tem de estar ativada
- Os conjuntos de nós têm de estar a executar controladores de GPU geridos pelo GKE. Isto significa que tem de criar os seus node pools com
default
oulatest
para--gpu-driver-version
. - Para a versão 1.32.0-gke.1764000 ou posterior do GKE, as métricas de criação de perfis são recolhidas para todos os tipos de GPU suportados pelo GKE. Para versões anteriores do GKE, as métricas de criação de perfis só são recolhidas para GPUs NVIDIA H100 de 80 GB.
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
-
Tem de usar a opção Predefinição ou Mais recente para a instalação do controlador da GPU.
Aceda à página do Google Kubernetes Engine na Google Cloud consola.
Clique no nome do cluster.
Junto a Cloud Monitoring, clique em edit.
Selecione
SYSTEM
eDCGM
.Clique em Guardar.
gcloud
Crie um node pool de GPU.
Tem de usar
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 o seguinte:
CLUSTER_NAME
: o nome do cluster existente.COMPUTE_LOCATION
: a localização do Compute Engine do cluster.
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 GPUdevice
: 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 entre0
e7
. modelName
: o nome do modelo do dispositivo GPU, comoNVIDIA 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 |
|
GAUGE , DOUBLE , 1
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 |
|
GAUGE , DOUBLE , 1
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 |
|
GAUGE , DOUBLE , 1
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 |
|
GAUGE , DOUBLE , 1
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 |
|
GAUGE , DOUBLE , 1
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 |
|
GAUGE , DOUBLE , 1
prometheus_target
1.30.1-gke.1204000 |
Utilização 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 |
Utilização 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 relógio 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 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 |
|
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 a enviar ou receber 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 do 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 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 |
|
GAUGE , DOUBLE , 1
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 |
|
GAUGE , DOUBLE , 1
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 |
|
GAUGE , DOUBLE , 1
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 |
|
GAUGE , DOUBLE , 1
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 |
|
GAUGE , DOUBLE , 1
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 |
|
GAUGE , DOUBLE , 1
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 |
|
GAUGE , DOUBLE , 1
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 |
|
GAUGE , DOUBLE , 1
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?
- Saiba como ver métricas de observabilidade.