Gestor de GPUs de centro de datos de NVIDIA (DCGM)

La integración de NVIDIA Data Center GPU Manager recoge métricas avanzadas clave de la GPU de DCGM. El agente de operaciones se puede configurar para recoger uno de los dos conjuntos de métricas diferentes seleccionando la versión del receptor dcgm:

Para obtener más información sobre NVIDIA Data Center GPU Manager, consulta la documentación de DCGM. Esta integración es compatible con las versiones de DCGM de la 3.1 a la 3.3.9.

Estas métricas solo están disponibles en sistemas Linux. Las métricas de creación de perfiles no se recogen de los modelos de GPU NVIDIA P100 y P4.

Requisitos previos

Para recoger métricas de NVIDIA DCGM, debe hacer lo siguiente:

Instalar DCGM y verificar la instalación

Debes instalar DCGM versión 3.1 a 3.3.9 y asegurarte de que se ejecute como servicio con privilegios. Para instalar DCGM, consulta la sección Instalación de la documentación de DCGM.

Para verificar que DCGM se está ejecutando correctamente, haz lo siguiente:

  1. Para comprobar el estado del servicio DCGM, ejecuta el siguiente comando:

    sudo service nvidia-dcgm status
    

    Si el servicio se está ejecutando, el servicio nvidia-dcgm se mostrará como active (running). La salida es similar a la siguiente:

    ● 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. Para comprobar que se han encontrado los dispositivos de GPU, ejecuta el siguiente comando:

    dcgmi discovery --list
    

    Si se encuentran dispositivos, el resultado será similar al siguiente:

    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                |
    +--------+----------------------------------------------------------------------+
    

Configurar el agente de operaciones para DCGM

Sigue la guía para configurar el agente de Ops, añade los elementos necesarios para recoger telemetría de tu servicio DCGM y reinicia el agente.

Configuración de ejemplo

Los siguientes comandos crean la configuración para recoger e ingerir las métricas de la versión 2 del receptor de 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

Si solo quiere recoger métricas de creación de perfiles de DCGM, sustituya el valor del campo receiver_version por 1. También puedes eliminar la entrada de receiver_version por completo. La versión predeterminada es 1. No puedes usar ambas versiones al mismo tiempo.

Para que estos cambios se apliquen, debes reiniciar el agente de Ops:

  1. Para reiniciar el agente, ejecuta el siguiente comando en tu instancia:
    sudo systemctl restart google-cloud-ops-agent
    
  2. Para confirmar que el agente se ha reiniciado, ejecuta el siguiente comando y verifica que los componentes "Metrics Agent" y "Logging Agent" se han iniciado:
    sudo systemctl status "google-cloud-ops-agent*"
    

Si aparece un mensaje de error como "Unable to connect to DCGM daemon at localhost:5555 on libdcgm.so not Found; Is the DCGM daemon running?", es probable que hayas instalado la versión 4.0 del servicio DGCM. El nombre de la biblioteca compartida de DCGM se ha cambiado a libdgcdm.so.4, que el receptor de DCGM del agente de operaciones no reconoce. Debes usar la versión 3.1 a 3.3.9 de DCGM.

Si usas una cuenta de servicio personalizada en lugar de la cuenta de servicio predeterminada de Compute Engine o tienes una máquina virtual de Compute Engine muy antigua, es posible que tengas que autorizar el agente de operaciones.

Configurar recogida de métricas

Para ingerir métricas de NVIDIA DCGM, debes crear un receptor para las métricas que genera NVIDIA DCGM y, a continuación, crear una canalización para el nuevo receptor.

Este receptor no admite el uso de varias instancias en la configuración, por ejemplo, para monitorizar varios endpoints. Todas estas instancias escriben en la misma serie temporal y Cloud Monitoring no tiene forma de distinguirlas.

Para configurar un receptor de sus métricas de dcgm, especifique los siguientes campos:

Campo Predeterminado Descripción
collection_interval 60s Una duración, como 30s o 5m.
endpoint localhost:5555 Dirección del servicio DCGM, con el formato host:port.
receiver_version 1 1 o 2. La versión 2 tiene muchas más métricas disponibles.
type Este valor debe ser dcgm.

Qué se monitoriza

En las siguientes tablas se enumeran las métricas que recoge el agente de Ops de la instancia de NVIDIA DGCM. No todas las métricas están disponibles para todos los modelos de GPU. Las métricas de creación de perfiles no se recogen de los modelos de GPU NVIDIA P100 y P4.

Métricas de la versión 1

Las siguientes métricas se recogen mediante la versión 1 del receptor dcgm.

Tipo de métrica 
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

 No disponible en los modelos de GPU P100 y P4.

 En el nivel 4, no se admite el valor pipe fp64.

Métricas de la versión 2

Las siguientes métricas se recogen mediante la versión 2 del receptor dcgm.

Tipo de métrica 
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

 En P100 y P4, solo se admiten los valores violation power, thermal y sync_boost.

 No disponible en los modelos de GPU P100 y P4.

§ En el nivel 4, no se admite el valor pipe fp64.

Métricas de GPU

Además, la configuración integrada del Agente de operaciones también recoge agent.googleapis.com/gpu métricas, que proporciona la biblioteca de gestión (NVML) de NVIDIA. No necesitas ninguna configuración adicional en el agente de operaciones para recoger estas métricas, pero debes crear tu máquina virtual con GPUs conectadas y instalar el controlador de la GPU. Para obtener más información, consulta el artículo Acerca de las métricas de gpu. Las métricas de la versión 1 del receptor dcgm se han diseñado para complementar estas métricas predeterminadas, mientras que las métricas de la versión 2 del receptor dcgm se han creado para que sean independientes.

Verificar la configuración

En esta sección se describe cómo verificar que ha configurado correctamente el receptor NVIDIA DCGM. El agente de Ops puede tardar uno o dos minutos en empezar a recoger datos de telemetría.

Para verificar que las métricas de NVIDIA DCGM se envían a Cloud Monitoring, haz lo siguiente:

  1. En la Google Cloud consola, ve a la página  Explorador de métricas:

    Ve al explorador de métricas.

    Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuya sección sea Monitorización.

  2. En la barra de herramientas del panel de creación de consultas, selecciona el botón cuyo nombre sea  MQL o  PromQL.
  3. Verifica que PromQL esté seleccionado en el interruptor Idioma. El interruptor de idioma se encuentra en la misma barra de herramientas que te permite dar formato a tu consulta.
    • En el caso de las métricas de la versión 1, introduce la siguiente consulta en el editor y, a continuación, haz clic en Ejecutar consulta:
      {"workload.googleapis.com/dcgm.gpu.profiling.sm_utilization", monitored_resource="gce_instance"}
      
    • En el caso de las métricas de la versión 2, introduzca la siguiente consulta en el editor y, a continuación, haga clic en Ejecutar:
      {"workload.googleapis.com/gpu.dcgm.sm.utilization", monitored_resource="gce_instance"}
      

Ver panel de control

Para ver las métricas de NVIDIA DCGM, debe tener configurado un gráfico o un panel de control. La integración de NVIDIA DCGM incluye uno o varios paneles de control. Los paneles de control se instalan automáticamente después de configurar la integración y cuando el agente de Ops ha empezado a recoger datos de métricas.

También puedes ver vistas previas estáticas de los paneles de control sin instalar la integración.

Para ver un panel de control instalado, siga estos pasos:

  1. En la Google Cloud consola, ve a la página  Paneles de control:

    Ve a Paneles.

    Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuya sección sea Monitorización.

  2. Seleccione la pestaña Lista de paneles de control y, a continuación, elija la categoría Integraciones.
  3. Haga clic en el nombre del panel de control que quiera ver.

Si has configurado una integración, pero el panel de control no se ha instalado, comprueba que el agente de operaciones se esté ejecutando. Si no hay datos de métricas para un gráfico del panel de control, no se podrá instalar el panel. Una vez que el agente de Ops empiece a recoger métricas, se instalará el panel de control.

Para ver una vista previa estática del panel de control, siga estos pasos:

  1. En la Google Cloud consola, ve a la página  Integraciones:

    Ve a Integraciones.

    Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuya sección sea Monitorización.

  2. Haz clic en el filtro de plataforma de implementación Compute Engine.
  3. Busca la entrada de NVIDIA DCGM y haz clic en Ver detalles.
  4. Seleccione la pestaña Paneles para ver una vista previa estática. Si el panel de control está instalado, puedes acceder a él haciendo clic en Ver panel de control.

Para obtener más información sobre los paneles de control de Cloud Monitoring, consulta Paneles de control y gráficos.

Para obtener más información sobre cómo usar la página Integraciones, consulta el artículo Gestionar integraciones.

Limitaciones de DCGM y pausa de la creación de perfiles

El uso simultáneo de DCGM puede entrar en conflicto con el uso de otras herramientas para desarrolladores de NVIDIA, como Nsight Systems o Nsight Compute. Esta limitación se aplica a las GPUs NVIDIA A100 y anteriores. Para obtener más información, consulta Frecuencia de muestreo de creación de perfiles en la descripción general de la función DCGM.

Si necesitas usar herramientas como Nsight Systems sin que se produzcan interrupciones significativas, puedes pausar o reanudar temporalmente la recogida de métricas con los siguientes comandos:

dcgmi profile --pause
dcgmi profile --resume

Cuando se pausa la creación de perfiles, no se emiten desde la VM ninguna de las métricas de DCGM que recoge el agente de operaciones.

Siguientes pasos

Para ver una guía sobre cómo usar Ansible para instalar el Agente de operaciones, configurar una aplicación de terceros e instalar un panel de control de ejemplo, consulta el vídeo Instalar el Agente de operaciones para solucionar problemas con aplicaciones de terceros.