NVIDIA Data Center GPU Manager (DCGM)

Die NVIDIA Data Center GPU Manager-Integration erfasst wichtige erweiterte GPU-Messwerte aus DCGM, einschließlich Streaming-Multiprozessor-Block-Auslastung (SM), SM-Belegung, SM-Pipe-Auslastung, PCIe-Trafficrate und NVLink-Traffic-Rate. 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.

Der Ops-Agent erfasst DCGM-Messwerte mithilfe der NVIDIA-Clientbibliothek go-dcgm.

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

Vorbereitung

So erfassen Sie 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

Die folgenden Befehle erstellen die Konfiguration zum Erfassen und Aufnehmen von Telemetriedaten für DCGM und starten den Ops-Agent neu:

# 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
  service:
    pipelines:
      dcgm:
        receivers:
          - dcgm
EOF

sudo systemctl restart google-cloud-ops-agent

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 DCGM aufzunehmen, müssen Sie einen Empfänger für die von 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.
type Dieser Wert muss dcgm sein.

Was wird überwacht?

Die folgende Tabelle enthält die Liste der Messwerte, die der Ops-Agent aus dem DCGM-Dienst erfasst. Nicht alle Messwerte sind für alle GPU-Modelle verfügbar. Die Messwerte werden nicht von den NVIDIA GPU-Modellen P100 und P4 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 auf den GPU-Modellen P100 und P4.

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

Außerdem muss die integrierte Konfiguration für den Ops-Agent erhebt auch agent.googleapis.com/gpu Messwerte abrufen, werden von der NVIDIA-Verwaltungsbibliothek (NVML) Sie benötigen keine zusätzliche Konfiguration im Ops-Agent, um Daten zu erfassen diese Messwerte, aber Sie müssen Ihre VM mit angehängten GPUs und GPU installieren Treiber. Weitere Informationen finden Sie unter gpu-Messwerte.

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.
  4. Geben Sie im Editor die folgende Abfrage ein und klicken Sie dann auf Abfrage ausführen:
    fetch gce_instance
    | metric 'workload.googleapis.com/dcgm.gpu.profiling.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.