AMD CPU
虚拟 PMC 的访问方式与基础物理 CPU 的 PMC 访问方式相同。有关详细信息,请参见《Intel 64 和 IA-32 体系结构软件开发人员手册》和《AMD BIOS 和内核开发人员指南 (BKDG)》。
可以通过 vSphere Web Client 启用虚拟 CPU 性能监控计数器。请参见 Enable Virtual CPU Performance Counters in the vSphere Web Client。
选项 | 描述 |
vpmc.freezeMode=hybrid | 这是默认行为。instructions retired 和 branches retired 事件仅对客户机指令进行计数。当 CPU 执行管理程序指令时,这些事件不会增加。所有其他事件都会增加,无论物理 CPU 代表虚拟机执行客户机指令还是管理程序指令。当虚拟机未在物理 CPU 上调度时,其虚拟 PMC 始终停止增加。通过这种方式,涉及客户机指令的比率的衡量指标可用于计算在虚拟机上执行这些指令的成本。例如,每个周期的指令数 (IPC) 表示物理 CUP 用来执行虚拟机的每个周期停用的客户指令的平均数量。 |
vpmc.freezeMode=guest | 仅当直接在物理 CPU 上执行客户机指令时,所有事件才会增加。当管理程序代码正在执行时,不会增加任何事件。 |
vpmc.freezeMode=vcpu | 当物理 CPU 正在用于代表虚拟机执行客户机代码或管理程序代码时,所有事件都会增加。仅当虚拟机取消调度时,事件才会停止增加。 |
在某些情况下,性能监控计数器无法虚拟化。当主机已在使用物理 CPU 性能计数器用于其他用途(如以下情况)时会出现此情况:
启用虚拟 PMC 功能时,还会在虚拟机在主机间迁移之前执行其他 CPU 兼容性检查。源和目标 CPU 的性能监控事件必须可兼容。源和目标 CPU 上的性能监控事件列表必须相同。一般而言,如果两个 CPU 属于同一微架构,则它们拥有可兼容的性能监控事件。有关每个 CPU 的性能监控事件列表,请参见《Intel 64 和 IA-32 体系结构软件开发人员手册》和《AMD BIOS 和内核开发人员指南 (BKDG)》。此外,要成功迁移虚拟机,源 CPU 上可用的所有计数器也必须在目标 CPU 上可用。
无法在使用 Enhanced vMotion Compatibility 的虚拟机中启用虚拟性能监控计数器。