3

我在安装了 libcgroup 的Ubuntu 14SUSE 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 更改组失败

为什么会这样?谢谢!

4

2 回答 2

5

我刚才在 Ubuntu 16.04 上玩 cgroups 时遇到了类似的情况。

使用控制器 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

于 2017-04-10T08:49:53.677 回答
0

我发现我忘记了cgconfig从系统重启开始,所以一个简单systemctl start cgconfig的解决问题,然后不要忘记systemctl enable cgconfig让它从系统重启开始。

我知道我的这个答案可能与问题无关。我希望当人们搜索错误时cgroup change of group failed,这个答案可以帮助他们。

顺便说一句:systemctl start cgconfig适用于 centos 7,对于 centos 6,您可以使用service cgconfig start / chkconfig cgconfig on

于 2021-08-10T11:32:37.343 回答