尝试将进程添加到cgroup时,“获取组的cgroup更改失败”

时间:2016-05-30 20:22:06

标签: cgroups

我在安装了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更改失败

为什么会这样? 谢谢!

1 个答案:

答案 0 :(得分:2)

我刚刚在Ubuntu 16.04上玩cgroup时碰到了类似的东西。

使用控制器cpuset时,不会启动cpus和mems。因此,您必须手动执行此操作。由于您已经指定了cpuset.cpus,因此只需要设置cpuset.mems

只需运行

echo 0 > /sys/fs/cgroup/cpuset/nadav2ndCpuSet/cpuset.mems

cgset -r cpuset.mems=0 nadav2ndCpuSet

可以解决您的问题。

有关cpuset的更多信息,请参阅http://man7.org/linux/man-pages/man7/cpuset.7.html