超线程和虚拟机?


15

我已经看过这个线程:Hyper-V和Hyper-threading:开还是关?,但唯一的答案是Windows特有的...。

我正在构建VM服务器(使用Proxmox VE,如果有所作为),并且想知道超线程如何影响虚拟机...

具体来说,如果我最大化虚拟机的数量,超线程会有所帮助还是会损害性能?

同样,最大的虚拟机将是具有约30个客户端(4核/ 8 GB RAM)的终端服务器,以及一个文件服务器(如果有帮助的话)。

更新:服务器是具有1TB RAID 10、32 GB RAM和双Intel Xeon E5530的Dell R410(我不确定确切的型号,但它是具有2+ Ghz的E55xx)

更新:大多数VM将在KVM上。


请提供您计划使用的服务器的规格。
ewwhite

也很好奇 为什么将Promox VE与ESXi对比?
ewwhite 2012年

可能是由于ESXI在免费许可证上限制了16GB的内存
Tacticus

3
我选择Proxmox而不是ESXi,因为Proxmox具有一些额外的功能,例如通过Web gui进行全面管理,群集,服务器的规格不受许可的人为限制,还有其他一些我不记得的功能。另外,2.0将包括AD身份验证,这对我们非常有用,不确定ESXi是否适用...
Soviero 2012年

1
您看过oVirt吗?
dyasny 2012年

Answers:


12

通常,我将VM主机服务器(VMWare ESXi,KVM,HyperV等)的HyperThreading保持打开状态。这适用于Intel Nehalem和更新的CPU(5500系列及更高版本)。可用于调度多个VM的其他线程。

您可能还需要重新评估客户机系统的大小。通常,最好从虚拟机的CPU分配开始。由于您在谈论终端服务器,因此我实际上将其移至2个虚拟CPU,而不是4个vCPU。对于虚拟机管理程序来说,为具有较少核心数量的VM计划CPU时间更容易。RAM仍然很关键,因此请确保有足够的可用空间。

参见:http : //omtconcepts.com/wp/?p=14


两个线程比四个线程究竟多少?
Soviero

3
没有更快...更容易安排。看到我的编辑。您提到的计算机将总共有8个核心(16个具有HyperThreading)。尝试查找资源以调度4-vCPU来宾比2-vCPU困难。您将有更多争用(因此会降低性能)。如果计划在此服务器上运行其他虚拟客户机,则可以使用1个和2个vCPU客户机。
ewwhite 2012年

3
关于调度的观点仅适用于执行“组调度”的虚拟机管理程序,在该系统中,它们试图同时运行虚拟机“全部或全部”的近似值。对于执行此操作的虚拟机管理程序,添加更多虚拟处理器将使VM难以调度。我知道Kevin更新了他的问题,规定他主要想使用KVM。但我想指出的是,Hyper-V不会执行帮派调度。它依赖于来宾OS的半虚拟化来避免进行帮派调度。
杰克·奥辛斯

我不了解Hyper-V,但这确实适用于其他主要的虚拟机管理程序。
ewwhite

1
KVM不会调度计划。实际上,只有VMWare可以做到这一点,甚至他们都添加了一些机制来缓解v5中的帮派调度
混乱

4

真的要看 如果您要说的是“最大化”,我认为这意味着对CPU进行总体分配(分配的虚拟CPU核心数要多于可用的核心数,或者要分配的虚拟CPU核心数应尽可能多),那么HT应该是上。

如果您不负责任,那么通常最好在您的特定负载下进行测试-有时HT实际上会损害性能。


我确实计划分配尽可能多的可用内核/线程,但我不打算过度分配。
Soviero

您是否认为主机操作系统完全不需要CPU时间?而且,如果您分配的v-core数量与启用HT的线程数相同,则实际上您的分配率至少为70-80%,因为即使HT确实提高了性能,通常也达到20-30%的最高值,而不是100%,就像从线程数中得出的那样。
dyasny 2012年

好的,分配的内核数不超过12个(占16个的75%)?
Soviero

1
猜猜我还不够清楚。您可以进行整体配置,根据VM的负载,CPU可能根本不会成为瓶颈。此外,永远不要为虚拟机分配比绝对所需更多的CPU,因为虚拟机拥有的CPU越多,调度的难度就越大,因此太多的v-cpus实际上会影响性能。至于通过超线程获得20%的性能提升-这不是绝对的,这个数字可能会更高,更低,为零甚至是负数-取决于VM负载。
dyasny 2012年

哦好的。谢谢。
Soviero

3

很多影响虚拟机性能变量。HT只是其他变量之一,但也取决于VM的配置方式。

影响HT的变量之一取决于所使用的Hypervisor的类型。

如果使用的是轻型虚拟机(例如VZ,VServer等),那么HT显然会带来适当的好处,因为这些VM实际上并不是紧密隔离的,更像是运行多线程软件。

如果您使用的是KVM,Xen HVM等重量级虚拟机,则HT可能会干扰某些事情,例如,为VM分配了两个CPU,但最终在不同的内核上各使用一个HT。

因此,最好的办法仍然是测试您的设置,以查看适合您的设置。

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.