VMware Guest SDK 的 CPU 窃取时间与 CPU 就绪时间不匹配

VMware Guest SDK 的 CPU 窃取时间与 CPU 就绪时间不匹配

我正在使用 VMware Guest SDK 库来找出运行我的应用程序的虚拟机的 CPU 就绪时间。

VMGuestLib_GetCpuStolenMs根据 VMware 文档, vmGuestLib 的方法提供了以下值:

VM 可运行但尚未安排的时间(以毫秒为单位)。

但是,如果我在 vSphere Client 中绘制同一虚拟机的 CPU 就绪时间图表,则会得到不同的值。例如,虽然我在 vSphere Client 中以 20 秒为间隔获得 0 到 22 毫秒之间的 CPU 就绪时间,但使用 VMware Guest SDK 库在(大致)相同的时间跨度内获得 550 到 650 毫秒的偷取时间。

我对过去 20 秒的 CPU 被盗时间的计算如下(伪代码):

oldStolenMs = vmLib.getCpuStolenMs()
sleep_in_seconds(20)
newStolenMs = vmLib.getCpuStolenMs()

stolenMs = newStolenMs - oldStolenMs
// additionally I verify that the elapsed time of the VM is indeed 20s

相关内容