加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux – Docker没有正确报告内存使用情况?

发布时间:2020-12-14 01:43:38 所属栏目:Linux 来源:网络整理
导读:通过对docker(docker 1.5和1.6没有内存限制)进行一些长寿测试(centos 7 / rhel 7)并观察运行容器的systemd-cgtop统计数据,我注意到看起来内存使用率非常高.通常,在非容器化状态下运行的特定应用程序仅使用大约200-300Meg的内存.在3天的时间里,我最终看到syst
通过对docker(docker 1.5和1.6没有内存限制)进行一些长寿测试(centos 7 / rhel 7)并观察运行容器的systemd-cgtop统计数据,我注意到看起来内存使用率非常高.通常,在非容器化状态下运行的特定应用程序仅使用大约200-300Meg的内存.在3天的时间里,我最终看到systemd-cgtop报告我的容器使用了大约13G的内存.虽然我不是一个专家 Linux管理员,但我开始深入研究这一点,它指出了以下文章:

https://unix.stackexchange.com/questions/34795/correctly-determining-memory-usage-in-linux

http://corlewsolutions.com/articles/article-6-understanding-the-free-command-in-ubuntu-and-linux

所以我基本上理解的是确定系统单元内的实际空闲内存是查看 – / buffers / cache:在“free -m”内而不是顶行,因为我也注意到了内部的顶线“free -m”会随着使用的内存不断增加,并且不断显示可用内存量的减少,就像我通过systemd-cgtop观察容器一样.如果我观察 – / buffers / cache:行,我将看到正在使用/释放的实际稳定内存量.此外,如果我观察主机顶部的实际过程,我可以看到过程本身只使用不到1%的内存(32%的0.8%).

我对这里发生的事情感到有些困惑.如果我为一个容器设置了500-1000M的内存限制(我相信它会因交换而变成两倍),当我达到内存限制时,我的进程最终会停止,即使进程本身没有使用在那么多记忆附近?如果有人对前者有任何反馈,那就太好了.谢谢!

解决方法

我在CentOS 7中使用了docker一段时间了,并且被这些混淆了.检查github问题链接,看起来这个版本中的docker stats有点误导.

https://github.com/docker/docker/issues/10824

所以我只是忽略了从docker stats获取的内存使用情况.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读