SPONSORED

cgroup v1(しーぐるーぷ ぶいーいち)

最終更新:2026/4/28

cgroup v1は、Linuxカーネルにおけるリソース制限・管理の機能の一つであり、プロセスグループに対してCPU、メモリ、I/Oなどのリソース使用量を制御する。

別名・同義語 コントロールグループ v1CGroups v1

ポイント

cgroup v1は、システム全体の安定性と公平性を保つために、コンテナや仮想マシンなどのリソースを効率的に管理する上で重要な役割を果たす。cgroup v2が登場し、徐々に移行が進んでいる。

cgroup v1の概要

cgroup v1(control groups version 1)は、Linuxカーネルに組み込まれたリソース管理能です。プロセスグループに対して、CPU時間、メモリ使用量、ディスクI/O、ネットワーク帯域幅などのリソース使用量を制限したり、優先順位を付けたりすることができます。これにより、特定のプロセスがシステム全体のリソースを独占することを防ぎ、システムの安定性と公平性を保つことができます。

cgroup v1の仕組み

cgroup v1は、階層的な構造を持っています。ルートcgroupから始まり、そこからサブcgroupを再帰的に作成することができます。各cgroupは、割り当てられたリソース制限と、そのcgroupに含まれるプロセスグループを管理します。リソース制限は、cgroupファイルシステムを通じて設定されます。このファイルシステムは、/sys/fs/cgroup以下にマウントされます。

cgroup v1の主な機能

  • CPU制限: プロセスグループが使用できるCPU時間を制限します。
  • メモリ制限: プロセスグループが使用できるメモリ量を制限します。
  • I/O制限: プロセスグループがディスクI/Oを実行できる速度を制限します。
  • ネットワーク制限: プロセスグループが使用できるネットワーク帯域幅を制限します。
  • プロセス優先度: プロセスグループの優先度を設定します。

cgroup v1の利用例

  • コンテナ: DockerやKubernetesなどのコンテナ技術は、cgroup v1を使用してコンテナのリソースを制限します。
  • 仮想マシン: 仮想マシンも、cgroup v1を使用してリソースを制限することができます。
  • バッチ処理: バッチ処理ジョブの実行時間を制限し、システムへの影響を最小限に抑えることができます。

cgroup v2への移行

cgroup v1は、設計上の制約や複雑さから、cgroup v2が登場しました。cgroup v2は、よりシンプルで柔軟な設計であり、パフォーマンスの向上も期待されています。現在、多くのディストリビューションでcgroup v2がデフォルトで使用されるようになり、cgroup v1からcgroup v2への移行が進んでいます。

SPONSORED