一段时间以来,我注意到我的系统似乎比我预期的更快地耗尽内存。当它出现这种情况时,我确实注意到它有时会变慢一点,并且我的风扇开始剧烈旋转(虽然后者可能是另一个问题?)。我尝试在 Google 上搜索以了解发生了什么(例如,我遇到了无法追溯到服务或应用程序的高内存使用率和https://www.linuxatemyram.com/),但我还没有找到令人满意的答案。我的计算机使用的内存(接近 100% 的 RAM 和交换空间)比正在运行的应用程序报告的内存多得多,原因是什么?
目前,free -m
输出
total used free shared buff/cache available
Mem: 15337 14538 386 14 411 454
Swap: 20480 15442 5038
我正在运行的应用程序使用的内存量的粗略估计(用 计算ps -o %mem ax | tail -n +2 | paste -sd+ | bc
)为 47.6%。此外,如果我打开系统监视器并尝试手动将“内存”列中的量相加,那么我得到的值仍然不接近报告的总使用内存量。
运行arcstat -a
输出
time hits miss read hit% miss% dhit dmis dh% dm% phit pmis ph% pm% mhit mmis mread mh% mm% arcsz size c mfu mru mfug mrug eskip el2skip el2cach el2el el2mfu el2mru el2inel mtxmis dread pread grow need free avail waste
13:14:22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5.0K 5.0K 479M 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 830M 235M 0
运行后arc_summary
可以发现这里。我把它放在 pastebin 中,因为 askubuntu 限制了这个问题的字符数。
我不能说我知道如何解析所有这些输出,但在我幼稚的眼中,这似乎并不表示 ARC 缓存使用了多少内存(至少,ARC size (current) 行报告的数字很小)。而且,zfs get comprresion
没有产生任何输出。
类似地,运行df -hl -t"tmpfs"
输出以下内容,这似乎也不能解释我的大部分“丢失”的内存使用情况。
Filesystem Size Used Avail Use% Mounted on
tmpfs 1.5G 4.0M 1.5G 1% /run
tmpfs 7.5G 260K 7.5G 1% /dev/shm
tmpfs 5.0M 8.0K 5.0M 1% /run/lock
tmpfs 7.5G 0 7.5G 0% /run/qemu
tmpfs 1.5G 228K 1.5G 1% /run/user/1000
如果有帮助,cat /proc/meminfo
输出
MemTotal: 15705548 kB
MemFree: 672004 kB
MemAvailable: 838776 kB
Buffers: 2060 kB
Cached: 329484 kB
SwapCached: 258588 kB
Active: 3268524 kB
Inactive: 3574140 kB
Active(anon): 3095044 kB
Inactive(anon): 3439264 kB
Active(file): 173480 kB
Inactive(file): 134876 kB
Unevictable: 340 kB
Mlocked: 340 kB
SwapTotal: 20972540 kB
SwapFree: 4630972 kB
Zswap: 0 kB
Zswapped: 0 kB
Dirty: 452 kB
Writeback: 0 kB
AnonPages: 6253600 kB
Mapped: 191184 kB
Shmem: 22852 kB
KReclaimable: 194792 kB
Slab: 588360 kB
SReclaimable: 194792 kB
SUnreclaim: 393568 kB
KernelStack: 75888 kB
PageTables: 194976 kB
SecPageTables: 0 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 28825312 kB
Committed_AS: 46712256 kB
VmallocTotal: 34359738367 kB
VmallocUsed: 231560 kB
VmallocChunk: 0 kB
Percpu: 19776 kB
HardwareCorrupted: 0 kB
AnonHugePages: 0 kB
ShmemHugePages: 0 kB
ShmemPmdMapped: 0 kB
FileHugePages: 0 kB
FilePmdMapped: 0 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
Hugetlb: 0 kB
DirectMap4k: 11380384 kB
DirectMap2M: 4728832 kB
DirectMap1G: 0 kB
我能想到的唯一要添加的其他内容是系统监视器的资源选项卡的屏幕截图。
如果还有什么我可以做的来帮助弄清楚发生了什么,请告诉我。