Linux虚拟机内存占用异常偏高问题排查求助
Linux虚拟机内存占用异常偏高问题排查求助
各位大佬好,我手头有一台Linux虚拟机,最近发现内存占用特别高,自己折腾着排查了一些数据,但还是搞不清内存到底消耗在哪了,想请大家帮忙分析下!
首先用free -mt查看了系统内存整体情况:
[]$ free -mt total used free shared buff/cache available Mem: 15885 13606 1998 2 279 1687 Swap: 0 0 0 Total: 15885 13606 1998
整理下关键数据:
- 总内存:15,885 MB
- 已用内存:13,606 MB
- 空闲内存:1,998 MB
然后我统计了所有进程的常驻内存(RSS)总和,用的命令是ps -eo rss | awk '{sum+=$1} END {print sum/1024}',结果是:
4119.69
也就是说所有进程加起来才用了约4120 MB的内存,这和free显示的13G多已用差了好多。
接着我查了内核Slab内存的使用情况,用sudo slabtop -o得到的输出片段:
Active / Total Objects (% used) : 796742 / 840221 (94.8%) Active / Total Slabs (% used) : 14634 / 14634 (100.0%) Active / Total Caches (% used) : 80 / 107 (74.8%) Active / Total Size (% used) : 88251.60K / 97230.54K (90.8%) Minimum / Average / Maximum Object : 0.01K / 0.12K / 8.00K
换算成MB的话:
- 总Slab内存:~972 MB
- 活跃Slab内存:~882 MB
之后我又检查了tmpfs的占用,命令是mount | grep -i tmpfs | awk '{print $3}' | sudo xargs du -sh,结果只显示了:
0 /de...
后面的内容截断了,但目前看到的tmpfs占用几乎为0。
现在我实在懵了,free显示的已用内存和我统计的进程、Slab、tmpfs加起来的量差了快8G,这部分内存到底被什么占用了?有没有大佬能告诉我接下来该怎么排查定位问题呀?
备注:内容来源于stack exchange,提问作者sureshbabu




