我尝试了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
任何帮助?
答案 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继承内存和节点设置。