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 ファイルで確認できます。

表23.1 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

コントロールグループ内のタスクによる大容量の仮想メモリーページの使用を制限する場合に使用できます。

表23.2 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 パッケージをインストールした後)。