9

我尝试了 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

有什么帮助吗?

4

1 回答 1

20

这通常意味着您没有为 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 继承内存和节点设置。

于 2015-02-05T22:47:00.160 回答