本文档介绍了 Compute Engine 中性能监控单元 (PMU) 的行为、结算和限制。PMU 仅适用于 C4 虚拟机 (VM) 实例。
PMU 是 CPU 核心中的硬件组件,用于监控处理器运行代码的方式。通过在 C4 虚拟机中启用 PMU,您可以在虚拟机上使用性能监控软件来访问 PMU 的性能计数器。这些计数器可帮助您识别并解决虚拟机上运行的软件中的性能问题。此信息有助于优化对性能敏感的工作负载,例如高性能计算 (HPC) 或机器学习 (ML) 工作负载。
PMU 的工作原理
PMU 由一组称为性能监控计数器 (PMC) 的硬件计数器组成。这些计数器是特定于模型的寄存器,用于统计 CPU 中发生的每次低级别处理器事件(例如分支预测错误或缓存未命中)。您可以使用性能监控软件(例如 Intel VTune Profiler)在 PMU 中读取和配置 PMC。
默认情况下,PMU 在虚拟机中处于停用状态。如需启用此功能,请通过启用以下某种 PMU 类型来指定要跟踪的低级 CPU 事件类型:
架构 (
ARCHITECTURAL
):您可以衡量以下架构性能事件:已终止的分支指令数:已终止的分支指令数。使用此事件可衡量代码的执行情况并找出潜在的性能瓶颈。
Branch misses retired:被错误预测的分支指令数量,导致处理器暂停并舍弃提取的指令。如果您看到此事件的数量很高,则可以优化 CPU 性能。
Instructions retired:CPU 成功处理的指令数。使用此事件可衡量 CPU 的指令吞吐量。
自上而下的槽:处理器流水线中用于同时执行指令的可用槽数。使用此事件可了解您的代码在多大程度上高效地使用了处理器的资源。
未暂停的核心周期:线程未暂停(例如,由于电源管理或中断)时的核心周期数。使用此事件可评估处理器的总体使用情况。
未暂停的引用周期:未暂停核心时(例如,提取数据或指令时)的引用周期数。当核心运行
HLT
或MWAIT
指令时,会被暂停。即使处理器的速度发生变化以节省电量,参考周期也会以固定频率运行,从而提供稳定的时间参考。使用此事件可衡量执行任务所用的时间,并找出代码中的性能瓶颈。
标准 (
STANDARD
):您可以衡量 Architectural PMU 类型的所有事件以及 CPU 核心内的所有本地事件,包括第 2 级 (L2) 缓存事件。增强型 (
ENHANCED
):您可以衡量标准 PMU 类型的所有事件,以及 CPU 核心之外的任何本地事件,包括第 3 级 (L3) 缓存事件。
在虚拟机中启用 PMU 后,PMU 会在后台运行,并使用 PMC 持续监控性能事件。您可以选择使用首选的性能监控软件为特定 PMC 配置阈值。如果 PMC 超出指定阈值,PMU 会通知软件。
限制
对于 PMU,存在以下限制:
您只能在指定 Intel Xeon 可扩展处理器 (Emerald Rapids) 第 5 代(C4 虚拟机默认指定)的 C4 虚拟机中启用 PMU。如需查看此 CPU 平台支持的性能事件的完整列表,请参阅 emeraldrapids_core.json。
您只能在配备 96 或 192 个 vCPU 的 C4 机器类型中启用增强型 PMU 类型。
价格
在虚拟机中启用或停用 PMU 不会产生任何费用。
后续步骤
- 了解如何在虚拟机中启用 PMU。