有可能影响Linux下枚举CPU的方式吗?


32

我有一个HP DL380 G7,其中装有2个不匹配的CPU。一个是具有更快内核的四核CPU,另一个是具有更低内核的6核CPU。

在此框上,我运行一个应用程序,由于许可原因,该应用程序将仅使用CPU0-CPU3。

对我而言,希望四核CPU上的更快内核枚举到操作系统中的CPU0-CPU3,这为我带来了以下性能提升:a)使用更快的时钟内核,以及b)将所有线程保持在同一物理CPU上。

有没有办法做到这一点,无论是在BIOS中,还是在Linux中的配置文件或引导选项中?

特定的CPU型号为:

英特尔(R)至强(R)CPU E5649 @ 2.53GHz(hex core)

英特尔(R)至强(R)CPU E5640 @ 2.67GHz(四核)


请发布来自的特定CPU型号cat /proc/cpuinfo
ewwhite 2014年

24
因为我什至不知道CPU的不平等是可能的,所以总是有新的东西需要学习……
Kyle Brandt 2014年

2
@kyle可能,但不受HP支持或认可。
ewwhite 2014年

1
@kasperd在HP领域,如果加载两个具有不同步进的CPU,则会CPU mismatch detected在POST时出错。这可能发生在CPU一代内。例如,同一机箱中的Intel 5606和5690。
ewwhite 2014年

3
如果有人对我们在这里实际执行的操作感兴趣,我们将进行一次数据中心访问,并从服务器上物理移除了四核CPU
paulos 2014年

Answers:


27

??!?

太疯狂了,你知道吗?它不受支持,可能对您的硬件不利。您应该在服务器中使用规格相同的处理器。

我想您只是简单地在taskset仅包含您要使用的CPU内核的cgroup或shield(或通过)中执行您的应用程序。您也可以使用来将内存访问锁定到该CPU numactl。但是,实际上,为什么不要么完全删除速度较慢的CPU,要么不支付使系统符合规格所需的费用。

也许显而易见的事情是,如果您的应用程序被硬编码为使用CPU0-CPU3,则是物理地交换套接字...但是,实际上,只在这里运行一个CPU。

如果您指的是ProLiant DL380 G7硬件,则“更快”的CPU可能是Nehalem 5500系列proc,而较慢的六核CPU是Westmere。你有没有基准?安装了哪些特定的CPU?

编辑:

好的,所以这些至少是相同世代/步进的CPU。但这仍然不是一个好主意... CPU规格的差异甚至没有那么大(与之类似的是3.47GHz的Intel X5690)。


4
每个人都有同样的反应!我知道理想情况下CPU应当是相同的,但这就是惠普在今天给我们的。这是我已经处理过的手,因此我必须充分利用它,直到出现下一次硬件刷新为止。CPU是Xeon E5649 @ 2.53GHz(六核)和E5640 @ 2.67GHz(四核)。实际上,完全删除6核CPU是该表上的选项之一。能够在BIOS中完全禁用套接字是比较明智​​的做法,但这似乎是不可能的。
paulos,2014年

@paulos这是什么应用程序?
ewwhite 2014年

它的实际运行的检查点防火墙
保罗斯

3
@paulos那么,为什么2.67GHz与2.53GHz比较重要?只需将6核CPU放入服务器中,然后卸下4核即可。
ewwhite 2014年

回复:CPU规格,是的,我认为它只快5%或类似的速度。我希望性能提升归因于所有工作线程,尤其是网卡在同一物理CPU上引起的irq风暴。编辑:是的,也可以仅使用6核CPU。
paulos,2014年
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.