今天监控到个很奇怪的问题,有台 主机上内存的 used 占用很高,而 中查看的内存占用,只有 20% 左右。如图,到底是什么占用了多余的内存?

!!! 啊哦,session 过期,现场被破坏,没能及时截图……

直接说说解决办法吧。

通过谷歌发现,存在一种叫 slab 内存占用的东西,通过 /proc/meminfo 可以查看。至于这个 slab 是神马东西我也还在研究,可参考底部链接,总之如果这一部分内存不能如期释放,会造成可用内存不足,影响主机性能。

释放命令如下:

通过测试,主要是在 2 阶段进行释放,也就是 free pagecache, dentries and inodes

附:
Linux内存之Slab
Linux slab 分配器剖析