如何配置 Linux 以仅使用 NUMA 系统的一个 CPU/核心

如何配置 Linux 以仅使用 NUMA 系统的一个 CPU/核心

我目前正在使用基于 AMD Opteron 的 NUMA 系统。为了满足我当前项目的需要,我想让 Linux 和所有系统进程只利用 CPU0(最好只利用其中一个核心),而将所有其他核心留给我自己的自私需求。我知道它会真的影响系统性能,但现在没问题。

因此,我想知道是否有可能在不弄乱内核源代码的情况下实现这一点。任何有关 Linux 中 NUMA 和 SMP 实现细节的最新文章的链接都将不胜感激。

答案1

留下所有其他核心...

这意味着您实际上想要使用其他核心。

在开始使用其他核心之前,请使用 taskset 为所有正在运行的用户进程(包括 init)应用亲和性。例如

taskset 0x00000001 1

然后将亲和力掩码设置为将启动你的“自负需求”的进程的所有其他内容,例如

taskset 0xFFFFFFFE $$

您不能强制内核仅在一个 CPU 上运行(而且这样做也很愚蠢),除非您设置了仅允许系统访问单个 CPU 的启动选项。

答案2

有两个可能的内核参数:

maxcpus

isolcpus

我认为在你的情况下,maxcpus 是更好的选择

添加

maxcpus=1

内核启动选项

相关内容