You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

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

火山引擎 最新活动