内存使用量不正常:大部分 RAM 莫名其妙地消失了

内存使用量不正常:大部分 RAM 莫名其妙地消失了

我有一台 Fedora 30[5.6.13-100.fc30.x86_64]机器,板载 32GB RAM。启动后立即free -h显示htop使用了 21-22GB:

[ andriim@dev-r-vrt-007 ~/work ] $ free -h
              total        used        free      shared  buff/cache   available
Mem:           31Gi        22Gi       6.1Gi       2.0Mi       3.2Gi       8.8Gi
Swap:         2.0Gi       344Mi       1.6Gi

同时,我发现所有进程htop加起来使用的内存都远没有那么多。如果我按常驻内存使用情况排序,前 10 个进程加起来使用的内存大约为 300MB。

我尝试查找所有进程实际使用的 RAM 总和,但结果也远远达不到 21GB:

[ root@dev-r-vrt-007 /tmp ] # ps aux | awk '{sum=sum+$6}; END {print sum/1024 " MB"}'
437.898 MB

然后我想,也许问题与内核 SLAB 缓存有关。然而,情况似乎也不是这样的:

[ root@dev-r-vrt-007 ~ ] # slabtop -s c -o | head -n 12
 Active / Total Objects (% used)    : 3742847 / 3777379 (99.1%)
 Active / Total Slabs (% used)      : 75950 / 75950 (100.0%)
 Active / Total Caches (% used)     : 105 / 150 (70.0%)
 Active / Total Size (% used)       : 625537.34K / 637690.48K (98.1%)
 Minimum / Average / Maximum Object : 0.01K / 0.17K / 17.31K

  OBJS ACTIVE  USE OBJ SIZE  SLABS OBJ/SLAB CACHE SIZE NAME
 47552  47531  99%    2.00K   2972       16     95104K kmalloc-2k
1267328 1267252  99%    0.06K  19802       64     79208K vmap_area
593544 593484  99%    0.09K  14132       42     56528K kmalloc-96
 90376  87689  97%    0.59K   3476       26     55616K inode_cache
 95168  94892  99%    0.50K   2974       32     47584K kmalloc-512

那么,也许 HugePages 正在保留丢失的 RAM?但似乎没有:

[ root@dev-r-vrt-007 ~ ] # cat /proc/meminfo | grep Huge
AnonHugePages:         0 kB
ShmemHugePages:        0 kB
FileHugePages:         0 kB
HugePages_Total:      16
HugePages_Free:       16
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:    1048576 kB
Hugetlb:        16777216 kB

我没有主意了。还有什么建议可以去哪里查找丢失的 RAM 吗?

相关内容