NVIDIA Data Center GPU Manager (DCGM)

Die NVIDIA Data Center GPU Manager-Integration erfasst wichtige erweiterte GPU-Messwerte aus DCGM. Der Ops-Agent kann so konfiguriert werden, dass er einen von zwei verschiedenen Messwertsätzen erfasst. Dazu wählen Sie die Version des dcgm-Empfängers aus:

  • Version 2 des dcgm-Empfängers bietet eine Auswahl von Messwerten, mit denen die Leistung und der Status der GPUs überwacht werden können, die an eine bestimmte VM-Instanz angehängt sind.
  • Version 1 des dcgm-Empfängers bietet eine Reihe von Profilierungsmesswerten, die in Kombination mit den standardmäßigen GPU-Messwerten verwendet werden sollen. Informationen zum Zweck und zur Interpretation dieser Messwerte finden Sie unter Messwerte zur Profilerstellung in der DCGM-Feature-Übersicht.

Weitere Informationen zum NVIDIA Data Center GPU Manager finden Sie in der DCGM-Dokumentation. Diese Integration ist mit DCGM Version 3.1 und höher kompatibel.

Diese Messwerte sind nur für Linux-Systeme verfügbar. Die Messwerte für das Profiling werden nicht von den NVIDIA GPU-Modellen P100 und P4 erfasst.

Vorbereitung

So erfassen Sie NVIDIA DCGM-Messwerte:

DCGM installieren und Installation prüfen

Sie müssen die DCGM-Version 3.1 und höher installieren und prüfen, ob sie als privilegierter Dienst ausgeführt wird. Informationen zum Installieren von DCGM finden Sie in der DCGM-Dokumentation unter Installation.

So prüfen Sie, ob DCGM korrekt ausgeführt wird:

  1. Prüfen Sie den Status des DCGM-Dienstes mit dem folgenden Befehl:

    sudo service nvidia-dcgm status
    

    Wenn der Dienst ausgeführt wird, wird der Dienst nvidia-dcgm als active (running) aufgeführt. Die Ausgabe sollte so aussehen:

    ● 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. Prüfen Sie mit dem folgenden Befehl, ob die GPU-Geräte gefunden wurden:

    dcgmi discovery --list
    

    Wenn Geräte gefunden werden, sieht die Ausgabe in etwa so aus:

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

Ops-Agent für DCGM konfigurieren

Fügen Sie die erforderlichen Elemente zum Erfassen von Telemetriedaten aus dem DCGM-Dienst gemäß der Anleitung unter Ops-Agent konfigurieren hinzu und starten Sie den Agent neu.

Konfigurationsbeispiel

Mit den folgenden Befehlen wird die Konfiguration zum Erfassen und Aufnehmen der Messwerte der Empfängerversion 2 für NVIDIA DCGM erstellt und der Ops-Agent neu gestartet:

# Configures Ops Agent to collect telemetry from the app and restart Ops Agent.
set -e

# 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

sudo service google-cloud-ops-agent restart
sleep 20

Wenn Sie nur DCGM-Profilierungsmesswerte erfassen möchten, ersetzen Sie den Wert des Felds receiver_version durch 1. Sie können den Eintrag receiver_version auch vollständig entfernen. Die Standardversion ist 1. Sie können nicht beide Versionen gleichzeitig verwenden.

Nachdem Sie diese Befehle ausgeführt haben, können Sie prüfen, ob der Agent neu gestartet wurde. Führen Sie den folgenden Befehl aus und prüfen Sie, ob die Sub-Agent-Komponenten „Metrics Agent“ und „Logging Agent“ als „aktiv (läuft)“ aufgeführt sind:

sudo systemctl status google-cloud-ops-agent"*"

Wenn Sie ein benutzerdefiniertes Dienstkonto anstelle des standardmäßigen Compute Engine-Dienstkontos verwenden oder wenn Sie eine sehr alte Compute Engine-VM haben, müssen Sie möglicherweise den Ops-Agent autorisieren.

Messwerterfassung konfigurieren

Um Messwerte von NVIDIA DCGM aufzunehmen, müssen Sie einen Empfänger für die von NVIDIA DCGM erzeugten Messwerte erstellen und dann eine Pipeline für den neuen Empfänger erstellen.

Dieser Empfänger unterstützt die Verwendung mehrerer Instanzen in der Konfiguration, z. B. zum Überwachen mehrerer Endpunkte, nicht. Alle diese Instanzen schreiben in dieselbe Zeitachse und Cloud Monitoring kann sie nicht unterscheiden.

Um einen Empfänger für Ihre dcgm-Messwerte zu konfigurieren, geben Sie die folgenden Felder an:

Feld Standard Beschreibung
collection_interval 60s Eine Zeitdauer, z. B. 30s oder 5m.
endpoint localhost:5555 Adresse des DCGM-Dienstes, formatiert als host:port.
receiver_version 1 Entweder 1 oder 2. Für Version 2 sind viele weitere Messwerte verfügbar.
type Dieser Wert muss dcgm sein.

Was wird überwacht?

Die folgenden Tabellen enthalten Listen der Messwerte, die der Ops-Agent aus der NVIDIA DGCM-Instanz erfasst. Nicht alle Messwerte sind für alle GPU-Modelle verfügbar. Die Messwerte für das Profiling werden nicht von den NVIDIA GPU-Modellen P100 und P4 erfasst.

Messwerte der Version 1

Die folgenden Messwerte werden mit Version 1 des dcgm-Empfängers erfasst.

Messwerttyp
Art, Typ
Überwachte Ressourcen
Labels
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

 Nicht verfügbar für die GPU-Modelle P100 und P4.

 Bei L4 wird der pipe-Wert fp64 nicht unterstützt.

Messwerte der Version 2

Die folgenden Messwerte werden mit Version 2 des dcgm-Empfängers erfasst.

Messwerttyp
Art, Typ
Überwachte Ressourcen
Labels
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

 Für P100 und P4 werden nur die violation-Werte power, thermal und sync_boost unterstützt.

 Nicht verfügbar für die GPU-Modelle P100 und P4.

§ Bei L4 wird der pipe-Wert fp64 nicht unterstützt.

GPU-Messwerte

Darüber hinaus erfasst die integrierte Konfiguration für den Ops-Agent auch agent.googleapis.com/gpu-Messwerte, die von der NVIDIA Verwaltungsbibliothek (NVML) gemeldet werden. Sie benötigen keine zusätzliche Konfiguration im Ops-Agent, um diese Messwerte zu erfassen. Sie müssen jedoch Ihre VM mit angehängten GPUs erstellen und den GPU-Treiber installieren. Weitere Informationen finden Sie unter gpu-Messwerte. Die Messwerte der dcgm-Empfängerversion 1 ergänzen diese Standardmesswerte, während die Messwerte der dcgm-Empfängerversion 2 eigenständig sind.

Konfiguration prüfen

In diesem Abschnitt wird beschrieben, wie Sie prüfen können, ob Sie den NVIDIA DCGM-Empfänger richtig konfiguriert haben. Es kann ein oder zwei Minuten dauern, bis der Ops-Agent Telemetriedaten erfasst.

So prüfen Sie, ob NVIDIA DCGM-Messwerte an Cloud Monitoring gesendet werden:

  1. Rufen Sie in der Google Cloud Console die Seite Metrics Explorer auf.

    Zum Metrics Explorer

    Wenn Sie diese Seite über die Suchleiste suchen, wählen Sie das Ergebnis aus, dessen Zwischenüberschrift Monitoring ist.

  2. Klicken Sie in der Symbolleiste des Bereichs "Query Builder" auf die Schaltfläche  MQL oder  PromQL.
  3. Prüfen Sie, ob MQL im Schalter Sprache ausgewählt ist. Die Sprachschaltfläche befindet sich in derselben Symbolleiste, mit der Sie Ihre Abfrage formatieren können.
    • Geben Sie für v1-Messwerte die folgende Abfrage in den Editor ein und klicken Sie dann auf Ausführen:
      fetch gce_instance
      | metric 'workload.googleapis.com/dcgm.gpu.profiling.sm_utilization'
      | every 1m
      
    • Geben Sie bei v2-Messwerten die folgende Abfrage im Editor ein und klicken Sie dann auf Ausführen:
      fetch gce_instance
      | metric 'workload.googleapis.com/gpu.dcgm.sm.utilization'
      | every 1m
      

Dashboard aufrufen

Damit Sie Ihre NVIDIA-DCGM-Messwerte aufrufen können, müssen Sie ein Diagramm oder ein Dashboard konfiguriert haben. Die NVIDIA-DCGM-Integration enthält ein oder mehrere Dashboards. Alle Dashboards werden automatisch installiert, nachdem Sie die Integration konfiguriert haben und der Ops-Agent mit dem Erfassen von Messwertdaten begonnen hat.

Sie können auch eine statische Vorschau von Dashboards aufrufen, ohne die Integration zu installieren.

So rufen Sie ein installiertes Dashboard auf:

  1. Rufen Sie in der Google Cloud Console die Seite Dashboards auf.

    Dashboards aufrufen

    Wenn Sie diese Seite über die Suchleiste suchen, wählen Sie das Ergebnis aus, dessen Zwischenüberschrift Monitoring ist.

  2. Wählen Sie den Tab Dashboard-Liste und dann die Kategorie Integrationen aus.
  3. Wählen Sie den Namen des Dashboards aus, das Sie aufrufen möchten.

Wenn Sie eine Integration konfiguriert haben, das Dashboard jedoch nicht installiert ist, prüfen Sie, ob der Ops-Agent ausgeführt wird. Wenn im Dashboard keine Messwertdaten für ein Diagramm vorhanden sind, schlägt die Installation des Dashboards fehl. Nachdem der Ops-Agent mit dem Erfassen von Messwerten begonnen hat, wird das Dashboard für Sie installiert.

So rufen Sie eine statische Vorschau des Dashboards auf:

  1. Öffnen Sie in der Google Cloud Console die Seite Einbindungen:

    Zu „Integrationen“

    Wenn Sie diese Seite über die Suchleiste suchen, wählen Sie das Ergebnis aus, dessen Zwischenüberschrift Monitoring ist.

  2. Klicken Sie auf den Filter für die Deployment-Plattform Compute Engine.
  3. Suchen Sie den Eintrag für NVIDIA DCGM und klicken Sie auf Details ansehen.
  4. Wählen Sie den Tab Dashboards aus, um eine statische Vorschau aufzurufen. Wenn das Dashboard installiert ist, können Sie es aufrufen. Klicken Sie dazu auf Dashboard aufrufen.

Weitere Informationen zu Dashboards in Cloud Monitoring finden Sie unter Dashboards und Diagramme.

Weitere Informationen zur Verwendung der Seite Integrationen finden Sie unter Integrationen verwalten.

DCGM-Einschränkungen und Profilerstellung pausieren

Die gleichzeitige Verwendung von DCGM kann zu einem Konflikt mit anderen NVIDIA-Entwicklertools wie Nsight Systems oder Nsight Compute führen. Diese Einschränkung gilt für NVIDIA A100- und frühere GPUs. Weitere Informationen finden Sie unter Profilerstellungsrate im DCGM-Featureübersicht.

Wenn Sie Tools wie Nsight Systems ohne wesentliche Unterbrechung verwenden müssen, können Sie die Messwerterfassung vorübergehend anhalten oder fortsetzen. Dazu verwenden Sie folgende Befehle:

dcgmi profile --pause
dcgmi profile --resume

Wenn die Profilerstellung pausiert ist, wird keiner der DCGM-Messwerte, die der Ops-Agent erfasst, von der VM ausgegeben.

Nächste Schritte

Eine Anleitung zur Installation von Ops-Agent mit Ansible zum Konfigurieren einer Drittanbieteranwendung und zum Installieren eines Beispieldashboards finden Sie im Video Ops-Agent installieren, um Fehler in Drittanbieteranwendungen zu beheben.