Erfahren Sie mehr über NVIDIA GPU-Metriken zur Optimierung der GPU-Leistung und -Auslastung in Azure Kubernetes Service (AKS)

Eine effiziente Platzierung und Optimierung von GPU-Workloads erfordert häufig Einblicke in die Ressourcenauslastung und Leistung. Verwaltete GPU-Metriken auf AKS (Vorschau) bieten eine automatisierte Erfassung und Darstellung der GPU-Auslastung, des Arbeitsspeichers und der Leistungsdaten in NVIDIA-GPU-fähigen Knotenpools. Auf diese Weise können Plattformadministratoren Clusterressourcen und Entwickler optimieren, um Workloads mit eingeschränkter manueller Instrumentierung zu optimieren und zu debuggen.

In diesem Artikel erfahren Sie mehr über GPU-Metriken, die vom NVIDIA Data Center GPU Manager (DCGM)-Exporter mit einem vollständig verwalteten GPU-fähigen Knotenpool (Vorschau) in Azure Kubernetes Service (AKS) gesammelt werden.

Von Bedeutung

AKS-Vorschaufunktionen sind auf Selbstbedienungsbasis und freiwillig verfügbar. Vorschauversionen werden „im Istzustand“ und „wie verfügbar“ bereitgestellt und sind von den Service Level Agreements und der eingeschränkten Garantie ausgeschlossen. AKS-Vorschauversionen werden teilweise vom Kundensupport auf Grundlage der bestmöglichen Leistung abgedeckt. Daher sind diese Funktionen nicht für die Verwendung in der Produktion vorgesehen. Weitere Informationen finden Sie in den folgenden Supportartikeln:

Voraussetzungen

Überprüfen, ob verwaltete GPU-Komponenten installiert sind

Vergewissern Sie sich nach dem Erstellen Ihres verwalteten NVIDIA GPU-Knotenpools (Vorschau) gemäß diesen Anweisungen, dass die GPU-Softwarekomponenten mit dem Befehl az aks nodepool show installiert wurden.

az aks nodepool show \
    --resource-group <resource-group-name> \
    --cluster-name <cluster-name> \
    --name <node-pool-name> \

Ihre Ausgabe sollte die folgenden Werte einschließen:

  ...
  "gpuProfile": {
      "driver": "Install",
      "driverType": "",
      "nvidia": {
          "managementMode": "Managed",
          ...
          ...
      }
  },
...
...

Anpassen des Scraping von GPU-Metriken in Azure Managed Prometheus

Erstellen und Anwenden einer ConfigMap, die ein Scraping-Profil für NVIDIA GPU-Metriken aus dcgm-exporter im Azure Monitor-Agent im namespace kube-system ermöglicht, ähnlich wie folgt:

cat <<EOF | kubectl create -f -
kind: ConfigMap
apiVersion: v1
data:
  schema-version:
    v1
  config-version:
    ver1
  default-scrape-settings-enabled: |-
    dcgmexporter = true
metadata:
  name: ama-metrics-settings-configmap
  namespace: kube-system
EOF

Note

Nachdem diese ConfigMap einmal auf den AKS-Cluster angewendet wurde, werden alle vorhandenen und neuen NVIDIA GPU-Knotenpools, die dem Cluster hinzugefügt werden, automatisch verschrottet.

Automatisches Abrufen von GPU-Metriken in von Azure verwaltetem Prometheus deaktivieren

Um das Scraping von NVIDIA DCGM-Metriken durch den vom Azure Monitor verwalteten Prometheus-Agenten (AMA) zu deaktivieren, bearbeiten Sie die entsprechende ConfigMap. Ihre GPU-Workloads sind nicht betroffen.

Führen Sie den folgenden Befehl aus:

kubectl edit configmap ama-metrics-settings-configmap -n kube-system

Aktualisieren Sie die dcgmexporter-Einstellung von true zu false.

...
...
default-scrape-settings-enabled: |-
  dcgmexporter = false
...
...

NVIDIA DCGM-Metriken werden nicht mehr im Azure Monitor- oder Metrik-Explorer angezeigt.

Überwachen von GPU-Metriken im Azure-Portal

  1. Nachdem Sie einen Azure Monitor-Arbeitsbereich für den AKS-Cluster erstellt haben, Wechseln Sie zum portal Azure und öffnen Sie Azure Monitor>Dashboards mit Grafana in Ihrem Azure Monitor Arbeitsbereich.

  2. Filtern Sie mithilfe der Suchleiste nach dem Kubernetes | NVIDIA GPU DCGM Exporter Grafana-Dashboard mit dem Azure-managed-Tag.

  3. Wählen Sie dieses Dashboard aus und vergewissern Sie sich, dass die ausgewählten Cluster und Prometheus Datasource Ihren GPU-fähigen Knotenpools entsprechen. Sie können nun die GPU-Metriken in Echtzeit anzeigen, wie in der folgenden Abbildung dargestellt:

Screenshot des Dashboards für AKS-verwaltete GPU-Metriken.

Grundlegendes zu GPU-Metriken

GPU-Auslastungsmetriken

GPU-Auslastungsmetriken zeigen den Prozentsatz der Zeit an, in der die GPU-Kerne aktiv verarbeitet werden. Hohe Werte deuten darauf hin, dass die GPU stark verwendet wird, was in der Regel für Workloads wie Schulungen oder Datenverarbeitung wünschenswert ist. Die Interpretation dieser Metrik sollte den Typ der Arbeitsauslastung berücksichtigen: KI-Training hält die Auslastung in der Regel hoch, während Rückschließen aufgrund von Spitzen im Datenverkehr zu einer zeitweiligen Auslastung führen kann.

Arbeitsspeicherauslastung: Zeigt den Prozentsatz des verwendeten GPU-Speichers an. Eine hohe Speicherauslastung ohne hohe GPU-Auslastung kann auf speichergebundene Workloads hinweisen, bei denen die GPU auf Speicherübertragungen wartet. Geringe Arbeitsspeicherauslastung kann darauf hindeuten, dass die Arbeitslast zu klein ist, um die GPU voll auszunutzen.

SM (Streaming Multiprocessor) Effizienz: Bewertet, wie effizient die Kerne der GPU genutzt werden. Eine geringe SM-Effizienz weist darauf hin, dass Kerne aufgrund von Workloadungleichgewicht oder suboptimalem Kerneldesign leer oder unterlastet sind. Hohe Effizienz ist ideal für rechenintensive Anwendungen.

Speichermetriken

Speicherbandbreitenauslastung: Gibt an, wie viel der theoretischen Speicherbandbreite verbraucht wird. Eine hohe Bandbreitenauslastung mit geringer Computeauslastung kann auf eine speichergebundene Workload hinweisen. Umgekehrt schlägt eine hohe Auslastung sowohl bei der Compute- als auch bei der Speicherbandbreite eine ausgewogene Arbeitsauslastung vor.

Speicherfehler: Verfolgt ECC-Fehler (Error Correcting Code), wenn aktiviert. Eine hohe Anzahl von Fehlern kann auf Hardwarebeeinträchtigungen oder thermische Probleme hinweisen und auf Zuverlässigkeit überwacht werden.

Temperatur- und Leistungsmetriken

GPU-Temperatur: Gibt die Betriebstemperatur der GPU an. Anhaltende hohe Temperaturen können eine thermische Drosselung auslösen, wodurch die Leistung reduziert wird. Die ideale Interpretation dieser Metrik umfasst die Beobachtung der Temperatur im Verhältnis zu den thermischen Grenzwerten und der Kühlkapazität der GPU.

Energienutzung: Zeigt sofortige Stromaufnahme an. Der Vergleich der Energienutzung mit TDP (Thermal Design Power) hilft zu verstehen, ob die GPU an ihre Grenzen geschoben wird. Plötzliche Stromverluste können auf Drosselung oder Unternutzung hinweisen.

Uhren und Frequenzmetriken

GPU-Takt: Die tatsächliche Betriebshäufigkeit der GPU. Kombiniert mit der Auslastung hilft dies, zu bestimmen, ob die GPU gedrosselt wird oder im Vergleich zu ihrem Potenzial eine unterdurchschnittliche Leistung erbringt.

Speicheruhr: Betriebshäufigkeit des GPU-Speichers. Speichergebundene Workloads können von höheren Speichertakten profitieren; ein Ungleichgewicht zwischen Speicher- und Rechenauslastung kann Engpässe aufzeigen.

PCIe-Bandbreite: Misst den Durchsatz über den PCIe-Bus. Eine geringe Auslastung mit intensiven Workloads kann suggerieren, dass die CPU-GPU-Kommunikation keinen Engpass darstellt. Eine hohe Auslastung könnte auf Datenübertragungseinschränkungen verweisen, die sich auf die Leistung auswirken.

NVLink-Bandbreite: Diese Metrik ähnelt der PCIe-Bandbreite, aber spezifisch für NVLink-Verbindungen und relevant in Multi-GPU-Systemen für die gpuübergreifende Kommunikation. Hohe NVLink-Nutzung mit geringer SM-Auslastung kann auf Synchronisierungs- oder Datenübertragungsverzögerungen hinweisen.

Fehler- und Zuverlässigkeitsmetriken

Eingestellte Seiten und XID-Fehler: Verfolgen Sie GPU-Speicherfehler und kritische Fehler. Häufige Vorkommen potenzieller Hardwarefehler signalisieren die Notwendigkeit von Aufmerksamkeit für langfristig laufende Workloads.

Interpretationsleitfaden

DCGM-Metriken sollten kontextbezogen mit dem Typ Ihrer Workload auf AKS interpretiert werden. Eine rechenintensive Workload sollte idealerweise eine hohe GPU- und SM-Auslastung, eine hohe Speicherbandbreitennutzung, stabile Temperaturen unterhalb den Drosselungsschwellenwerten und eine Leistungsaufnahme nahe, aber unter der TDP zeigen.

Speichergebundene Workloads zeigen möglicherweise eine hohe Speicherauslastung und Bandbreite, aber eine geringere Computeauslastung an. Anomalien wie geringe Auslastung mit hoher Temperatur oder Stromverbrauch deuten häufig auf Drosselung, ineffiziente Planung oder Engpässe auf Systemebene hin.

Das Überwachen von Trends im Laufe der Zeit und nicht einzelne Momentaufnahmen ist wichtig. Plötzliche Auslastungseinbußen oder Spitzen bei Fehlern zeigen häufig zugrunde liegende Probleme auf, bevor sie sich auf Produktionsworkloads auswirken. Das Vergleichen von Metriken über mehrere GPUs hinweg kann auch dazu beitragen, Ausreißer oder fehlverhaltende Geräte in einem Knotenpool zu identifizieren. Das Verständnis dieser Metriken in Kombination und nicht in isolation bietet den deutlichsten Einblick in die GPU-Effizienz und die Arbeitsauslastungsleistung.

Allgemeine GPU-Metriken

Die folgenden NVIDIA DCGM-Metriken werden häufig für die Leistung von GPU-Knotenpools auf Kubernetes ausgewertet:

GPU-Metrikname Bedeutung Typischer Bereich /Indikator Verwendungstipp
DCGM_FI_DEV_GPU_UTIL GPU-Auslastung (% Zeit GPU-Kerne sind aktiv) 0–100% (höher ist besser) Überwachen Sie jeden Knoten und jeden Pod; niedrige Werte können auf Engpässe bei der CPU oder der E/A hinweisen.
DCGM_FI_DEV_SM_UTIL Streaming Multiprozessoreffizienz (% aktiven Kerne) 0–100% Niedrige Werte mit hoher Arbeitsspeicherauslastung deuten auf eine speichergebundene Workload hin.
DCGM_FI_DEV_FB_USED Verwendeter Framebuffer-Speicher (Bytes) 0 bis Gesamtspeicher Verwenden von Pod-GPU-Speicherbeschränkungen und Nachverfolgen der Speicherauslastung pro Pod
DCGM_FI_DEV_FB_FREE Freier GPU-Speicher (Bytes) 0 bis Gesamtspeicher Nützlich für die Planung und vermeidung von OOM-Fehlern
DCGM_FI_DEV_MEMORY_UTIL Arbeitsspeicherauslastung (%) 0–100% Kombinieren Sie dies mit der GPU- und SM-Auslastung, um speichergebundene Workloads zu ermitteln.
DCGM_FI_DEV_MEMORY_CLOCK Aktuelle Speicheruhrfrequenz (MHz) 0 bis max. Speichertakt Niedrige Werte bei hoher Speicherauslastung können auf Drosselung hinweisen.
DCGM_FI_DEV_POWER_USAGE Sofortige Energienutzung (Watt) 0 bis TDP Abnahmen bei hoher Auslastung können auf Drosselung der Leistung hinweisen
DCGM_FI_DEV_TEMPERATURE GPU-Temperatur (°C) ~30–85°C Normalbereich Warnung bei anhaltenden hohen Temperaturen
DCGM_FI_DEV_NVLINK_RX NVLink Empfangene Bandbreitenauslastung (%) 0–100% Multi-GPU-Synchronisierungsengpässe bei hoher Auslastung und geringer SM-Auslastung
DCGM_FI_DEV_XID_ERRORS Vom Treiber gemeldete GPU-kritische Fehler Normalerweise 0 Sofortige Untersuchung erforderlich; kann Knoten in Kubernetes beschädigen

Weitere Informationen zu den vollständigen GPU-Metriken finden Sie in der NVIDIA DCGM Upstream-Dokumentation.

Nächste Schritte