如何创建和使用
cgroups作为非root用户?
例如,我可以完全作为非root用户:
>创建一个可以访问一个CPU的cgroup
>在该cgroup中创建一个新进程
?
我第一次问here,但我没有得到完整的答案.我也是asked on stackoverflow,但这个问题已经被关闭了.
解决方法
您不能以普通用户身份执行此操作.但您可以将root用户设置为cgroup,并使其可由用户配置.
如果您还没有安装默认的cgroups控制器,例如systemd:
$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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。