我已经在Linux HyperV VM上运行了CPU压力testing。 Linux报告CPU利用率为100%,但是“Hyper-V虚拟机pipe理程序虚拟处理器(*)\%总运行时间”度量指标大约为60-70%。
是否有可能获得来宾系统的“真正的”CPU利用率? 如何使“Hyper-Vpipe理程序虚拟处理器(*)\%总运行时间”100%?
我可以想到你的问题的两种不同的解释:
1)Linux VM空闲多less时间?
2)Linux VM运行代码有多less时间?
问题1的答案是您的Linux VM不是空闲的。 Linux认为它是100%繁忙的事实意味着它闲置了0%的时间。
问题2的答案是60-70%。 你的Linux虚拟机的VP是60-70%的时间运行的。
也许你会问第三个问题:为什么我的Linux虚拟处理器只能运行60-70%的时间?
要回答这个问题,你必须考虑其他因素。 也许还有其他的虚拟机在消耗时间。 也许Linux虚拟机没有安装半虚拟驱动程序(集成组件),并且它的VP正在暂停,因为它们试图与“完全虚拟化”的硬件进行交互,这意味着它们正在尝试执行I / O和其他操作这种方式对于物理机器来说是适当的,而且pipe理程序花费时间模拟这些物理机器方面。
您可以在“\ Hyper-V虚拟机pipe理程序逻辑处理器(_Total)\%总运行时间”(LPTR)上find主机上的物理核心使用情况,
如果你有更多的虚拟处理器比逻辑处理器(核心),他们将上下文切换,你得到低虚拟使用; 不要超额订购处理器。 虚拟机pipe理程序的开销很小,因此您需要一个或两个以上的虚拟CPU来达到100%的虚拟机使用率。
考虑在裸机上运行这个负载testing作为比较。 这将显示100%在处理器上的样子。