全局设置CPU亲和性

全局设置CPU亲和性

有没有办法制作所有进程,除了我故意设置的进程tasksetnumactl仅使用某些核心/内存(无需循环每个进程的每个线程并自己设置)?

更多细节:我有 2 个物理 CPU 芯片,每个芯片有 4 个核心/8 个线程,以及总共 256 GB RAM。内存在两个 CPU 内存总线之间的分布不均匀。我希望内存少得多的CPU 成为通用CPU,大多数程序(例如后台任务)都在该CPU 及其内存上运行。然后,在拥有大部分内存的 CPU 上运行特殊任务,我将对其速度进行计时,并希望它们不会出现 CPU 争用、NUMA 或类似情况。

答案1

这可以通过修改systemd配置来实现。首先,通过添加以下内容来更改默认关联设置/etc/systemd/system.conf

[Manager]
CPUAffinity=1

然后,在您的设备下,清除亲和力,然后将其重置为您想要的CPU

[Exec]
CPUAffinity=
CPUAffinity=2-4

相关内容