我的服务器运行内核 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/ 信息中的任何地方都不可见。