制御グループ・ファイル・システムについて
cgroup
機能は、/sys/fs/cgroup
に階層ファイル・システムとしてマウントされています。
ディレクトリ/sys/fs/cgroup
は、ルート制御グループとも呼ばれます。ルート制御グループ・ディレクトリの内容は、システムにマウントされているcgroup
のバージョンによって異なります。cgroups v2
の場合、ディレクトリの内容は次のとおりです。
ls /sys/fs/cgroup
cgroup.controllers cpuset.mems.effective memory.stat
cgroup.max.depth cpu.stat misc.capacity
cgroup.max.descendants dev-hugepages.mount sys-fs-fuse-connections.mount
cgroup.procs dev-mqueue.mount sys-kernel-config.mount
cgroup.stat init.scope sys-kernel-debug.mount
cgroup.subtree_control io.pressure sys-kernel-tracing.mount
cgroup.threads io.stat system.slice
cpu.pressure memory.numa_stat user.slice
cpuset.cpus.effective memory.pressure
mkdir
コマンドを使用して、ルート制御グループ内にcgroup
サブディレクトリを作成できます。たとえば、次のcgroup
サブディレクトリを作成します。
-
/sys/fs/cgroup/MyGroups/
-
/sys/fs/cgroup/MyGroups/cgroup1
-
/sys/fs/cgroup/MyGroups/cgroup2
ノート:
ベスト・プラクティスは、/sys/fs/cgroup
内に少なくとも2つのレベルの子cgroups
を作成することです。前述のリストの例では、最初の子グループMyGroups
を、システムに必要な様々なcgroups
を含む親として使用することで、このプラクティスに従っています。
階層内の各cgroup
には、次のファイルが含まれます。
-
cgroup.controllers
-
この読取り専用ファイルには、現在の
cgroup
で使用可能なコントローラがリストされます。このファイルの内容は、親のcgroup
内のcgroup.subtree_control
ファイルの内容と一致します。 -
cgroup.subtree_control
-
このファイルには、現在の
cgroup
の直下の子cgroups
に対して有効になっているcgroup.controllers
ファイル内のコントローラが含まれています。コントローラ(
pids
など)がcgroup.subtree_control
ファイルに存在する場合、対応するコントローラ・インタフェース・ファイル(pids.max
など)は、現在のcgroup
の直下の子に自動的に作成されます。
アプリケーションのリソース管理を実装できる子グループを作成する手順の例は、CPUの重みの設定によるCPU時間配分の制御を参照してください。
cgroup
を削除するには、cgroup
に他の子グループが含まれていないことを確認してから、ディレクトリを削除します。たとえば、子グループ/sys/fs/cgroup/MyGroups/cgroup1
を削除するには、次のコマンドを実行します。
sudo rmdir /sys/fs/cgroup/MyGroups/cgroup1