我有一台运行 ESXi 的 Dell 2950(有些人可能已经厌倦了在 SF 上看到它)。我在 VSphere 管理控制台上注意到,服务器显示它未启用超线程(“未激活”)
显然它在 BIOS 中默认是关闭的。
我知道我可以关闭所有虚拟机,然后重新启动并编辑该设置,但我应该这样做吗?在这种类型的设置上启用超线程是否真的有好处,或者性能提升是否微不足道(如果有的话)?
答案1
我只读过几次关于这个话题的文章。我在 www.vmguy.com 上找到了一篇文章这里总结了关于此 HT 问题的共识(直接来自文章):
在 ESX 中使用 HT 有优点也有缺点。
优点
更好地协同调度 SMP VM
超线程提供了更多的 CPU 上下文,因此,SMP VM 可以被安排在没有超线程的情况下没有足够 CPU 上下文的场景中运行。
- 典型应用程序的性能提升在 0-20% 范围内(与非虚拟化工作负载相同)。
缺点
- 启用超线程后处理器资源可共享
处理器资源是共享的,例如 L2 和 L3 缓存。这意味着如果在同一处理器上运行的两个线程对相同资源的需求都很高,它们就会竞争相同的资源。这反过来会降低性能。
综合考虑,很难概括超线程对性能的影响。它高度依赖于虚拟机的工作负载。另外一点是,您可以始终根据每个虚拟机或资源池使用 CPU 最小值和最大值,为最关键的工作负载保留一定数量的 CPU。与我遇到的大多数性能项目一样,测试、测试、再测试。试用工作负载,看看哪种方法最适合您现有的硬件。
再次重申,这是直接来自文章的内容。我不确定 HT 是否值得,因为我也使用 AMD Opterons,所以我无法提供经验。
答案2
您确定您的 CPU 有超线程吗?我认为大多数四核 CPU 都没有。我的 ESX 服务器也报告超线程处于“未激活”状态,而我的 AMD CPU 从未有过超线程。
答案3
支持超线程的 Intel CPU 仅有 Netburst(Pre Core\Core Duo)架构和最新的基于 Nehalem 的 CPU(即,目前服务器仅有 Xeon 5500)。2950 系列不支持 Xeon 5500,但支持早期的 5000、5100、5200、5300 和 5400 系列(不同 2950 型号支持的 CPU 的确切型号略有不同)。其中,只有最老的 5000 系列(Dempsey)支持超线程,因为它基于 Netburst 架构。
所有四核 Xeon 5xxx 都基于 Core 或 Nehalem 架构,因此在您的情况下,您的 CPU 不支持超线程。