【シーグループス】
cgroups(リソース制御) とは?
最終更新:
💡 プロセスの集まりごとに、資源の使い方を管理
Linuxでプロセスをグループにまとめ、CPUやメモリなどの資源利用を管理する仕組み。グループは階層を作れ、上位の制限も受ける。Dockerなどの資源制限にも使われるが、コンテナを作るだけで自動的に上限が決まるわけではない。
cgroupsは、何をまとめるの?
グループの中に、グループも作れる?
木のような階層を作れるよ。下位のグループは上位の制約も受けるので、子の設定だけで親の制限を超えられるわけではない。cgroup v2は統一された1つの階層を使う。v1とは設定方法が異なるため、利用している環境の資料を確認しよう。
コンテナの上限も、これで決まる?
CPUとメモリで、上限の動作は同じ?
違うよ。v2のcpu.maxは一定期間に使えるCPU時間の上限を扱う。memory.maxはメモリ利用の上限で、到達して使用量を減らせないとグループ内でOOMキラーが呼ばれる。単に両方とも待てば済む、とは考えず、負荷と失敗時の動作も確かめよう。
namespaceと同じ、隔離の機能?
まとめ:ざっくりこれだけ覚えればOK!
「cgroups」って出てきたら「プロセスの集まりごとに資源利用を管理する仕組み」と思えばだいたいOK!
📖 おまけ:英語の意味
「control groups」 = 制御グループ
💬 グループを作る仕組みと、CPUやメモリなどの種類を扱うコントローラーから成るよ。