%20%E3%81%8C%E6%A9%9F%E8%83%BD%E3%81%97%E3%81%BE%E3%81%9B%E3%82%93%E3%80%82%E8%A8%BA%E6%96%AD%2F%E3%83%87%E3%83%90%E3%83%83%E3%82%B0%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95%E3%81%AF%EF%BC%9F.png)
特定のグループへの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
便利です。