待ち時間に敏感ないくつかのプロセスのCPUコアを分離するために、cgroup v2のcpusetコントローラを使用しようとしています。
グループを作成しましたlowlatency
。
mkdir /sys/fs/cgroup/lowlatency
1-7,9-15
そしてCPUのみを使用するように制限します。
echo "1-7,9-15" > /sys/fs/cgroup/lowlatency/cpuset.cpus
root
また、このグループを新しいcpusetパーティションの一部にしました。
echo "root" > /sys/fs/cgroup/lowlatency/cpuset.cpus.partition
最後に、ルートグループは別のCPUを使用しなくなりました1-7,9-15
。
cat /sys/fs/cgroup/cpuset.cpus.effective
0,8
問題は、ルートサブグループのプロセスがまだ間違ったCPUを使用していることです。
CPUの好みのマスクは正しいです。
シャットダウンして再起動した後、正しいCPU(0と8)に配置されました。これはcgroupのバグですか?再起動せずにこれらのプロセスを新しいCPUSetに移動できますか?
cpuset.cpus.partition=root
低レイテンシグループを使用して手動で削除してみましたが、taskset -cp 4 1079
再起動せずに機能しました。