在多核服务器上运行的 Windows 2008 R2 Hyper-V。当我创建新的 VM 时,它默认为 1 个逻辑处理器,而不是最大值 (4)。在哪些情况下我希望我的 VM 在比最大值允许的更少的处理器上运行?对我来说,我希望它尽可能快地运行并在所有可能的处理器上运行似乎是有道理的。
答案1
我已经使用虚拟机多年了,所以这是我的 2 分钱。每个人都有虚拟化的原因……如果你这样做是因为它是最新的流行词,而且杂志说要这样做,那就忘掉它,回到使用物理服务器。现在,如果您进行虚拟化是为了提供冗余,那么不要用尽所有 CPU。在故障转移中,您将需要额外的 CPU 能力。如果您进行虚拟化是因为您有很多小型服务器,并且您想最大限度地利用物理服务器,那么使用 80% 的 CPU……并在一两周内查看配置文件……如果您可以将 4 个 CPU 放在 2 个服务器上,因为它们在不同的时间工作,那就继续吧。现在的问题可能是,如果主机系统开始使用 CPU,而客户机也开始使用它,您会看到一种情况,症状是客户机的 CPU 利用率只有 70%,但就像 100% 一样被绑定。这很糟糕。我希望你说的 4 个 CPU 是指 4 个四核 CPU。减少的话很难看出有什么好处。
答案2
PHGamer 的回答中提到,在虚拟机管理程序层和客户操作系统中使用额外的虚拟处理器是有成本的。当您向虚拟机添加更多虚拟处理器时,这些 VP 都会尝试在客户操作系统中获取和释放锁,从而在一定程度上减慢彼此的速度。虚拟机管理程序中的调度程序也将有更多工作要做,即使在某种程度上,当这些额外的虚拟处理器不忙时也是如此。
因此,如果您希望虚拟机的容量非常动态,请添加大量虚拟处理器,并了解成本。
但是,如果您希望机器以最高效率运行,请不要添加超过工作负载通常需要的虚拟处理器数量。
Multiverse IT 的答案也有一定的相关性,尽管这个问题可以通过对其他虚拟机获得的处理器时间进行保留来部分解决,使得失控的虚拟机更难垄断物理 CPU 时间。
答案3
好吧,如果您同时运行大量虚拟机,那么一个虚拟机占用所有 CPU 会很糟糕,不是吗?
通过 CPU 选择,您可以拥有 4 个虚拟机,每个虚拟机都可以专用访问一个 CPU,而无需发生任何上下文切换。
答案4
哇...您从未见过 Windows、防病毒软件或服务器上的应用程序的更新有问题,最终导致 CPU 使用率过高。您真的希望一次行为不当的更新导致其他服务器瘫痪吗?此外,虽然您的环境可能具有可预测的 CPU 使用率,但其他环境可能会大不相同。与 CrazyDart 类似,虚拟化的原因可能因环境而异。您可能是为了节省电力,也可能是为了更轻松地进行服务器迁移/恢复。您可能是为了集群的高可用性。您可能出于其他原因这样做。您这样做的原因可能会影响 CPU 分配的处理方式。
您还应该注意,SP1 中有一些重大改进。