我有一台HP DL380 G7,其中有2个不匹配的cpu.一个是具有更快内核的四核cpu,另一个是具有更慢内核的6核cpu.
在这个盒子里我运行一个应用程序,由于许可的原因,只会使用cpu0-cpu3.
对我来说,四核cpu上的更快的内核可能需要枚举到操作系统中的cpu0-cpu3,这给了我一个性能奖励:a)使用更快的时钟核心,以及b)将所有线程保持在同一个物理cpu上.
有没有办法在BIOS中,或在Linux中的配置文件或引导选项中实现这一点?
具体的cpu型号是:
英特尔(R)Xeon(R)cpu E5649 @ 2.53GHz(六核)
英特尔(R)Xeon(R)cpu E5640 @ 2.67GHz(四核)
解决方法
武汉理工大学?!?
这很疯狂,你知道吗?它不受支持,可能对您的硬件不利.您应该在服务器中使用同等规格的处理器.
我想你只需要在cgroup或shield(或通过taskset)中执行你的应用程序,它只包含你想要使用的cpu核心.您还可以使用numactl固定对该cpu的内存访问.但实际上,为什么你不能完全删除较慢的cpu或支付将系统纳入规范所需的费用.
也许显而易见的是,如果您的应用程序被硬编码为使用cpu0-cpu3,那就是物理交换套接字……但实际上,只需在这里运行一个cpu.
如果您指的是ProLiant DL380 G7硬件,那么“更快”的cpu很可能是Nehalem 5500系列触发器,而较慢的六核cpu是Westmere.你有基准吗?安装了哪些特定的cpu?
编辑:
好的,所以这些至少是同一代/步进的cpu.但它仍然是一个坏主意…… cpu规格的差异甚至不是那么大(与3.47GHz的英特尔X5690相比).