Answers:
该答案中的信息不再正确。在严格的协同计划时代,这是正确的,但现在不再如此。
为了繁荣起见,我保留了以下答案,但请不要依靠它来实现现代虚拟机管理程序的准确性。
你应该从来没有分配所有的内核为vCPU的虚拟机。
如果VM请求任何 CPU时间,则VMWare 必须分配所有 vCPU或不分配任何vCPU。
这意味着,在4核系统上,如果您分配了全部4个核,则只能为主机或来宾分配处理器时间,而不是同时分配处理器时间。
这将绝对破坏两种环境下的性能。
随意分配奇数个内核(例如3)。感觉很奇怪,但这是完全合法的选择。
通常,我分配的vCPU永远不会超过(n / 2)个(在您的情况下为2个)-但是我通常在具有12到32个内核的服务器上分配内核,您可以在其中分配大量vCPU而不会产生重大影响。
正如Nate所说,只要您的VM主要用于运行单线程进程,就没有理由分配多个内核。
但是,如果您打算以可以从更多内核中受益的方式使用它(多线程程序,许多并行程序等),那么情况就更复杂了。以前,我认为为VM使用CPU的一半是个好主意。事实证明,这并不总是最佳的。
确保运行的唯一方法是运行基准测试。我不知道为什么,但是在我的Core2 Quad系统(具有VT-x支持,嵌套分页等)中,实际上使用4个内核中的1个会更好而不是使用2个或更多内核!我只是在VM的启动时间以及编译基准测试中看到了这一点。
与其他硬件结果不同。我也有一个带有8核的i7,并且性能似乎随着那里的核数而更好地扩展(愉快地使用4)。
我的提示:首先对新硬件进行基准测试。
这取决于您要在虚拟机以及物理机上执行的操作。如果您需要在将主机操作系统用于其他活动时使用虚拟机,则最好为VM使用两个处理器核心,以便在VM处于满负荷状态时主机还剩下两个处理器核心。另一方面,如果您主要在VM上工作,则可以使用所有处理器核心。
但是,除非可以要求来宾同时使用所有四个内核,否则您可以在继续在主机OS上工作的同时安全地使用所有这些内核。请记住,当VM进程在主机操作系统上运行时,您始终可以调整它的优先级,并且系统将相应地平衡负载。
是的,我还要说这取决于。但是我会说我喜欢做什么。在工作中,我有一个四核CPU。因此,对于我的虚拟映像(win7),我分配了两个CPU。这样,我可以同时使用主机和虚拟机,它们各自具有相等的CPU资源。