我目前正在使用基于 AMD Opteron 的 NUMA 系统。为了满足我当前项目的需要,我想让 Linux 和所有系统进程只利用 CPU0(最好只利用其中一个核心),而将所有其他核心留给我自己的自私需求。我知道它会真的影响系统性能,但现在没问题。
因此,我想知道是否有可能在不弄乱内核源代码的情况下实现这一点。任何有关 Linux 中 NUMA 和 SMP 实现细节的最新文章的链接都将不胜感激。
答案1
留下所有其他核心...
这意味着您实际上想要使用其他核心。
在开始使用其他核心之前,请使用 taskset 为所有正在运行的用户进程(包括 init)应用亲和性。例如
taskset 0x00000001 1
然后将亲和力掩码设置为将启动你的“自负需求”的进程的所有其他内容,例如
taskset 0xFFFFFFFE $$
您不能强制内核仅在一个 CPU 上运行(而且这样做也很愚蠢),除非您设置了仅允许系统访问单个 CPU 的启动选项。
答案2
有两个可能的内核参数:
maxcpus
isolcpus
我认为在你的情况下,maxcpus 是更好的选择
添加
maxcpus=1
内核启动选项