プロセスを再起動しないと、cgroups v2 cpuset は適用されません。

プロセスを再起動しないと、cgroups v2 cpuset は適用されません。

待ち時間に敏感ないくつかのプロセスの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再起動せずに機能しました。

ここに画像の説明を入力してください。

ベストアンサー1

おすすめ記事