NVIDIA Data Center GPU Manager (DCGM)

A integração do NVIDIA Data Center GPU Manager recolhe métricas avançadas importantes da GPU do DCGM. Pode configurar o agente de operações para recolher um de dois conjuntos diferentes de métricas selecionando a versão do recetor dcgm:

Para mais informações sobre o NVIDIA Data Center GPU Manager, consulte a documentação do DCGM. Esta integração é compatível com a versão 3.1 a 3.3.9 do DCGM.

Estas métricas só estão disponíveis para sistemas Linux. As métricas de criação de perfis não são recolhidas dos modelos de GPU NVIDIA P100 e P4.

Pré-requisitos

Para recolher métricas do NVIDIA DCGM, tem de fazer o seguinte:

Instale o DCGM e valide a instalação

Tem de instalar a versão 3.1 a 3.3.9 do DCGM e garantir que é executado como um serviço privilegiado. Para instalar o DCGM, consulte a secção Instalação na documentação do DCGM.

Para verificar se o DCGM está a ser executado corretamente, faça o seguinte:

  1. Verifique o estado do serviço DCGM executando o seguinte comando:

    sudo service nvidia-dcgm status
    

    Se o serviço estiver em execução, o serviço nvidia-dcgm é apresentado como active (running). O resultado é semelhante ao seguinte:

    ● nvidia-dcgm.service - NVIDIA DCGM service
    Loaded: loaded (/usr/lib/systemd/system/nvidia-dcgm.service; disabled; vendor preset: enabled)
    Active: active (running) since Sat 2023-01-07 15:24:29 UTC; 3s ago
    Main PID: 24388 (nv-hostengine)
    Tasks: 7 (limit: 14745)
    CGroup: /system.slice/nvidia-dcgm.service
           └─24388 /usr/bin/nv-hostengine -n --service-account nvidia-dcgm
    
  2. Verifique se os dispositivos GPU são encontrados executando o seguinte comando:

    dcgmi discovery --list
    

    Se forem encontrados dispositivos, o resultado é semelhante ao seguinte:

    1 GPU found.
    +--------+----------------------------------------------------------------------+
    | GPU ID | Device Information                                                   |
    +--------+----------------------------------------------------------------------+
    | 0      | Name: NVIDIA A100-SXM4-40GB                                          |
    |        | PCI Bus ID: 00000000:00:04.0                                         |
    |        | Device UUID: GPU-a2d9f5c7-87d3-7d57-3277-e091ad1ba957                |
    +--------+----------------------------------------------------------------------+
    

Configure o agente Ops para o DCGM

Seguindo o guia para Configurar o agente Ops, adicione os elementos necessários para recolher telemetria do seu serviço DCGM e reinicie o agente.

Exemplo de configuração

Os comandos seguintes criam a configuração para recolher e carregar as métricas da versão 2 do recetor para o NVIDIA DCGM:

# Configures Ops Agent to collect telemetry from the app. You must restart the agent for the configuration to take effect.
set -e

# Check if the file exists
if [ ! -f /etc/google-cloud-ops-agent/config.yaml ]; then
  # Create the file if it doesn't exist.
  sudo mkdir -p /etc/google-cloud-ops-agent
  sudo touch /etc/google-cloud-ops-agent/config.yaml
fi

# Create a back up of the existing file so existing configurations are not lost.
sudo cp /etc/google-cloud-ops-agent/config.yaml /etc/google-cloud-ops-agent/config.yaml.bak

# Configure the Ops Agent.
sudo tee /etc/google-cloud-ops-agent/config.yaml > /dev/null << EOF
metrics:
  receivers:
    dcgm:
      type: dcgm
      receiver_version: 2
  service:
    pipelines:
      dcgm:
        receivers:
          - dcgm
EOF

Se quiser recolher apenas métricas de criação de perfis do DCGM, substitua o valor do campo receiver_version por 1. Também pode remover a entrada receiver_version por completo. A versão predefinida é 1. Não pode usar ambas as versões em simultâneo.

Para que estas alterações entrem em vigor, tem de reiniciar o agente de operações:

  1. Para reiniciar o agente, execute o seguinte comando na sua instância:
    sudo systemctl restart google-cloud-ops-agent
    
  2. Para confirmar que o agente foi reiniciado, execute o seguinte comando e verifique se os componentes "Agente de métricas" e "Agente de registo" foram iniciados:
    sudo systemctl status "google-cloud-ops-agent*"
    

Se receber uma mensagem de erro como "Não é possível estabelecer ligação ao daemon DCGM em localhost:5555 no libdcgm.so não encontrado; o daemon DCGM está em execução?", provavelmente instalou a versão 4.0 do serviço DGCM. O nome da biblioteca partilhada DCGM foi mudado para libdgcdm.so.4, que o recetor DCGM do agente de operações não reconhece. Tem de usar a versão 3.1 a 3.3.9 do DCGM.

Se estiver a usar uma conta de serviço personalizada em vez da conta de serviço do Compute Engine predefinida ou se tiver uma VM do Compute Engine muito antiga, pode ter de autorizar o agente de operações.

Configure a recolha de métricas

Para carregar métricas do NVIDIA DCGM, tem de criar um recetor para as métricas produzidas pelo NVIDIA DCGM e, em seguida, criar um pipeline para o novo recetor.

Este recetor não suporta a utilização de várias instâncias na configuração, por exemplo, para monitorizar vários pontos finais. Todas essas instâncias escrevem na mesma série cronológica e o Cloud Monitoring não tem forma de as distinguir.

Para configurar um destinatário para as suas métricas dcgm, especifique os seguintes campos:

Campo Predefinição Descrição
collection_interval 60s Uma duração, como 30s ou 5m.
endpoint localhost:5555 Morada do serviço DCGM, formatada como host:port.
receiver_version 1 1 ou 2. A versão 2 tem muito mais métricas disponíveis.
type Este valor tem de ser dcgm.

O que é monitorizado

As tabelas seguintes apresentam listas de métricas que o agente de operações recolhe da instância do NVIDIA DGCM. Nem todas as métricas estão disponíveis para todos os modelos de GPU. As métricas de criação de perfis não são recolhidas dos modelos de GPU NVIDIA P100 e P4.

Métricas da versão 1

As seguintes métricas são recolhidas através da versão 1 do recetor dcgm.

Tipo de métrica
Tipo, Tipo
Recursos monitorizados
Etiquetas
workload.googleapis.com/dcgm.gpu.profiling.dram_utilization 
GAUGEDOUBLE
gce_instance
gpu_number
model
uuid
GAUGEINT64
gce_instance
direction
gpu_number
model
uuid
workload.googleapis.com/dcgm.gpu.profiling.pcie_traffic_rate 
GAUGEINT64
gce_instance
direction
gpu_number
model
uuid
workload.googleapis.com/dcgm.gpu.profiling.pipe_utilization 
GAUGEDOUBLE
gce_instance
gpu_number
model
pipe  
uuid
workload.googleapis.com/dcgm.gpu.profiling.sm_occupancy 
GAUGEDOUBLE
gce_instance
gpu_number
model
uuid
workload.googleapis.com/dcgm.gpu.profiling.sm_utilization 
GAUGEDOUBLE
gce_instance
gpu_number
model
uuid

 Não disponível nos modelos de GPU P100 e P4.

 Para o nível 4, o valor pipe fp64 não é suportado.

Métricas da versão 2

As seguintes métricas são recolhidas através da versão 2 do recetor dcgm.

Tipo de métrica
Tipo, Tipo
Recursos monitorizados
Etiquetas
workload.googleapis.com/gpu.dcgm.clock.frequency
GAUGEDOUBLE
gce_instance
gpu_number
model
uuid
workload.googleapis.com/gpu.dcgm.clock.throttle_duration.time
CUMULATIVEDOUBLE
gce_instance
gpu_number
model
uuid
violation  
workload.googleapis.com/gpu.dcgm.codec.decoder.utilization
GAUGEDOUBLE
gce_instance
gpu_number
model
uuid
workload.googleapis.com/gpu.dcgm.codec.encoder.utilization
GAUGEDOUBLE
gce_instance
gpu_number
model
uuid
workload.googleapis.com/gpu.dcgm.ecc_errors
CUMULATIVEINT64
gce_instance
error_type
gpu_number
model
uuid
workload.googleapis.com/gpu.dcgm.energy_consumption
CUMULATIVEDOUBLE
gce_instance
gpu_number
model
uuid
workload.googleapis.com/gpu.dcgm.memory.bandwidth_utilization
GAUGEDOUBLE
gce_instance
gpu_number
model
uuid
workload.googleapis.com/gpu.dcgm.memory.bytes_used
GAUGEINT64
gce_instance
gpu_number
model
state
uuid
workload.googleapis.com/gpu.dcgm.nvlink.io 
CUMULATIVEINT64
gce_instance
direction
gpu_number
model
uuid
workload.googleapis.com/gpu.dcgm.pcie.io 
CUMULATIVEINT64
gce_instance
direction
gpu_number
model
uuid
workload.googleapis.com/gpu.dcgm.pipe.utilization 
GAUGEDOUBLE
gce_instance
gpu_number
model
pipe  §
uuid
workload.googleapis.com/gpu.dcgm.sm.utilization 
GAUGEDOUBLE
gce_instance
gpu_number
model
uuid
workload.googleapis.com/gpu.dcgm.temperature
GAUGEDOUBLE
gce_instance
gpu_number
model
uuid
workload.googleapis.com/gpu.dcgm.utilization
GAUGEDOUBLE
gce_instance
gpu_number
model
uuid

 Para P100 e P4, apenas são suportados os valores violation power, thermal e sync_boost.

 Não disponível nos modelos de GPU P100 e P4.

§ Para L4, o valor pipe fp64 não é suportado.

Métricas de GPU

Além disso, a configuração integrada do agente de operações também recolhe agent.googleapis.com/gpu métricas, que são comunicadas pela NVIDIA Management Library (NVML). Não precisa de nenhuma configuração adicional no agente de operações para recolher estas métricas, mas tem de criar a sua VM com GPUs anexadas e instalar o controlador de GPU. Para mais informações, consulte o artigo Acerca das gpu métricas. As métricas da versão 1 do recetor foram concebidas para complementar estas métricas predefinidas, enquanto as métricas da versão 2 do recetor destinam-se a ser autónomas.dcgmdcgm

Valide a configuração

Esta secção descreve como verificar se configurou corretamente o recetor NVIDIA DCGM. O agente de operações pode demorar um ou dois minutos a começar a recolher telemetria.

Para verificar se as métricas do NVIDIA DCGM estão a ser enviadas para o Cloud Monitoring, faça o seguinte:

  1. Na Google Cloud consola, aceda à página  Explorador de métricas:

    Aceda ao Metrics Explorer

    Se usar a barra de pesquisa para encontrar esta página, selecione o resultado cujo subtítulo é Monitorização.

  2. Na barra de ferramentas do painel do criador de consultas, selecione o botão cujo nome é  MQL ou  PromQL.
  3. Verifique se a opção PromQL está selecionada no botão Idioma. O botão para alternar o idioma encontra-se na mesma barra de ferramentas que lhe permite formatar a consulta.
    • Para métricas da v1, introduza a seguinte consulta no editor e, de seguida, clique em Executar consulta:
      {"workload.googleapis.com/dcgm.gpu.profiling.sm_utilization", monitored_resource="gce_instance"}
      
    • Para métricas da v2, introduza a seguinte consulta no editor e, de seguida, clique em Executar:
      {"workload.googleapis.com/gpu.dcgm.sm.utilization", monitored_resource="gce_instance"}
      

Ver o painel de controlo

Para ver as métricas do NVIDIA DCGM, tem de ter um gráfico ou um painel de controlo configurado. A integração do NVIDIA DCGM inclui um ou mais painéis de controlo para si. Todos os painéis de controlo são instalados automaticamente depois de configurar a integração e o agente de operações começar a recolher dados de métricas.

Também pode ver pré-visualizações estáticas de painéis de controlo sem instalar a integração.

Para ver um painel de controlo instalado, faça o seguinte:

  1. Na Google Cloud consola, aceda à página  Painéis de controlo:

    Aceda a Painéis de controlo

    Se usar a barra de pesquisa para encontrar esta página, selecione o resultado cujo subtítulo é Monitorização.

  2. Selecione o separador Lista de painéis de controlo e, de seguida, escolha a categoria Integrações.
  3. Clique no nome do painel de controlo que quer ver.

Se configurou uma integração, mas o painel de controlo não foi instalado, verifique se o agente de operações está em execução. Quando não existem dados de métricas para um gráfico no painel de controlo, a instalação do painel de controlo falha. Depois de o agente de operações começar a recolher métricas, o painel de controlo é instalado para si.

Para ver uma pré-visualização estática do painel de controlo, faça o seguinte:

  1. Na Google Cloud consola, aceda à página  Integrações:

    Aceda a Integrações

    Se usar a barra de pesquisa para encontrar esta página, selecione o resultado cujo subtítulo é Monitorização.

  2. Clique no filtro da plataforma de implementação Compute Engine.
  3. Localize a entrada para NVIDIA DCGM e clique em Ver detalhes.
  4. Selecione o separador Painéis de controlo para ver uma pré-visualização estática. Se o painel de controlo estiver instalado, pode navegar até ele clicando em Ver painel de controlo.

Para mais informações acerca dos painéis de controlo no Cloud Monitoring, consulte o artigo Painéis de controlo e gráficos.

Para mais informações sobre como usar a página Integrações, consulte o artigo Gerir integrações.

Limitações do DCGM e pausa da criação de perfis

A utilização simultânea do DCGM pode entrar em conflito com a utilização de algumas outras ferramentas de programador da NVIDIA, como o Nsight Systems ou o Nsight Compute. Esta limitação aplica-se às GPUs NVIDIA A100 e anteriores. Para mais informações, consulte Taxa de amostragem de criação de perfis na vista geral da funcionalidade DCGM.

Quando precisa de usar ferramentas como o Nsight Systems sem interrupções significativas, pode pausar ou retomar temporariamente a recolha de métricas através dos seguintes comandos:

dcgmi profile --pause
dcgmi profile --resume

Quando a criação de perfis está em pausa, nenhuma das métricas do DCGM que o agente de operações recolhe é emitida a partir da VM.

O que se segue?

Para ver um passo a passo sobre como usar o Ansible para instalar o agente de operações, configurar uma aplicação de terceiros e instalar um painel de controlo de exemplo, consulte o vídeo Instale o agente de operações para resolver problemas de aplicações de terceiros.