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

pau*_*los 33 linux central-processing-unit hp hp-proliant

我有一个 HP DL380 G7,里面有 2 个不匹配的 CPU。一种是具有更快内核的四核 CPU,一种是具有较慢内核的 6 核 CPU。

在这个盒子上,我运行一个应用程序,由于许可原因,它只使用 CPU0-CPU3。

对我来说,希望四核 CPU 上更快的内核在操作系统中枚举到 CPU0-CPU3,从而为我带来性能奖励 a) 使用更快的时钟内核,以及 b) 将所有线程保持在同一个物理 CPU 上.

有没有办法在 BIOS 中、在 Linux 中的配置文件或引导选项中实现这一点?

具体的CPU型号有:

Intel(R) Xeon(R) CPU E5649 @ 2.53GHz(六核)

Intel(R) Xeon(R) CPU E5640 @ 2.67GHz(四核)

eww*_*ite 27

呜?!?

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

我想你们只是在taskset只包含您希望使用的 CPU 内核的 cgroup 或 shield(或 via )中执行您的应用程序。您还可以使用 将内存访问固定到该 CPU numactl。但实际上,您为什么不完全移除较慢的 CPU,或者支付将系统纳入规范所需的费用。

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

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

编辑:

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

  • 每个人的反应都是一样的!我知道理想情况下 CPU 应该是相同的,但这就是惠普当时给我们的。这是我已经处理过的手,所以我必须充分利用它,直到下一次硬件更新到来。CPU 是 Xeon E5649 @ 2.53GHz(六核)和 E5640 @ 2.67GHz(四核)。完全去掉6核CPU其实是摆在桌面上的选项之一。能够在 BIOS 中完全禁用套接字会更简洁,但似乎不可能。 (4认同)
  • @paulos 那为什么 2.67GHz 与 2.53GHz 很重要呢?只需将 6 核 CPU 放入服务器并移除 4 核。 (3认同)