设置具有超过 1 个 CPU / 核心的虚拟机实际上会提高性能吗?

设置具有超过 1 个 CPU / 核心的虚拟机实际上会提高性能吗?

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

答案1

这取决于虚拟机正在运行什么,只要虚拟机能够有效利用多个 CPU,具有 n 个内核的机器上的虚拟机在分配 n-1 个内核时性能最佳。不幸的是,确定这一点的最简单方法是尝试一下。我通常从 2 个内核开始,当性能提升用完时停止。通常,2 个内核是我认为的“最佳点”。我遇到的应用程序/操作系统组合很少能比这更好。

答案2

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

在这种情况下,不是的;如果您分配的 vCPU 数量多于物理执行核心数量,您实际上会看到性能略有下降,这是由于在 4 个虚拟核心之间共享 2 个物理核心的开销(加上物理主机上运行的所有内容)。

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

答案3

我们不久前做过实验(参见我一年前提出的问题) 分配物理核心的 vCPU 与分配具有超线程的四核 CPU 中的逻辑核心(线程)(似乎有 8 个可分配的 vCPU)。正如我当时得到的答案所建议的那样——我们的经验也证实了这一点——您应该为每个客户分配最少的核心数量以使其能够正常运行。

当分配的 vCPU 数量超过主机上可用的物理核心数量时,如果客户机同时处于负载状态,超线程在线程之间切换 CPU 上下文以有效模拟另一个 CPU 时并不总是足够快。这可能导致所有客户机出现非常糟糕的情况,包括锁定和超时,可能需要重新启动、fsck,甚至更糟的是堆栈。即使这些事情没有发生,客户机的性能通常也会变慢而不是变快。

正如@Chris S 当时在他的评论中所说的那样,“总是分配尽可能少的资金,这样你就可以避免大麻烦。”

相关内容