设置多于1个cpu /内核的VM是否会真正提高性能?


11

使用VMware工作站时,可以将VM设置为具有多个内核。我实际上是在具有双核和4个逻辑核的机器上使用它。那么,通过在VM上使用更多内核,我真的可以提高VMS性能吗?


3
调整虚拟guest虚拟机的大小时,需要记住一件事:如果它可以使安装在真实计算机上受益,那么它将作为虚拟机受益,反之亦然。最重要的是:仅仅因为您虚拟化了某些东西,系统或应用程序需求就不会发生任何神奇的事情
罗伯·摩尔

Answers:


8

这取决于VM所运行的内容,只要客户机具有有效地利用多个CPU的能力,则在具有n个核数的计算机上的guest虚拟机在分配的n-1个核上将表现最佳。不幸的是,确定此问题的最简单方法是尝试一下。我通常从2开始,直到性能用尽时停止。我通常会在2个核心中看到“最佳点”。我遇到过的应用/操作系统组合很少能比这更好地扩展。


6

为了澄清,您是说您有一个双核CPU,并且在VM上分配了4个虚拟CPU?

在这种情况下,不会;如果分配的vCPU数量超过物理执行内核的数量,则实际上会发现性能略有下降,这是由于在4个虚拟内核之间共享2个物理内核(以及物理主机上运行的所有组件)的开销。

通过为VM分配2个vCPU,您将看到VM的最佳性能。


不一定-只有在VM上运行的应用程序能够利用多核系统时,您才真正看到提高的性能。不幸的是,即使在2011年,许多应用程序也没有。
EEAA 2011年

@ErikA公平点-除了应用程序线程,我只是说只有2个物理内核,单个VM上的2个vCPU总是比4个vCPU更好。
Shane Madden

是的,在这一点上100%同意。
EEAA 2011年

5

我们进行了一段时间的实验(请看一年前的问题),在具有超线程功能的四核CPU中从物理核心分配vCPU,而在逻辑核心(线程)分配vCPU(似乎有8个可分配的vCPU可用)。正如我当时提出的答案所建议的那样(而我们的经验也很枯燥),您应该为每个来宾分配尽可能少的内核数,以使其能够执行。

当分配的vCPU数量超过主机上可用的物理内核时,如果来宾同时处于负载状态,则超线程在切换线程之间的CPU上下文以有效模拟另一个CPU方面并不总是足够快。这会给所有来宾带来非常讨厌的事情,包括锁定和超时,这可能需要重新启动,fsck,甚至更糟。即使没有发生这种情况,客人的性能通常也会变慢,而不是更快。

就像@Chris S当时在其评论中所说的那样,“总是分配尽可能少的资源,这样可以避免头疼。”

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.