就在过去的一天里,我的 Arch Linux 系统开始消耗内存。这似乎是在系统开机时开始的,我找不到方法来阻止它。症状是报告的内存使用量开始缓慢上升,但任何一个进程的内存没有任何伴随的上升。这个过程在启动后大约八小时内完成,系统由于交换颠簸而冻结,OOM 杀死每个进程,最后因“内存不足且没有可杀死的进程”而导致内核恐慌。
一个奇怪的方面是,不同工具的内存使用报告并不统一。top
并free
报告使用的内存比htop
任何给定时间都少,尽管所有报告仍然远远超过进程使用的内存。我能与问题开始的唯一明显联系是,昨天是我第一次在此操作系统安装上运行 VMware Player;然而,系统已经重新启动多次,因为从未运行过它,并且重新启动后没有加载任何内核模块,所以我非常不确定它是如何导致这个问题的。
技术数据:
# free
total used free shared buff/cache available
Mem: 4051344 2966128 335004 3472 750212 817888
Swap: 5464060 0 5464060
# cat /proc/meminfo
MemTotal: 4051344 kB
MemFree: 379164 kB
MemAvailable: 861696 kB
Buffers: 51988 kB
Cached: 428512 kB
SwapCached: 0 kB
Active: 828600 kB
Inactive: 341056 kB
Active(anon): 689964 kB
Inactive(anon): 2952 kB
Active(file): 138636 kB
Inactive(file): 338104 kB
Unevictable: 0 kB
Mlocked: 0 kB
SwapTotal: 5464060 kB
SwapFree: 5464060 kB
Dirty: 184 kB
Writeback: 0 kB
AnonPages: 689444 kB
Mapped: 215500 kB
Shmem: 3472 kB
Slab: 265636 kB
SReclaimable: 35540 kB
SUnreclaim: 230096 kB
KernelStack: 4304 kB
PageTables: 10368 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 7489732 kB
Committed_AS: 1746596 kB
VmallocTotal: 34359738367 kB
VmallocUsed: 321932 kB
VmallocChunk: 34358947836 kB
HardwareCorrupted: 0 kB
AnonHugePages: 192512 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
DirectMap4k: 136576 kB
DirectMap2M: 4057088 kB
DirectMap1G: 0 kB
唯一/proc/meminfo
看起来可疑的数字是VmallocTotal
和VmallocChunk
数字,但这些数字远远大于我的物理内存和交换空间的总和,所以我不知道其意义。