cgroupを使用したアプリケーション優先順位の制御

cgroupを使用したアプリケーション優先順位の制御

私はcgroupをよりよく理解し、cgroupを適用するユースケースを理解したいと思います。

cgroupは、さまざまなアプリケーションの優先順位を指定する良い方法ですか(つまり、特定の種類のアプリケーション(Webサーバーなど)に高い優先順位を付けること)?

ベストアンサー1

用途が多いcgroup。システム管理の観点から最も重要なのは、リソースを制限することです。典型的な例はCPUアクセスです。たとえば、グループを作成してsshd無視できないCPU時間共有を提供すると(他のグループまたはすべてのソートされていないプロセスが属するデフォルトと比較して)、CPUを多用するタスクにログインできます。機械が作動中です。

もっと興味深いのは、この「リモートアクセス」プロセスに他のプロセスよりも高いCPU共有を提供すると、すぐにログインできることです(sshデーモンが実行中の残りのプロセスよりも優先されるため)。創傷リソースは必要な場合にのみ割り当てられるため、システムの全体的な計算強度です。通常、I / O(ネットワークを含む)優先順位でこれを実行しようとしています。しかし、ジョンが以下の説明で正しく指摘したように、これらの操作を不注意に実行することは望ましくありません(予期しない方法で再度発生する可能性があります)。覚えておくべき重要な点は、これらのグループが基本的に継承されることです。つまり、これらのSSHセッションでメモリ/ CPUの使用を開始したくありません。ただし、これを行うには、プロセスの開始時にcgroupにプロセスを割り当てるメカニズムがあります。

別の用途は、プロセスを互いに分離することです。最新のLinuxカーネルの他の機能(名前空間の分離)と組み合わせて、オペレーティングシステムレベルの仮想化を作成するために使用されます。LXC(Linuxコンテナ)

これに加えて、さまざまな統計および制御タスク(特定のプロセスグループの凍結、特定のCPUコアへの割り当てなど)を実行できます。

より多くの情報を探している場合は、ここにある2つのリンクが合理的な出発点になります。Documentation/cgroupsLinuxカーネルソースツリーでディレクトリを確認することもできます。

おすすめ記事