GPU-Leistung auf Windows-VMs überwachen


Zur besseren Ressourcenauslastung können Sie die GPU-Nutzungsraten Ihrer VM-Instanzen verfolgen.

Wenn Sie die GPU-Nutzungsraten kennen, können Sie beispielsweise verwaltete Instanzgruppen einrichten, um Ressourcen automatisch zu skalieren.

Führen Sie die folgenden Schritte aus, um die GPU-Messwerte mit Cloud Monitoring zu prüfen:

  1. Richten Sie auf jeder VM das Berichtsskript für GPU-Messwerte ein. Dieses Skript installiert den Berichts-Agent für GPU-Messwerte. Dieser Agent wird in Intervallen auf der VM ausgeführt, um GPU-Daten zu erfassen und an Cloud Monitoring zu senden.
  2. Führen Sie auf jeder VM das Skript aus.
  3. Legen Sie auf jeder VM fest, dass der Berichts-Agent für GPU-Messwerte automatisch beim Hochfahren startet.
  4. Sehen Sie sich die Logs in Cloud Monitoring an.

Berichtsskript für GPU-Messwerte einrichten

Voraussetzungen

Prüfen Sie auf allen VMs, ob die folgenden Anforderungen erfüllt werden:

Skript herunterladen

Öffnen Sie ein PowerShell-Terminal als Administrator und laden Sie das Skript mit dem Befehl Invoke-WebRequest herunter.

Invoke-WebRequest ist ab PowerShell 3.0 verfügbar. Google Cloud empfiehlt, dass Sie die kopierten Codeblöcke mit ctrl+v einfügen.

mkdir c:\google-scripts
cd c:\google-scripts
Invoke-Webrequest -uri https://raw.githubusercontent.com/GoogleCloudPlatform/compute-gpu-monitoring/main/windows/gce-gpu-monitoring-cuda.ps1 -outfile gce-gpu-monitoring-cuda.ps1

Skript ausführen

cd c:\google-scripts
.\gce-gpu-monitoring-cuda.ps1

Agent so konfigurieren, dass er beim Booten automatisch gestartet wird

Wenn Sie prüfen möchten, ob der Agent für Berichte mit GPU-Messwerten beim Systemstart ausgeführt wird, fügen Sie ihn mit dem folgenden Befehl dem Windows-Aufgabenplaner hinzu.

$Trigger= New-ScheduledTaskTrigger -AtStartup
$Trigger.ExecutionTimeLimit = "PT0S"
$User= "NT AUTHORITY\SYSTEM"
$Action= New-ScheduledTaskAction -Execute "PowerShell.exe" -Argument "C:\google-scripts\gce-gpu-monitoring-cuda.ps1"
$settingsSet = New-ScheduledTaskSettingsSet
# Set the Execution Time Limit to unlimited on all versions of Windows Server
$settingsSet.ExecutionTimeLimit = 'PT0S'
Register-ScheduledTask -TaskName "MonitoringGPUs" -Trigger $Trigger -User $User -Action $Action -Force -Settings $settingsSet

Messwerte in Cloud Monitoring prüfen

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

    Zu Monitoring

  2. Maximieren Sie das Menü Messwert auswählen.

  3. Wählen Sie im Menü Ressource die Option VM-Instanz aus.

  4. Wählen Sie im Menü Messwertkategorie die Option Benutzerdefiniert aus.

  5. Wählen Sie im Menü Messwert den Messwert aus, der dargestellt werden soll. Beispiel: custom/instance/gpu/utilization.

  6. Klicken Sie auf Anwenden.

    Ihre GPU-Auslastung sollte der folgenden Ausgabe entsprechen:

    Cloud Monitoring-Initiierung

Verfügbare Messwerte

Messwertname Beschreibung

instance/gpu/utilization

Prozentsatz der Zeit während des vergangenen Stichprobenzeitraums, in der mindestens ein Kernel auf der GPU ausgeführt wurde.

instance/gpu/memory_utilization

Prozentsatz der Zeit während des vergangenen Stichprobenzeitraums, in der in den globalen Arbeitsspeicher (von Geräten) geschrieben oder aus diesem gelesen wurde.

instance/gpu/memory_total

Der gesamte installierte GPU-Arbeitsspeicher.

instance/gpu/memory_used

Gesamter Arbeitsspeicher, der aktiven Kontexten zugewiesen ist.

instance/gpu/memory_used_percent

Prozentsatz des gesamten Arbeitsspeichers, der von aktiven Kontexten zugewiesen ist. Liegt im Bereich von 1 % bis 100 %.

instance/gpu/memory_free

Insgesamt verfügbarer Speicher.

instance/gpu/temperature

Kern-GPU-Temperatur in Celsius (°C).

Nächste Schritte