人为产生 CPU 窃取

人为产生 CPU 窃取

有人知道人工生成 CPU 窃取的好方法吗?我想测试一些由 CPU 窃取触发的自动化功能,但我无论如何也想不出如何强制执行 CPU 窃取。我已将虚拟机的 CPU 利用率设定为 100%,但未发生任何窃取。我无法控制主机,因此我不能只加载一堆虚拟机并以此方式获得 CPU 窃取。

有人有什么想法吗?将不胜感激。

答案1

如果无法访问主机,您将永远无法控制这种情况。(或者无法预测您的虚拟机将与其他虚拟机共享资源并竞争到主机上出现争用问题的程度。)

CPU 窃取时间定义

窃取时间是指虚拟机管理程序正在为另一个虚拟处理器提供服务时虚拟 CPU 等待真实 CPU 的时间百分比。

您需要向主机添加同样以接近最大容量工作的其它虚拟机(或者将虚拟机重新定位到较小的主机上),这样主机才有理由让其它虚拟机从您的虚拟机中窃取资源。

即使同一主机上的其他虚拟机并非完全空闲,如果主机拥有足够的冗余处理器来为虚拟机在任意给定时刻所拥有的较少数量的 vCPU 提供服务,那么您就可以全天候运行虚拟机并且不会看到任何窃取时间的情况。

例如,如果您的 VM 有 4 个 vCPU,而我的主机有 32 个核心/处理器,那么您可能永远不会看到任何窃取行为,因为在任何时候为您弱小的 VM 提供 4 个 vCPU 对于我强大的主机来说都不算什么大问题。

低资源争用=低窃取时间。

编辑:您可能对我的另一篇类似的 Serverfault 帖子感兴趣:

Windows 中是否存在与 Unix 中的‘CPU 窃取时间’相当的功能?

相关内容