监控 Windows 虚拟机上的 GPU 性能


为了帮助提高资源利用率,您可以跟踪虚拟机 (VM) 实例的 GPU 利用率。

在了解 GPU 利用率之后,您可以执行多项任务,如设置可用于自动扩缩资源的代管式实例组

如需使用 Cloud Monitoring 查看 GPU 指标,请完成以下步骤:

  1. 在每个虚拟机上,设置 GPU 指标报告脚本。此脚本会安装 GPU 指标报告代理。此代理会在虚拟机上定期运行来收集 GPU 数据,并将这些数据发送到 Cloud Monitoring。
  2. 在每个虚拟机上,运行脚本
  3. 在每个虚拟机上,将 GPU 指标报告代理设置为在引导时自动启动
  4. 在 Google Cloud Cloud Monitoring 中查看日志

设置 GPU 指标报告脚本

要求

检查每个虚拟机都满足以下要求:

下载脚本:

以管理员身份打开 PowerShell 终端,并使用 Invoke-WebRequest 命令下载脚本。

Invoke-WebRequest 适用于 PowerShell 3.0 或更高版本。 Google Cloud 建议您使用 ctrl+v 来粘贴复制的代码块。

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

运行脚本

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

将代理配置为在引导时自动启动

如需确保将 GPU 指标报告代理设置为在系统启动时运行,请使用以下命令将该代理添加到 Windows 任务计划程序。

$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

在 Cloud Monitoring 中查看指标

  1. 在 Google Cloud Console 中,转到 Metrics Explorer 页面。

    转到 Monitoring

  2. 展开选择指标菜单。

  3. 资源菜单中,选择虚拟机实例

  4. Metric category(指标类别)菜单中,选择自定义

  5. 指标菜单中,选择要用于绘制图表的指标。例如 custom/instance/gpu/utilization

  6. 点击应用

    您的 GPU 利用率应与以下输出内容类似:

    Cloud Monitoring 启动。

可用指标

指标名称 说明

instance/gpu/utilization

在上一个采样周期内,一个或多个内核在 GPU 上执行的时间所占的百分比。

instance/gpu/memory_utilization

在上一个采样周期内,读取或写入全局(设备)内存的时间所占的百分比。

instance/gpu/memory_total

已安装 GPU 总内存。

instance/gpu/memory_used

活跃上下文分配的总内存。

instance/gpu/memory_used_percent

活跃上下文分配的总内存百分比。范围是 0 - 100。

instance/gpu/memory_free

可用总内存。

instance/gpu/temperature

核心 GPU 温度(以摄氏度 (°C) 为单位)。

后续步骤