我是使用cgroup的新手。我在CentOS 64上使用libcgroup管理cgroup。我设法创建了一些cgroup,例如。
[ehsan.haq@datavault ~]$ cgcreate -g blkio:/test
[ehsan.haq@datavault ~]$ cgcreate -g cpu:/test
可以说,我有一个父进程125672
及其子进程33117, 33403, 33404, 33880, 34663
[ehsan.haq@datavault ~]$ pgrep -P 125672
33117
33403
33404
33880
34663
我想要的是移动父流程125672
及其现有子33117, 33403, 33404, 33880, 34663
以及cgroup ?,?,?
和blkio:/test
中的未来子cpu:/test
。实现这一目标的正确方法是什么?
我试过了
cgclassify -g blkio:/test [--sticky] 125672
cgclassify -g cpu:/test [--sticky] 125672
但cgroup.procs
和tasks
文件仅包含父进程ID。
[ehsan.haq@datavault ~]$ cat /cgroup/blkio/test/cgroup.procs
125672
[ehsan.haq@datavault ~]$ cat /cgroup/blkio/test/tasks
125672
这是否意味着子进程不在父组cgroup中?如果没有,那我该怎么办呢。
我发现不是使用cgclassify
,而是使用
echo "{parent PID}" > /cgroup/blkio/test/tasks
然后所有未来的子进程也会在/cgroup/blkio/test/cgroup.procs