Cpu

全域設置 CPU 親和性

  • October 4, 2017

有沒有辦法讓所有程序,除了我故意設置tasksetnumactl僅使用某些核心/記憶體的程序(不循環每個程序的每個執行緒並自己設置)?

更多細節:我有 2 個物理 CPU 晶片,每個都有 4 個核心/8 個執行緒以及總共 256 GB RAM。記憶體在兩條 CPU 記憶體匯流排之間分佈不均。我希望記憶體顯著減少的那個是通用的,大多數程序(例如後台任務)在該 CPU 上執行並帶有它的記憶體。然後在具有大部分記憶體的 CPU 上執行特殊任務,我將對其速度進行計時,並希望它們沒有 CPU 爭用、NUMA 或類似的東西。

這可以通過修改 systemd 配置來實現。首先,/etc/systemd/system.conf通過添加以下內容更改預設關聯設置:

[Manager]
CPUAffinity=1

然後,在您的單位下,清除關聯,然後將其重置為您想要的 CPU

[Exec]
CPUAffinity=
CPUAffinity=2-4

引用自:https://unix.stackexchange.com/questions/396149