本文档介绍了如何监控使用预留容量创建的 A4X Max、A4X、A4、A3 Ultra 或 A3 Mega Compute Engine 实例。具体而言,本文档介绍了如何使用 Cloud Monitoring 信息中心来识别和排查独立计算实例或 Slurm 集群中的性能瓶颈。使用这些信息中心有助于最大限度地减少工作负载的停机时间和性能问题。
创建或使用预构建的 Monitoring 信息中心来监控独立计算实例或 Slurm 集群时,您可以监控以下内容:
计算实例健康状况
GPU 性能
网络传输效率
块和子块之间的网络效率
机器学习 (ML) 工作负载效率
Straggler 检测
准备工作
在监控工作负载之前,请先完成以下步骤(如果尚未完成):
了解用于监控工作负载的 Google Cloud 服务:
落后者检测功能还会在 Cloud Logging 中提供日志条目。了解 Logging 接口、Logging 保留期限和 Logging 价格。
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
限制
本文档中的指标仅适用于在满足以下所有条件的计算实例上运行的工作负载:
- 计算实例必须创建为独立的 Compute Engine 实例或 Slurm 集群的一部分。
- 计算实例必须是使用预留容量创建的。
- 计算实例必须使用 A4X Max、A4X、A4、A3 Ultra 或 A3 Mega 机器系列。
- 不过,离群点检测也支持使用 A3 Mega 机器系列的虚拟机 (VM) 实例。
如需监控机器学习工作负载指标,您必须为工作负载设置监控。
异常值检测指标还存在以下限制:
所需的角色
如需获得监控 AI Hypercomputer 工作负载的指标所需的权限,请让您的管理员为您授予以下 IAM 角色:
-
如需在 Cloud Monitoring 中查看指标,您需要拥有项目的 Monitoring Editor (
roles/monitoring.editor) -
如需在 Logging 中查看滞后检测日志,请执行以下操作:针对项目的 Logs Viewer (
roles/logging.viewer)
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
这些预定义角色包含监控 AI Hypercomputer 工作负载的指标所需的权限。如需查看所需的确切权限,请展开所需权限部分:
所需权限
如需监控 AI Hypercomputer 工作负载的指标,需要以下权限:
-
查看信息中心:项目的
monitoring.dashboards.get权限 -
创建信息中心:项目的
monitoring.dashboards.create权限 -
如需查看日志条目:针对项目的
logging.logEntries.list权限
可用指标
根据您的使用场景,以下指标可用于监控计算实例和 Slurm 集群:
如需监控附加到计算实例的 GPU 的运行状况、性能和网络性能,请参阅基础架构指标。
如需监控机器学习工作负载中 GPU 的效率,请参阅机器学习工作负载指标。
如需监控性能缓慢的机器学习工作负载中疑似拖延的计算实例,请参阅拖延检测指标。
如需了解如何查看这些指标,请参阅本文档中的直观呈现指标。
基础架构指标
如需监控附加到计算实例的 GPU 的健康状况、性能和网络性能,您可以使用以下指标:
如需大致了解 Compute Engine 中的可用指标,请参阅Google Cloud 指标。
GPU 健康指标
如需监控 GPU 的健康状况,请使用以下指标:
| 名称 | 指标类型 | 支持的机器系列 | 说明 |
|---|---|---|---|
| 机器状态 | machine/machine_status |
A4X Max、A4X、A4、A3 Ultra 或 A3 Mega | 计算实例所用机器的健康状况,或机器是否健康状况不佳,需要维修。 |
| NVSwitch 状态 | instance/gpu/nvswitch_status |
A4X Max、A4X、A4、A3 Ultra 或 A3 Mega | 连接到计算实例的 NVIDIA GPU 上的 NVLink 交换机是否遇到问题。 |
| 虚拟机基础架构健康状况 | instance/gpu/infra_health |
A4X、A4、A3 Ultra 或 A3 Mega | 集群、块、子块以及运行计算实例的主机的健康状况。如果此指标显示计算实例的基础设施运行状况不佳,则该指标还会描述相应问题。 |
| 虚拟机故障预测得分 | instance/gpu/failure_prediction_score |
A4X、A4、A3 Ultra 或 A3 Mega |
计算实例所运行的主机在未来 5 小时内性能下降的可能性。此值介于 0.0 到 1.0 之间。如果该值在一段时间内持续接近 1.0,则计算实例的性能可能会下降。在这种情况下,我们建议您将作业移至其他计算实例,如果遇到计算实例问题,请报告其主机存在故障。
|
GPU 性能指标
如需监控 GPU 的性能,请使用以下指标:
| 名称 | 指标类型 | 支持的机器系列 | 说明 |
|---|---|---|---|
| 累积上下文利用率 | instance/gpu/accumulated_context_utilization_seconds |
A4X Max、A4X、A4、A3 Ultra 或 A3 Mega | GPU 忙于处理工作负载的总时间(以秒为单位)。 |
| GPU 功耗 | instance/gpu/power_consumption |
A4X Max、A4X、A4、A3 Ultra 或 A3 Mega | 主机上各个 GPU 的功耗(以瓦特 [W] 为单位,以十进制值表示)。对于附加了多个 GPU 的计算实例,该指标会分别提供主机上每个 GPU 的功耗。 |
| SM 利用率 | instance/gpu/sm_utilization |
A4X Max、A4X、A4、A3 Ultra 或 A3 Mega | 非零值表示 GPU 上的流式多处理器 (SM) 正在被积极使用。 |
| GPU 温度 | instance/gpu/temperature |
A4X Max、A4X、A4、A3 Ultra 或 A3 Mega | 主机上各个 GPU 的温度(以摄氏度 [℃] 为单位,以十进制值表示)。对于挂接了多个 GPU 的计算实例,该指标会分别提供主机上每个 GPU 的温度。 |
| GPU 热边际 | instance/gpu/tlimit |
A4X Max、A4X、A4、A3 Ultra 或 A3 Mega | 单个 GPU 在因温度过高而需要减速之前所具有的散热空间(以摄氏度 [℃] 为单位,以十进制值表示)。对于挂接了多个 GPU 的计算实例,该指标会分别提供主机上每个 GPU 的散热空间。 |
GPU 网络性能指标
如需监控 GPU 的网络性能,请使用以下指标:
| 名称 | 指标类型 | 支持的机器系列 | 说明 |
|---|---|---|---|
| 链接运营商变更 | instance/gpu/link_carrier_changes |
A4X、A4、A3 Ultra 或 A3 Mega | 网络链路载波在一分钟内更改的次数。 |
| 网络 RTT | instance/gpu/network_rtt |
A4X、A4、A3 Ultra 或 A3 Mega | 网络数据在来源和目的地之间往返所需的时间(以微秒为单位)。 |
| 块间网络流量 | instance/gpu/network/inter_block_tx |
A4X、A4、A3 Ultra 或 A3 Mega | 块之间的网络流量字节数。 |
| 子块间的网络流量 | instance/gpu/network/inter_subblock_tx |
A4X、A4、A3 Ultra 或 A3 Mega | 子块之间的网络流量字节数。 |
| 子块内网络流量 | instance/gpu/network/intra_subblock_tx |
A4X、A4、A3 Ultra 或 A3 Mega | 单个子块内的网络流量字节数。 |
| NVLink 有效速度 | instance/gpu/nvlink_active_speed |
A4X Max、A4X、A4、A3 Ultra 或 A3 Mega | 当前接入链路端口速度,以 GBps 为单位。 |
| 吞吐量 Rx 字节数 | instance/gpu/throughput_rx_bytes |
A4X、A4、A3 Ultra 或 A3 Mega | 从网络流量接收的字节数。 |
| 吞吐量 TX 字节数 | instance/gpu/throughput_tx_bytes |
A4X、A4、A3 Ultra 或 A3 Mega | 传输到网络流量的字节数。 |
GPU 严重错误指标
如需监控 GPU 遇到的可能会导致计算实例停止或对其性能产生负面影响的错误,请使用以下指标:
| 名称 | 指标类型 | 支持的机器系列 | 说明 |
|---|---|---|---|
| NVLink 运行时错误 | instance/gpu/nvlink_runtime_error |
A4X Max 或 A4X | 是否发生了 NVLink 运行时错误。 |
| 无法更正的 DRAM ECC 错误 | instance/gpu/dram_uncorrectable_ecc_error_count |
A4X Max 或 A4X | GPU 动态随机存取存储器 (DRAM) 中无法纠正的纠错码 (ECC) 的数量。 |
| 不可更正的 DRAM 行重映射计数 | instance/gpu/dram_uncorrectable_row_remapping_count |
A4X Max 或 A4X | GPU DRAM 中因无法纠正的错误而导致的行重映射次数。 |
| 无法更正的 DRAM 行重映射失败 | instance/gpu/dram_row_remapping_failed |
A4X Max 或 A4X | GPU DRAM 中的行重映射是否因以下问题之一而失败:
|
| 无法纠正的 PCIe 错误 | instance/gpu/pcie_fatal_error_count |
A4X Max 或 A4X | 不可纠正的外部设备互联高速 (PCIe) 错误数。 |
| 无法纠正的缓存 ECC 错误 | instance/gpu/cache_uncorrectable_ecc_error_count |
A4X Max 或 A4X | 缓存内存中无法更正的 ECC 数量。 |
机器学习工作负载指标
如需监控机器学习工作负载的效率(具体而言是有效吞吐量),请使用以下指标:
| 名称 | 指标类型 | 支持的机器系列 | 说明 |
|---|---|---|---|
| 有效产出时间 | workload/goodput_time |
A4X、A4、A3 Ultra 或 A3 Mega | 工作负载花费在有效吞吐量活动上的时间(以秒为单位)。这些活动是核心的实用任务,例如模型训练期间的前向或后向传递。 |
| 非有效产出时间 | workload/badput_time |
A4X、A4、A3 Ultra 或 A3 Mega | 工作负载花费在 badput 活动上的时间(以秒为单位)。 这些活动是开销任务,例如加载或预处理用于训练的数据。 |
Straggler 检测指标
通过离群点检测指标,您可以发现并精确定位疑似离群点。 Straggler 是指单点、非崩溃故障,最终会拖慢整个工作负载的速度。
如需监控虚拟机的落后任务检测情况,请使用以下指标:
| 名称 | 指标类型 | 支持的机器系列 | 说明 |
|---|---|---|---|
| 疑似 Straggler | instance/gpu/straggler_status |
A4X、A4、A3 Ultra 或 A3 Mega | 虚拟机是否被怀疑为影响工作负载性能的落后者。我们建议您仅在其他指标表明工作负载存在问题时,才对疑似落后者采取行动。 |
您还可以在 A4X、A4、A3 Ultra 或 A3 Mega 实例的日志条目中查看落后者检测指标。例如,您可以使用以下查询:
| 说明 | 查询 |
|---|---|
| 特定虚拟机的疑似滞后者日志。使用此查询可检查项目中特定工作负载是否存在任何可疑的 Straggler。 |
logName=~ "/logs/compute.googleapis.com%2Fworkload_diagnostic" AND jsonPayload.suspectedStragglersDetection.numNodes > 0 AND jsonPayload.suspectedStragglersDetection.nodes.instanceId="INSTANCE_ID"
将
OR jsonPayload.suspectedStragglersDetection.nodes.instanceId="INSTANCE_ID"
|
| 项目中的所有滞后检测日志。使用此查询可验证在未检测到可疑的滞后任务时,滞后任务检测服务是否正在运行。(由于存在限制,您无法按特定虚拟机过滤日志,以排除可疑的滞后者。) |
|
Straggler 检测指标对于大规模机器学习工作负载特别有用,原因如下:
大规模机器学习工作负载非常容易受到落后任务的影响。大规模机器学习工作负载使用同步和大规模分布式计算。(换句话说,它们具有许多高度相互依赖的组件,这些组件同时运行。)这种架构使得大规模机器学习工作负载非常容易受到单点故障(例如落后者)的影响。
在大规模机器学习工作负载中,很难发现并精确定位 Straggler。 作为参考,请注意单点故障分为两种类型:
停止故障:导致整个系统停止的故障;例如主机错误和维护事件。它们相对比较容易检测和解决。
缓慢失败:导致严重性能下降但不崩溃的失败。它们很难精确定位和调试。
由于 Straggler 的故障速度较慢,因此很难发现和精确定位,尤其是在大规模同步工作负载中。
查看指标
如需查看计算实例和 Slurm 集群的指标,请按如下方式使用监控信息中心:
如需查看基础架构指标和落后任务检测指标,您可以执行以下操作:
如需快速了解基础架构的健康状况和性能,或自定义现有信息中心,请使用预构建的信息中心。
如需满足特定的监控需求,请创建自定义信息中心。
如需查看机器学习工作负载指标,请参阅有关如何为工作负载设置监控的文档。
如需查看异常检测日志,请查看异常检测日志。
如果您在使用信息中心时遇到问题,请参阅排查性能缓慢问题。
使用预构建的信息中心
您可以使用为 AI Hypercomputer 预建的 Monitoring 信息中心来查看计算实例和 Slurm 集群的指标。您还可以复制预建的信息中心,然后根据自己的需求进行修改。
如需使用 AI Hypercomputer 的预建信息中心,请执行以下操作:
-
在 Google Cloud 控制台中,前往 信息中心页面:
如果您使用搜索栏查找此页面,请选择子标题为监控的结果。
在名称列中,根据要查看的指标点击以下某个信息中心的名称:
如需监控计算实例健康状况、GPU 性能和落后者检测,请使用 Cluster Director 健康状况监控信息中心。
如需详细了解如何使用这些指标来识别和分析问题,您还可以使用 GCE 互动式剧本 - 集群 Director 健康状况监控剧本信息中心。
如需监控网络传输效率,请使用Cluster Director 传输效率信息中心。
如需监控块和子块之间的网络效率,请使用 Cluster Director Block Network 信息中心。
如需详细了解如何使用这些指标来识别和分析问题,请使用 GCE 互动式剧本 - Cluster Director 阻止网络剧本信息中心。
系统会打开所选信息中心的详情页面。您可以使用工具栏中的时间范围选择器更改数据的时间范围。
可选:如需复制信息中心并根据需要进行自定义,请点击 复制信息中心。
创建自定义信息中心
如需创建自定义 Monitoring 信息中心,请执行以下操作:
选择要监控的指标。如果您尚未这样做,请参阅本文档中的可用指标。
查看 Straggler 检测日志
如需使用Logs Explorer查看落后者检测日志,请完成以下步骤:
-
在 Google Cloud 控制台中,前往 Logs Explorer 页面:
如果您使用搜索栏查找此页面,请选择子标题为 Logging 的结果。
默认情况下,该页面会查询项目中的所有日志。点击停止查询。
使用工具栏中的时间范围选择器选择要分析的时间范围。
在查询窗格中,输入用于检测滞后日志的查询。
点击 Run Query。
以下是落后者检测日志条目的示例。
{
...
"jsonPayload": {
...
"@type": "type.googleapis.com/ml.aitelemetry.performancedebugging.output.NetworkStragglersOutput",
"suspectedStragglersDetection": {
"numNodes": 4,
"nodes": [
{
"latencyMs": 9,
"instanceId": "INSTANCE_ID_1"
},
{
"latencyMs": 9,
"instanceId": "INSTANCE_ID_2"
},
{
"instanceId": "INSTANCE_ID_3",
"latencyMs": 4
},
{
"instanceId": "INSTANCE_ID_4",
"latencyMs": 0
}
],
"message": "Suspected stragglers detected."
}
},
"resource": {
"type": "project",
"labels": {
"project_id": "PROJECT_NUMBER"
}
},
...
"severity": "INFO",
"logName": "projects/PROJECT_ID/logs/compute.googleapis.com%2Fworkload_diagnostic",
...
}
该日志条目包含以下字段:
numNodes:项目中检测到的疑似落后计算实例的数量。在此示例中,系统检测到 4 个疑似落后计算实例。instanceId:被检测为疑似落后者的计算实例的 ID。