加入收藏 | 设为首页 | 会员中心 | 我要投稿 源码门户网 (https://www.92codes.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 系统 > 正文

容器内存占用之系统cache说明

发布时间:2021-12-13 12:35:08 所属栏目:系统 来源:互联网
导读:今天小编要为大家带来的是容器内存占用之系统cache介绍,希望对大家会有帮助,有需要的朋友一起去看看吧 缘起: 监控(docker stats)显示容器内存被用完了,进入容器瞅了瞅,没有发现使用内存多的进程,使用awk等工具把容器所有进程使用的内存加起来看看,
今天小编要为大家带来的是容器内存占用之系统cache介绍,希望对大家会有帮助,有需要的朋友一起去看看吧
 
 
缘起:
 
监控(docker stats)显示容器内存被用完了,进入容器瞅了瞅,没有发现使用内存多的进程,使用awk等工具把容器所有进程使用的内存加起来看看,距离用完还远了去了,何故?
 
分析:
 
该不会docker stats计算错误?
 
进入/sys/fs/cgroup/memory/docker/xxxxx/ 查看memory.usage ,确认计算没有错误
 
我们知道,系统内存会有一部分被buffer、cache之类占用,linux也会把这部分内存算到已使用,对于容器来讲,也应该存在此“问题”,而且非常有可能linux会把某容器引发的cache占用算到容器占用的内存上;验证很简单,进容器dd一个大文件就知道了:
 
dd 大文件后,docker stat显示已用内存变多
 
宿主机上: echo 3 > /proc/sys/vm/drop_caches 后,docker stat显示已用内存变少
 
至此,原因查明
 
问题:
 
对于宿主机来讲,计算内存占用时,可以拿已用内存减去cache/buffer ,那么对于容器来讲,如果减去容器部分的cache/buffer 呢?如果不减去,也会造成误报警
 
测试发现: dd 产生的文件cache占用的内存会计算到 inactive_file 的头上

(编辑:源码门户网)

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

    热点阅读