我们有两台服务器使用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,但这甚至不存在。
答案 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