已达到cgroup限制 - 设备

时间:2017-07-24 10:37:35

标签: linux ubuntu server cgroups

我们有两台服务器使用docker运行ubuntu 14.04。每隔一个月,当我们开始或建立一个容器时,我们会收到消息:

container_linux.go:247: starting container process caused     "process_linux.go:258: applying cgroup configuration for process caused 
\"mkdir /sys/fs/cgroup/memory/docker/cf657a58a1382e62976b4d339946f07e8a40f22f18b52822f884834f78830806: no space left on device\""

磁盘仍然有很多空间,cat /proc/cgroups给出了这个:( num_cgroups不断增加)

#subsys_name    hierarchy   num_cgroups enabled
cpuset  1   65805   1
cpu 2   65807   1
cpuacct 3   65803   1
blkio   4   65803   1
memory  5   65535   1
devices 6   65805   1
freezer 7   65803   1
net_cls 8   65803   1
perf_event  9   65803   1
net_prio    10  65803   1
hugetlb 11  65803   1

到目前为止,重新启动服务器始终有所帮助,但我们并不想每隔几个月重启服务器。

所以我开始研究并在/ sys / fs / cgroup / * / user路径中找到了一个目录。 /sys/fs/cgroup/systemd/user/998.user本身拥有65662个子目录。所有名称都有点像36309.session(数字增加)

有没有办法查看哪些进程正在创建这些cgroup? 我认为这是流程998,但这甚至不存在。

2 个答案:

答案 0 :(得分:0)

我在AWS Batch遇到了同样的问题。我没有解决方案,但我发现了这个讨论https://github.com/moby/moby/issues/29638。似乎问题是内核和/或Docker中的某种泄漏。

答案 1 :(得分:0)

我遇到了同样的问题。你可能有很多悬空的图像/容器 这导致 docker 的 cgroup 空间不足。通过以下方式检查:

<块引用>

docker 镜像 -a

<块引用>

docker ps -a

你需要清理它。一种解决方案是删除目前未使用的所有图像/容器/等:

<块引用>

docker system prune -a