Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

第1章 コントロールグループについて (cgroup)

1.1. コントロールグループとは

本書で cgroup と略称される コントロールグループ は、システム上で実行されるプロセスの階層的に順序付けられたグループ間で、CPU 時間、システムメモリー、ネットワーク帯域幅またはこれらのリソースの組み合わせなどのリソースの割り当てを可能にする Linux カーネル機能です。cgroup を使用することにより、システム管理者は、システムリソースの割り当て、優先順位付け、拒否、管理および監視におけるより詳細なレベルの制御を行うことができます。ハードウェアリソースはアプリケーションおよびユーザー間でスマートに分割することができ、これにより全体の効率が向上します。
コントロールグループは、プロセスを階層的にグループ化し、ラベル付けを行う方法や、リソース制限をそれらのプロセスに適用する方法を提供します。これまでは、管理者がプロセスの niceness 値で調節できる同様の量のシステムリソースがすべてのプロセスに割り当てられていました。このアプローチでは、アプリケーションの相対的な重要度を問わず、数多くのプロセスが使用されるアプリケーションに対して、より少ないプロセスを使用するアプリケーションよりも多くのリソースが割り当てられました。
Red Hat Enterprise Linux 7 では、cpgroup 階層のシステムを systemd ユニットツリーにバインドすることにより、リソース管理設定をプロセスレベルからアプリケーションレベルに移行します。そのため、システムリソースの管理は、systemctl コマンドを使用するか、または systemd ユニットファイルを変更することにより実行できます。詳細は、2章コントロールグループの使用 を参照してください。
以前のバージョンの Red Hat Enterprise Linux では、システム管理者は libcgroup パッケージの cgconfig コマンドを使用してカスタム cgroup 階層を作成しました。しかし、このパッケージを使用するとデフォルトの cgroup 階層との競合が容易に生じるため、現在は非推奨になっています。ただし、libcgroup はとくに net-prio サブシステムを使用する場合など systemd がまだ適用されない特定のケースに対応するために依然として使用することができます。3章libcgroup ツールの使用 を参照してください。 
上記のツールは、Linux カーネルの cgroup コントローラー (サブシステムとしても知られる) と対話するための高レベルなインターフェースを提供します。リソース管理を行うための主な cgroup コントローラーは cpumemory および blkio です。デフォルトで有効にされるコントローラーの一覧は、Red Hat Enterprise Linux 7 で利用可能なコントローラー を参照してください。リソースコントローラーおよびそれらの設定可能なパラメーターの詳細は、コントローラー固有のカーネルについてのドキュメント を参照してください。