回答:
cgroupsにはいくつかの用途があります。システム管理からおそらく最も重要なのはリソースの制限です-ここでの古典的な例はCPUアクセスです。egのグループを作成して、sshd
無視できないCPUタイムシェアを(他のグループまたはすべてのソートされていないプロセスに該当するデフォルトと比較して)与えると、マシンが実行されているときでもログインできることが保証されますCPUを集中的に使用するタスク。
さらに興味深いことに、この「リモートアクセス」プロセスに残りのCPUシェアよりもはるかに高いCPUシェアを与えると、ほとんど瞬時にログインできます(sshデーモンは実行中の残りのプロセスよりも優先されるため)。リソースは必要に応じてのみ割り当てられるため、マシンの全体的な計算強度。通常、これをI / O(ネットワークを含む)優先順位付けと一緒に行います。ただし、下のコメントでジョンが正しく指摘しているように、不用意にこれらのことをしたくありません(予期しない方法で起動する可能性があるため)。覚えておくべき重要なことは、グループはデフォルトで継承されるということです-つまり、そのようなsshセッションからメモリ/ CPUの独占を開始したくないのです。しかし、これには、プロセスの開始時にプロセスをcgroupに割り当てることができるメカニズムがあります。
別の用途は、プロセスを互いに分離することです。最近のLinuxカーネルの他の機能(名前空間の分離)と組み合わせて、LXC(Linux Containers)などのOSレベルの仮想化を作成するために使用されます。
それ以外にも、さまざまなアカウンティングや制御を行うことができます(一部のプロセスグループをフリーズしたり、特定のCPUコアに割り当てたりするなど)。
ここにある2つのリンクは、詳細情報を探している場合は、妥当な出発点になるはずです。Documentation/cgroups
Linuxカーネルソースツリーのディレクトリを確認することもできます。
systemd
。これは、独自の目的でcgroupを(ab)使用します。サービスのsystemdユニットファイルは、妥当である可能性があることについていくつかの手掛かりを与える可能性があります。しかし、結局のところ、実際に「グッドアイデア(TM)」ではないものを理解するのは、システム管理者の責任です。
cgroup
最初にマウントする必要がある疑似ファイルシステムに書き込みます。今日のほとんどの場合、initシステムはあなたのためにそれを行い、多くの場合、すでに何らかの方法でcgroupを使用しています。唯一の決定的な答えは、ドキュメントを読むことです:kernel docs、OpenRC @ Gentoo、systemd @ freedesktop。