已用(Linux)内存不等于 VmHWM 的总和?查找丢失的内存

已用(Linux)内存不等于 VmHWM 的总和?查找丢失的内存

我有一台运行 Linux(Ubuntu 16.04 amd64)的服务器(虚拟)。它分配了 8GB 内存,并且全部被使用,但我不知道是做什么用的。

root@server:~# free -k
              total        used        free      shared  buff/cache   available
Mem:        8176980     7892288      121580       22000      163112       94516
Swap:       1572860      206800     1366060

root@server:~# grep VmHWM /proc/*/status | awk 'BEGIN {tot=0} {tot+=$2} END {print tot}'
4293060

为什么 VmHWM 的总和不接近 8GB?我如何才能找出消耗内存(并导致服务器交换)的原因?有没有一些好的网站可以详细但清晰地解释 Linux 内存/资源的使用情况?:)

更多信息:

root@server:~# uname -a
Linux server 3.13.0-67-generic #110-Ubuntu SMP Fri Oct 23 13:24:41 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

root@server:~# cat /proc/meminfo 
MemTotal:        8176980 kB
MemFree:          151200 kB
Buffers:           10420 kB
Cached:            77100 kB
SwapCached:        27780 kB
Active:          2870576 kB
Inactive:         837248 kB
Active(anon):    2834228 kB
Inactive(anon):   808112 kB
Active(file):      36348 kB
Inactive(file):    29136 kB
Unevictable:           0 kB
Mlocked:               0 kB
SwapTotal:       1572860 kB
SwapFree:        1359252 kB
Dirty:               176 kB
Writeback:             0 kB
AnonPages:       3594152 kB
Mapped:            41096 kB
Shmem:             22036 kB
Slab:              65724 kB
SReclaimable:      39444 kB
SUnreclaim:        26280 kB
KernelStack:        5240 kB
PageTables:        37636 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:     5661348 kB
Committed_AS:    4266360 kB
VmallocTotal:   34359738367 kB
VmallocUsed:      289196 kB
VmallocChunk:   34359442456 kB
HardwareCorrupted:     0 kB
AnonHugePages:   2009088 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
DirectMap4k:       65472 kB
DirectMap2M:     8323072 kB

答案1

尝试随时将其与 vmrss 的结果进行比较,看是否匹配。

还可以尝试禁用透明大页面。并与虚拟化管理员核对,看看是否保留了整个 8 GB。

相关内容