Red Hat Training

A Red Hat training course is available for RHEL 8

第44章 アプリケーションの制限の設定

システム管理者として、コントロールグループのカーネル機能を使用して制限を設定し、プロセスのハードウェアリソースの優先または分離を行い、システム上のアプリケーションが安定し、メモリーが不足しないようにします。

44.1. コントロールグループについて

コントロールグループは、プロセスを階層的に順序付けされた cgroups グループに編成できる Linux カーネル機能です。階層 (コントロールグループツリー) は、cgroups 仮想ファイルシステムに構造を提供して定義されます。デフォルトでは /sys/fs/cgroup ディレクトリーにマウントされます。これは、/sys/fs/cgroup のサブディレクトリーを作成および削除することで手動で行います。systemd システムおよびサービスマネージャーを使用することも可能です。

リソースコントローラー (カーネルコンポーネント) は、これらのプロセスのシステムリソース (CPU 時間、メモリー、ネットワーク帯域幅、各種組み合わせなど) を制限、優先順位付け、または割り当てることで cgroup 内のプロセスの動作を変更します。

cgroups に追加された値はプロセスアグリゲーションで、アプリケーションとユーザー間のハードウェアリソースの分割を可能にします。その結果、ユーザー環境の全体的な効率、安定性、およびセキュリティーが向上します。

コントロールグループ 1

コントロールグループバージョン 1 (cgroups-v1) はリソースごとのコントローラー階層を提供します。これは、CPU、メモリー、I/O などの各リソースに、独自のコントロールグループ階層があることを意味します。あるコントローラーが、各リソースの管理において別のものと連携できるように、別のコントロールグループ階層を組み合わせることができます。ただし、2 つのコントローラーは異なるプロセス階層に属する可能性があり、適切な調整はできません。

cgroups-v1 コントローラーは、長期間に渡って開発されているため、制御ファイルの動作と命名は均一ではありません。

コントロールグループ 2

階層の柔軟性から生じるコントローラー連携の問題は、control groups version 2 の発展につながっていました。

Control groups version 2 (cgroups-v2) では、すべてのリソースコントロールがマウントされることに対して単一のコントロールグループ階層を指定します。

コントロールファイルの動作と命名は、さまざまなコントローラーにおいて一貫性があります。

警告

RHEL 8 では、限られた数のリソースコントローラーを持つテクノロジープレビューとして cgroups-v2 を利用できます。関連するリソースコントローラーの詳細は、cgroups-v2 リリースノート を参照してください。

このサブセクションは、Devconf.cz 2019 プレゼンテーションにを基にしています。[3]

関連情報



[3] Linux Control Group v2 - An Introduction, Devconf.cz 2019 presentation by Waiman Long