CPUアフィニティをグローバルに設定

CPUアフィニティをグローバルに設定

taskset私が意図的に設定したプロセスを除くすべてのプロセスを作成したり、特定のコア/メモリのみを使用する方法はありますかnumactl(各プロセスのすべてのスレッドを繰り返し直接設定せずに)?

詳細:それぞれ4つのコア/ 8つのスレッドと合計256 GBのRAMを備えた2つの物理CPUチップがあります。メモリは、2 つの CPU メモリバス間に不均一に分配されます。私はメモリがはるかに少ないCPUを汎用CPUとして使用し、ほとんどのプログラム(バックグラウンドタスクなど)がそのCPUとそのメモリで実行されることを望みます。その後、ほとんどのメモリを保持しているCPUで特別なタスクを実行しながら速度を測定し、CPUの競合、NUMAなどの問題が発生しないことを願っています。

答え1

これはsystemd構成を変更することで達成できます。まず、次を追加してデフォルトの接続設定を変更します/etc/systemd/system.conf

[Manager]
CPUAffinity=1

次に、デバイスから好みをクリアし、必要なCPUにリセットします。

[Exec]
CPUAffinity=
CPUAffinity=2-4

関連情報