Linux 上已用内存下落不明

Linux 上已用内存下落不明

我的服务器运行内核 4.18,其中一些内存似乎在运行中丢失 - 常见的罪魁祸首(内核平板内存、页面缓存)已经被排除。

大约使用了 6 GB(MemTotal - MemAvailable),但如果我将进程、内核板和 shmem 使用的空间加起来,勉强达到 1 GB。那是在冷启动之后。其他 5 个人可能去了哪里?

最奇怪的是,我有一个相同的服务器,运行完全相同的应用程序,而 MemAvailable 实际上比那里高出 5 GB。

# ps fauxw | sed 1d | awk '{ x += $6 } END { print x }'
757368

# cat /proc/meminfo 
MemTotal:       32826040 kB
MemFree:        26493788 kB
MemAvailable:   26322932 kB
Buffers:           11948 kB
Cached:            72584 kB
SwapCached:            0 kB
Active:           247756 kB
Inactive:          41348 kB
Active(anon):     204952 kB
Inactive(anon):     1012 kB
Active(file):      42804 kB
Inactive(file):    40336 kB
Unevictable:           0 kB
Mlocked:               0 kB
SwapTotal:             0 kB
SwapFree:              0 kB
Dirty:                 4 kB
Writeback:             0 kB
AnonPages:        204632 kB
Mapped:            33052 kB
Shmem:              1396 kB
Slab:             219376 kB
SReclaimable:      30744 kB
SUnreclaim:       188632 kB
KernelStack:       18960 kB
PageTables:        12548 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:    16413020 kB
Committed_AS:    4565744 kB
VmallocTotal:   34359738367 kB
VmallocUsed:           0 kB
VmallocChunk:          0 kB
HardwareCorrupted:     0 kB
AnonHugePages:         0 kB
ShmemHugePages:        0 kB
ShmemPmdMapped:        0 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
DirectMap4k:      186396 kB
DirectMap2M:     9152512 kB
DirectMap1G:    26214400 kB

答案1

回答我自己的问题:

我最终发现内存使用量与网络接口环大小(ethtool -G)的不同设置有关。该主机上的 RX 和 TX 数量增加到 4096,并且每个都有 6 个 10G NIC 和许多队列(56 个 vcore),最终使用了 GB 的内存。

但这仍然是一件奇怪的事情,内存的使用似乎在 /proc/ 信息中的任何地方都不可见。

相关内容