【问题标题】:cgroup limit reached - no space left on device已达到 cgroup 限制 - 设备上没有剩余空间
【发布时间】:2017-07-24 10:37:35
【问题描述】:

我们有两台使用 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,但那根本不存在。

【问题讨论】:

  • 你需要查看物理磁盘空间,所以 "df -h /sys/fs/cgroup"

标签: linux ubuntu server cgroups


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    泊坞窗图片-a

    docker ps -a

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

    docker system prune -a

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-12-29
      • 2012-01-14
      • 2012-05-15
      • 2018-11-22
      • 2015-07-21
      • 2020-12-16
      • 2014-11-20
      相关资源
      最近更新 更多