私はcgroupが特定の条件を満たすプロセスグループだと思います。http://man7.org/linux/man-pages/man7/cgroups.7.html
cグループはプロセス収集cgroupファイルシステムによって定義された制限またはパラメータセットにバインドされます。
与えられたPIDを持つプロセスのcgroupを見つけるのは正しいですか?ただ実行してください。
$ cat /proc/11/cgroup
12:perf_event:/
11:blkio:/
10:hugetlb:/
9:freezer:/
8:pids:/
7:cpuset:/
6:devices:/
5:cpu,cpuacct:/
4:rdma:/
3:memory:/
2:net_cls,net_prio:/
1:name=systemd:/
0::/
cgroupがID番号であることがわかりました。ただし、これはキーと値のペアのリストです。上記のKey-Valueペアのリストはプロセスのリストを表していますか?
同じcgroup内のすべてのプロセスを見つけることはできますか?
ありがとうございます。
ベストアンサー1
引用したマニュアルページに記載されているように、cgroupはプロセスグループです。
の内容は、/proc/11/cgroup
プロセス11が属する全ての制御グループを記述する。 v1グループの場合、各行の最初のフィールドは階層ID、2番目のフィールドはコントローラのリスト、3番目のフィールドは階層内のcgroupのパス名です。 v2 グループの場合、最初のフィールドは 0 で、2 番目のフィールドは空で、3 番目のフィールドはパス名です。
特定のcgroup内のすべてのプロセスを見つけ、tasks
そのsysfsディレクトリのファイルを表示します。例えば
cat /sys/fs/cgroup/perf_event/tasks
以下に該当します12:perf_event:/
。
| /sys/fs/cgroup/ | perf_event | / | tasks
| | | |
|< mountpoint >|<controller>| ^ |
|
cgroup pathname --+