我刚刚收到了升级的主机计算机,并希望将其中的一些功能推到我的工作站客户操作系统中。特别是,我以前只有一个处理器,带有2个内核,因此我的Guest OS只有1/1。
现在,我只有一个具有8核的处理器,所以我很好奇现在为Guest OS推荐什么?
- 1个处理器/ 4核?
- 2个处理器/ 2个内核?
- 4个处理器/ 1核?
我的直觉是坚持使用物理处理器(或更少)的数量,但这是基于现实吗?我花了很多时间在寻找答案,但是也许我的google-karma今天对我不利。
我刚刚收到了升级的主机计算机,并希望将其中的一些功能推到我的工作站客户操作系统中。特别是,我以前只有一个处理器,带有2个内核,因此我的Guest OS只有1/1。
现在,我只有一个具有8核的处理器,所以我很好奇现在为Guest OS推荐什么?
我的直觉是坚持使用物理处理器(或更少)的数量,但这是基于现实吗?我花了很多时间在寻找答案,但是也许我的google-karma今天对我不利。
Answers:
在我自己的测试中,使用VMWare Workstation,使用最新的GeekBench 3(64位测试),在具有1 cpu,2核(启用HT,因此为4核)的主机上:
主机系统:
虚拟化:
因此,至少在我的测试中,设置虚拟内核数量与物理内核匹配似乎是有好处的。也许我错了。我很想讨论。
我不知道此信息是否仍然有效,但是在不久以前,额外的来宾CPU的扩展能力不及主机CPU。实际上,最好的建议是在来宾配置中保留单个CPU,除非您专门在来宾中测试/调试多线程软件并且需要 SMP环境。
编辑:此答案特定于桌面虚拟化,而不是服务器虚拟化。
我最多给我的来宾OS 2内核。分别执行1个处理器2个内核还是2个处理器1个内核都没有关系。处理器设置是出于兼容性原因。由于内核/处理器进程调度,处理器/内核对于来宾OS的伸缩性不是很好。2核似乎是最佳选择。
在这一点上没有什么区别。在某些情况下,软件许可可能取决于内核或CPU。
虚拟化:1 cpu,1核心:2783 sc,2705 mc 1 cpu,2核心:2758 sc,4271 mc 1 cpu,3核心:2783 sc,5234 mc 1 cpu,4核心:2769 sc,5793 mc因此,至少在我的测试中,设置虚拟内核数量与物理内核匹配似乎有好处。也许我错了。我很想讨论。
仅在使用所有内核的基准测试中。大多数应用程序不使用内核数来线性扩展性能,因为它们只是不使用额外的内核。
添加更多内核也存在一定程度的开销。简而言之,仅添加应用程序需要以所需级别执行的核心数。仅仅因为主机中有4个核心并不意味着每个VM都应该拥有4个核心。
在我管理的许多环境中,我们有双10个核心CPU和总共40个逻辑线程,而我的域控制器仍然只有两个核心。
到目前为止,这些常见问题尚未得到完全回答,我感到非常震惊。您的主机CPU应该支持某些虚拟化技术,例如Intel VTx。这使您可以将CPU的全部功能“隧穿”到客户机操作系统中。否则,由于CPU的仿真,速度将大大降低。如果您的CPU具有超线程功能,则应该在主机的设备管理器中看到8个处理器用于一个四核CPU(超线程会使内核数量增加一倍)。在这种情况下,您可以为来宾操作系统分配1个具有4个内核的处理器。只要您的系统中没有其他物理处理器,就不要为虚拟机分配多个处理器。您可以根据需要为来宾操作系统分配更多或更少的核心,但您不应该 •分配一个比您的超线程内核更高的值。但请注意,您的主机还需要一些CPU能力。我通常设置一半的超线程内核和一半的内存,例如,当您有16 Gig的RAM时,则设置为8192 MB。通常,这是一个不错的设置,但是如果您想一次运行多个虚拟机,则不是这样。