我在安装了 libcgroup 的Ubuntu 14和SUSE Linux Enterprise Server 11 (x86_64)上使用 root 执行了以下操作:
cgcreate -t ngam:home -a ngam:home -g cpuset:/nadav2ndCpuSet
cgset -r cpuset.cpus=1 nadav2ndCpuSet
之后,如果你 cat /sys/fs/cgroup/cpuset/nadav2ndCpuSet/cpuset.cpus,你会得到: 1
这很好!因为它应该工作。
然后,从用户ngam,我运行了以下 cmd:
cgexec -g cpuset:nadav2ndCpuSet ~/whileLoop
其中whileLoop只是一个简单的程序,它在循环中运行,执行 sqrt。
之后,我收到以下错误消息:
cgroup 更改组失败
为什么会发生?谢谢!
我刚才在 Ubuntu 16.04 上玩 cgroup 时遇到了类似的问题。
使用控制器cpuset时,不会启动cpus和mems。因此,您必须手动执行此操作。因为你已经指定了 cpuset.cpus 你只需要设置 cpuset.mems
简单地运行
echo 0 > /sys/fs/cgroup/cpuset/nadav2ndCpuSet/cpuset.mems
Run Code Online (Sandbox Code Playgroud)
或者
cgset -r cpuset.mems=0 nadav2ndCpuSet
Run Code Online (Sandbox Code Playgroud)
会解决你的问题。
有关 cpuset 的更多信息,请参阅http://man7.org/linux/man-pages/man7/cpuset.7.html
| 归档时间: |
|
| 查看次数: |
4719 次 |
| 最近记录: |