echo $$> tasks在尝试使用cpuset时给出"设备上没有剩余空间"

Hol*_*obs 5 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

有帮助吗?

Roh*_*gal 10

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

$ cat /dev/cpuset/Charlie/cpuset.mems
Run Code Online (Sandbox Code Playgroud)

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

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

$ echo 0 > /dev/cpuset/Charlie/cpuset.mems
Run Code Online (Sandbox Code Playgroud)

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

$ echo 0 > /dev/cpuset/Charlie/cpuset.cpus
Run Code Online (Sandbox Code Playgroud)

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