検索

44.2. Linux カーネルリソースコントローラーとは

download PDF

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

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

cgroups-v1 では、以下のコントローラーを使用できます。

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

cgroups-v2 では、次のモードを使用できます。

  • io - cgroups-v1blkio へのフォローアップ
  • memory - cgroups-v1メモリー へのフォローアップ
  • pids - cgroups-v1pids と同じ
  • RDMA - cgroups-v1rdma と同じ
  • cpu - cpu - cgroups-v1cpucpuacct へのフォローアップ
  • cpuset - コア機能 (cpus{,.effective}, mems{,.effective}) のみを新しいパーティション機能でサポートします。
  • perf_event - サポートは継承され、明示的な制御ファイルはありません。perf コマンドに v2 cgroup をパラメーターとして指定でき、対象の cgroup 内のタスクすべてがプロファイリングされます。
重要

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

関連情報

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

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.