首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Docker守护进程内存泄漏,原因是来自长期运行的进程的日志

Docker守护进程内存泄漏,原因是来自长期运行的进程的日志
EN

Stack Overflow用户
提问于 2014-12-23 21:28:52
回答 3查看 24.5K关注 0票数 27

我有以下设置:

  1. 在容器中运行的Perl服务并将其写入STDERR
  2. 登录口将这些日志发送到远程服务器进行存档。

在一台600 MB的RAM机器中。

我还定期在以下位置截断日志:

代码语言:javascript
运行
复制
/var/lib/docker/containers/CID/CID-json.log

正如建议的那样,这里可以避免100%的磁盘场景。

问题

Docker守护进程以较低的内存使用率启动,在运行容器的2天后,1%开始缓慢地增加到40%。

参考

本期本期中已经提到了Docker守护进程内存泄漏问题。但它们现在都关闭了,表示在提交时合并。我正在运行最新版本的docker (DockerVersion1.4.0,Build4595d4f),但仍然面临着内存使用量单调增加的问题。

编辑:我做了这个实验:只要在容器中运行bash进程,打印出很多行到STDERR,停靠守护进程的内存使用就会加速。

即使清除了底层日志文件(/var/lib/docker/containers/CID/CID-json.log),docker是否执行某些/var/lib/docker/containers/CID/CID-json.log并且不释放内存?

显然有不行来清理日志。对于长期运行的任务,此承诺会解决这个问题吗?

我不知道为什么docker守护进程的内存使用量不断增加。如何调试此问题?

EN

回答 3

Stack Overflow用户

发布于 2015-03-06 13:11:53

至少还有一个与日志内存泄漏有关的未决问题:https://github.com/docker/docker/issues/9139

票数 3
EN

Stack Overflow用户

发布于 2015-03-06 13:26:03

这可能不是您要寻找的,但我通常运行一个cron作业重新启动我的容器后,每天一定时间。这确保了容器始终都有足够的RAM,而且我通常在创建容器时限制容器的最大内存使用量。

容器只需几秒钟就可以重新启动和服务数据,如果您没有运行高可用性服务,并且能够承受几秒钟的停机时间,请考虑重新启动容器(假设您没有持久卷)。

然而,如果你确实找到了解决你的问题的办法,请告诉我们。

票数 1
EN

Stack Overflow用户

发布于 2017-10-30 11:17:45

  • docker rm $(docker ps -a -q)
  • docker rmi --force $(docker images -q)
  • docker system prune --force

需要成为根用户。

  • systemctl stop docker
  • rm -rf /var/lib/docker/aufs
  • apt-get autoclean
  • apt-get autoremove
  • systemctl start docker
票数 -6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27628276

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档