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

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

    这取决于虚拟机的运行情况,只要guest虚拟机能够有效利用多个CPU,具有n个内核的计算机上的guest虚拟机在分配的n-1个内核上执行效率最高。 不幸的是,确定这个最简单的方法就是试试看。 我通常从2开始,当性能增加不足时停止。 通常2芯是我看到“甜蜜点”的地方。 我遇到的几个应用程序/操作系统组合将会比这更好。

    为了澄清,你说你有一个双核CPU,并且你已经在虚拟机上分配了4个虚拟CPU?

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

    您将通过分配2个vCPU来从VM中看到最佳性能。

    我们前段时间( 从一年前看到我的问题)进行了实验, 从具有超线程技术的四核CPU中分配物理核心的vCPU与逻辑核心(线程)(似乎有8个可分配的vCPU可用)。 正如我回过头来的build议 – 而且我们的经验不足 – 你应该分配给每个客户的最小数量的核心,以允许它执行。

    当分配比主机上可用的物理内核更多的vCPU时,如果客户端正在同时加载,则超线程在切换线程之间的CPU上下文时并不总是足够快以有效地模拟另一个CPU。 这可能会导致所有客人非常讨厌的东西,包括locking和超时,可能需要重新启动,fsck,并在堆栈上更糟糕。 即使这些东西没有发生,对于客人来说性能往往会变慢,而不是更快。

    正如@Chris S在当时的评论中所说:“总是尽可能less分配,避免让人头疼。”