第11章 カーネル
11.1. リソース制御 リンクのコピーリンクがクリップボードにコピーされました!
11.1.1. RHEL 8 で、Control Group v2 がテクノロジーグループとして利用可能 リンクのコピーリンクがクリップボードにコピーされました!
Control Group v2 メカニズムは、統一された階層制御グループです。Control Group v2 は、プロセスを階層的に編成し、制御された設定可能な方法で、階層に従ってシステムリソースを分配します。
以前のバージョンとは異なり、control group v2 には階層が 1 つしかありません。このように階層が単純であるため、Linux カーネルでは次のことが可能になります。
- 所有者のロールに基づいたプロセスの分類
- 複数の階層でポリシーが競合する問題の解消
コントロールグループ v2 は 複数のコントローラーをサポートします。
CPU コントローラーにより、CPU サイクルの配分が調整されます。このコントローラーには以下が実装されています。
- 通常のスケジューリングポリシーに対する重みおよび絶対帯域幅制限のモデル
- 実時間スケジューリングポリシーに対する絶対帯域幅割り当てモデル
メモリーコントローラーは、メモリー配分を調整します。現在、次の種類のメモリー使用量が追跡されます。
- ユーザー側のメモリー (ページキャッシュと匿名メモリー)
- dentry、inode などのカーネルデータ構造
- TCP ソケットバッファー
- I/O コントローラーは、I/O リソースの配分を制限します。
- Remote Direct Memory Access (RDMA) コントローラーは、一部のプロセスが使用できる、RDMA/IB に固有のリソースを制限します。このプロセスは、RDMA コントローラーによりグループ化されます。
-
プロセス番号コントローラーは、特定の制限後に、コントロールグループが、新しいタスクが
fork()されない、またはclone()されないようにできます。 - Writeback コントローラーがメカニズムとして動作します。これは、I/O コントローラーとメモリーコントローラーとの間の矛盾が相殺されます。
特定の コントロールグループ v2 コントローラーの詳細は、cgroups-v2 オンラインドキュメント を参照してください。