echo $$>在尝试使用cpuset时,任务给出“设备上没有剩余空间”

时间:2015-02-05 16:06:17

标签: cpu cgroups cpuset

我尝试了cpuset(7)手册中的示例并创建了一个cpuset Charlie。在Ubuntu 14.4 LTS和SLES 12上,我尝试将当前进程放入cpuset时出现以下错误:

/dev/cpuset/Charlie# echo $$ > tasks

bash: echo: write error: No space left on device

任何帮助?

1 个答案:

答案 0 :(得分:9)

这通常意味着您没有为cpuset分配任何内存节点。

$ cat /dev/cpuset/Charlie/cpuset.mems

会返回一个空行。因此,您无法为此cgroup分配新任务,因为它没有任何内存可供使用。

将一个或所有内存节点分配给此cgroup应该修复它。

$ echo 0 > /dev/cpuset/Charlie/cpuset.mems

您还需要分配一个cpu节点,因为它也可能是空的。

$ echo 0 > /dev/cpuset/Charlie/cpuset.cpus

将cgroup.clone_children设置为1有助于在创建子cgroup时自动从父cgroup继承内存和节点设置。