29.2. カーネルリソースコントローラーの概要
カーネルリソースコントローラーは、コントロールグループの機能を提供します。RHEL 10 は、コントロールグループバージョン 1 (cgroups-v1) および コントロールグループバージョン 2 (cgroups-v2) のさまざまなコントローラーをサポートします。
コントロールグループサブシステムとも呼ばれるリソースコントローラーは、1 つのリソース (CPU 時間、メモリー、ネットワーク帯域幅、ディスク I/O など) を表すカーネルサブシステムです。Linux カーネルは、systemd サービスマネージャーによって自動的にマウントされるさまざまなリソースコントローラーを提供します。
現在マウントされているリソースコントローラーの一覧は、/proc/cgroups ファイルで確認できます。
cgroups-v1で利用可能なコントローラー-
blkio: ブロックデバイスとの間の入出力アクセスに制限を設定します。 -
cpu: コントロールグループのタスクに関するデフォルトスケジューラーのパラメーターを調整します。cpuコントローラーは、同じマウント上のcpuacctコントローラーとともにマウントされます。 -
cpuacct: コントロールグループ内のタスクによって使用される CPU リソースに関する自動レポートを作成します。cpuacctコントローラーは、同じマウント上のcpuコントローラーとともにマウントされます。 -
cpuset: コントロールグループのタスクを、指定された CPU のサブセットでのみ実行するように制限し、指定されたメモリーノードでのみメモリーを使用するようにタスクに指示します。 -
devices: コントロールグループ内のタスクによるデバイスへのアクセスを制御します。 -
freezer: コントロールグループ内のタスクを一時停止または再開します。 -
memory: コントロールグループ内のタスクによるメモリー使用量の制限を設定し、それらのタスクによって使用されるメモリーリソースに関する自動レポートを生成します。 -
net_cls: ネットワークパケットにクラス識別子 (classid) のタグを付けます。これにより、Linux トラフィックコントローラー (tcコマンド) が、特定のコントロールグループタスクから発信されたパケットを識別できるようになります。net_clsのサブシステムnet_filter(iptables) でも、このタグを使用して、そのようなパケットに対するアクションを実行することができます。 -
net_filter: ネットワークソケットにファイアウォール識別子 (fwid) のタグを付けます。これにより、Linux ファイアウォールが、(iptablesコマンドを使用して) 特定のコントロールグループタスクから発信されたパケットを識別できるようになります。 -
net_prio: ネットワークトラフィックの優先度を設定します。 -
pids: コントロールグループ内の複数のプロセスとその子プロセスに制限を設定します。 -
perf_event:perfパフォーマンス監視およびレポートユーティリティーが監視対象とするタスクをグループ化します。 -
rdma: コントロールグループ内の Remote Direct Memory Access/InfiniBand 固有のリソースに制限を設定します。 -
hugetlb: コントロールグループ内のタスクによる大きなサイズの仮想メモリーページの使用を制限します。
-
cgroups-v2で利用可能なコントローラー-
io: ブロックデバイスとの間の入出力アクセスに制限を設定します。 -
memory: コントロールグループ内のタスクによるメモリー使用量の制限を設定し、それらのタスクによって使用されるメモリーリソースに関する自動レポートを生成します。 -
pids: コントロールグループ内の複数のプロセスとその子プロセスに制限を設定します。 -
rdma: コントロールグループ内の Remote Direct Memory Access/InfiniBand 固有のリソースに制限を設定します。 -
cpu: コントロールグループのタスクに関するデフォルトスケジューラーのパラメーターを調整し、コントロールグループ内のタスクによって使用される CPU リソースに関する自動レポートを作成します。 -
cpuset: コントロールグループのタスクを、指定された CPU のサブセットでのみ実行するように制限し、指定されたメモリーノードでのみメモリーを使用するようにタスクに指示します。新しいパーティション機能により、コア機能 (cpus{,.effective},mems{,.effective}) のみがサポートされます。 -
perf_event:perfパフォーマンス監視およびレポートユーティリティーが監視対象とするタスクをグループ化します。perf_eventは v2 階層で自動的に有効になります。
-
重要
リソースコントローラーは、cgroups-v1 階層または cgroups-v2 階層のどちらかで使用できます。両方で同時に使用することはできません。