Red Hat Training

A Red Hat training course is available for RHEL 8

23.2. カーネルリソースコントローラーの概要

カーネルリソースコントローラーは、コントロールグループの機能を有効化します。RHEL 8 は、コントロールグループバージョン 1 (cgroups-v1) および コントロールグループバージョン 2 (cgroups-v2) のさまざまなコントローラーをサポートします。

コントロールグループサブシステムとも呼ばれるリソースコントローラーは、1 つのリソース (CPU 時間、メモリー、ネットワーク帯域幅、ディスク I/O など) を表すカーネルサブシステムです。Linux カーネルは、systemd サービスマネージャーによって自動的にマウントされるリソースコントローラーの範囲を提供します。現在マウントされているリソースコントローラーの一覧は、/proc/cgroups ファイルで確認できます。

cgroups-v1 で利用可能なコントローラー

blkio
ブロックデバイスへの入出力アクセスを制限します。
cpu
コントロールグループのタスク用の Completely Fair Scheduler (CFS) パラメーターを調整します。cpu コントローラーは、同じマウント上の cpuacct コントローラーとともにマウントされます。
cpuacct
コントロールグループ内のタスクが使用する CPU リソースに関する自動レポートを作成します。cpuacct コントローラーは、同じマウント上の cpu コントローラーとともにマウントされます。
cpuset
コントロールグループタスクが、指定された CPU のサブセットでのみ実行されるように制限し、指定されたメモリーノードでのみメモリーを使用するようにタスクに指示します。
devices
コントロールグループ内のタスクのデバイスへのアクセスを制御します。
freezer
コントロールグループ内のタスクを一時停止または再開します。
memory
コントロールグループ内のタスクによるメモリー使用の制限を設定し、それらのタスクが使用したメモリーリソースに関する自動レポートを生成します。
net_cls
特定のコントロールグループタスクから発信されたパケットを識別するために Linux トラフィックコントローラー (tc コマンド) を有効化するクラス識別子 (classid) でネットワークパケットをタグ付けします。net_cls のサブシステム net_ filter (iptables) でも、このタグを使用して、そのようなパケットに対するアクションを実行することができます。net_filter は、ファイアウォール識別子 (fwid) でネットワークソケットをタグ付けします。これにより、Linux ファイアウォールは、(iptables コマンドを使用して) 特定のコントロールグループタスクから発信されたパケットを識別できるようになります。
net_prio
ネットワークトラフィックの優先度を設定します。
pids
コントロールグループ内の多数のプロセスとその子に制限を設定します。
perf_event
perf パフォーマンス監視およびレポートユーティリティーにより、監視するタスクをグループ化します。
rdma
コントロールグループ内の Remote Direct Memory Access/InfiniB 固有リソースに制限を設定します。
hugetlb
コントロールグループ内のタスクによる大容量の仮想メモリーページの使用を制限する場合に使用できます。

cgroups-v2 で利用可能なコントローラー

io
ブロックデバイスへの入出力アクセスを制限します。
memory
コントロールグループ内のタスクによるメモリー使用の制限を設定し、それらのタスクが使用したメモリーリソースに関する自動レポートを生成します。
pids
コントロールグループ内の多数のプロセスとその子に制限を設定します。
rdma
コントロールグループ内の Remote Direct Memory Access/InfiniB 固有リソースに制限を設定します。
cpu
コントロールグループのタスクの Completely Fair Scheduler (CFS) パラメーターを調整し、コントロールグループのタスクで使用される CPU リソースに関する自動レポートを作成します。
cpuset
コントロールグループタスクが、指定された CPU のサブセットでのみ実行されるように制限し、指定されたメモリーノードでのみメモリーを使用するようにタスクに指示します。新しいパーティション機能により、コア機能 (cpus{,.effective}, mems{,.effective}) のみがサポートされます。
perf_event
perf パフォーマンス監視およびレポートユーティリティーにより、監視するタスクをグループ化します。perf_even は v2 階層で自動的に有効になります。
重要

リソースコントローラーは、cgroups-v1 階層または cgroups-v 2 階層のいずれかで使用できますが、両方を同時に使用することはできません。

関連情報

  • cgroups(7) の man ページ
  • /usr/share/doc/kernel-doc-<kernel_version>/Documentation/cgroups-v1/ ディレクトリー内のドキュメント (kernel-doc パッケージをインストールした後)。