cgroups(V1) が機能しません。診断/デバッグする方法は?

cgroups(V1) が機能しません。診断/デバッグする方法は?

特定のグループへのCPUアクセスを25%に制限するために共有システムにcgroupを設定しましたが、機能しないようです。従うべきステップは次のとおりです。

  1. 次の行を追加してください/etc/cgrules.conf

    @guest_users cpu lowcpu

上記のレコードで@guest_usersCPU使用率を制限したいメンバーを持つLinuxグループはcpuコントローラであり、lowcpu次の手順に示すようにcgroupを設定するハンドルです。

  1. 次の行を追加します/etc/cgconfig.conf

    group lowcpu{
      cpu{
       cpu.shares=256;
      }
    }
    
  2. 有効化と再起動cgredとサービスを使用します。cgconfigsystemctl

私は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便利です。

関連情報