特定のグループへのCPUアクセスを25%に制限するために共有システムにcgroupを設定しましたが、機能しないようです。従うべきステップは次のとおりです。
次の行を追加してください
/etc/cgrules.conf
。@guest_users cpu lowcpu
上記のレコードで@guest_users
CPU使用率を制限したいメンバーを持つLinuxグループはcpu
コントローラであり、lowcpu
次の手順に示すようにcgroupを設定するハンドルです。
次の行を追加します
/etc/cgconfig.conf
。group lowcpu{ cpu{ cpu.shares=256; } }
有効化と再起動
cgred
とサービスを使用します。cgconfig
systemctl
私はCentOSシステム7.5、カーネル3.10、32コアを実行しています。
ディレクトリが/sys/fs/cgroup/cpu/lowcpu
作成され、cpu.shares
ファイルに256行があることがわかります。
top
それにもかかわらず、guest_usersグループのユーザーがまだCPUに過負荷をかける可能性があることがわかりました。考えられる原因と問題のデバッグ方法に関する提案はありますか?
答え1
答えはにありますスタックオーバーフロー役に立ちました。私はcpu.shares
、cgroupとシステムプロセスの間にCPU競合がある場合にのみ、カーネルがこの規則を開始することを発見しました。競合がなければ、cgroupはすべてのCPUリソースを使用できます。 CPUセクションに次の行を追加するだけです。
cpu.cfs_period_us=1000000;
cpu.cfs_quota_us=800000;
上記の行の効果は、CPUの1秒ごとに0.8秒の時間分割をcgroupプロセスに割り当てることです。
cgroupが作成され、有効になっていることを確認するには、systemd-cgls
コマンドがsystemd-cgtop
便利です。