Answers:
您不能以普通用户的身份进行操作。但是您可以将cgroup设置为root,并使其可由用户配置。
如果尚未通过例如systemd安装默认的cgroups控制器:
$ sudo mount -t tmpfs cgroup_root /sys/fs/cgroup
$ sudo mkdir /sys/fs/cgroup/cpuset
$ sudo mount -t cgroup -o cpuset cpuset /sys/fs/cgroup/cpuset
创建一个cgroup:
$ sudo mkdir /sys/fs/cgroup/cpuset/${USER}
$ sudo chown -R ${USER} /sys/fs/cgroup/cpuset/${USER}
现在,您可以以普通用户身份修改cgroup的配置:
$ echo 0-3 > /sys/fs/cgroup/cpuset/${USER}/cpuset.cpus
向该组添加一个进程:
$ ./my_task &
$ echo $! > /sys/fs/cgroup/cpuset/${USER}/tasks
或创建一个子组:
$ mkdir /sys/fs/cgroup/cpuset/${USER}/subgroup
$ echo 0-1 > /sys/fs/cgroup/cpuset/${USER}/subgroup/cpuset.cpus
$ ./my_other_task &
$ echo $! > /sys/fs/cgroup/cpuset/${USER}/subgroup/tasks
rm -r
会先尝试删除文件,但失败。使用rmdir
删除cgroup中。
rmdir
在tasks
文件为空之前,您不能。root将需要查看子组中的任务文件,并将其中的每个pid都回显到根cgroup的任务文件中(/dev/cpuset/tasks
在我的RHEL 6.7 [kernel 2.6.32-358]框中,但/sys/fs/cgroup/cpuset/tasks
此处可能适当)。
rm -r
我失败了