我是靠谱客的博主 碧蓝唇彩,最近开发中收集的这篇文章主要介绍容器内存占用之系统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 的头上

最后

以上就是碧蓝唇彩为你收集整理的容器内存占用之系统cache介绍的全部内容,希望文章能够帮你解决容器内存占用之系统cache介绍所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(116)

评论列表共有 0 条评论

立即
投稿
返回
顶部