如何获取 ESXI 主机上每个 VM 的 CPU 使用率

问题描述

我想获取托管在 VMware ESXI 主机上的每个虚拟机的 cpu 使用率(累积)。

我尝试使用 Power CLI 命令“Get-VMHost”,但它仅提供 ESXI 主机的总体 cpu 使用率。

解决方法

对于 CPU 使用,esxtop 是一个非常强大的 ESX 命令,您必须在 CLI 中运行它。我没有使用 Power CLI,所以我不确定它是否在那里可用,但它肯定在 VMware 试图阻止您使用的 CLI 中可用(请参阅 https://kb.vmware.com/s/article/2004746)。最新版 vSphere 的 esxtop 文档位于 https://docs.vmware.com/en/VMware-vSphere/7.0/com.vmware.vsphere.monitoring.doc/GUID-D89E8267-C74A-496F-B58E-19672CAB5A53.html

该文档有点简洁,就获取每个 VM 的 CPU 使用情况而言,esxtop 的旧文档可能会更好地指导您https://www.vmware.com/pdf/esx2_using_esxtop.pdf。特别注意 ESXi(和 ESX)的不同命名法,其中地址空间和执行的主要单位是“世界”而不是“进程”。因此,您希望获得与每个 VM 关联的所有“世界”的 CPU 使用率。有些虚拟机可能只有一个“世界”,有些可能有多个,而且是可配置的。至于 esxtop,它已经永远存在,而且很可能今天仍然可以提供与十多年前使用 ESX 2 相同的功能。