我正在使用 Debian 9.3,free
命令返回
total used free shared buff/cache available
Mem: 131940516 100433176 29189576 33940 2317764 30413920
Swap: 124999676 7736 124991940
因此可用内存为 22%,但第四列ps aux --sort -rss
总计为 20.9(已用内存的百分比)
cat /proc/meminfo | sort -k2,2nr
返回
VmallocTotal: 34359738367 kB
CommitLimit: 190969932 kB
MemTotal: 131940516 kB
SwapTotal: 124999676 kB
SwapFree: 124991940 kB
DirectMap2M: 94552064 kB
DirectMap1G: 40894464 kB
Committed_AS: 31307212 kB
MemAvailable: 30854080 kB
MemFree: 29629760 kB
Active: 28760588 kB
AnonPages: 28192300 kB
Active(anon): 27489640 kB
Slab: 3245360 kB
SUnreclaim: 2746444 kB
Cached: 1735180 kB
Active(file): 1270948 kB
Inactive: 1252084 kB
DirectMap4k: 788164 kB
Inactive(anon): 738148 kB
Inactive(file): 513936 kB
SReclaimable: 498916 kB
Buffers: 83652 kB
PageTables: 62240 kB
Mapped: 47016 kB
Shmem: 33940 kB
KernelStack: 32352 kB
Hugepagesize: 2048 kB
SwapCached: 2004 kB
Dirty: 36 kB
AnonHugePages: 0 kB
Bounce: 0 kB
HardwareCorrupted: 0 kB
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
HugePages_Total: 0
Mlocked: 0 kB
NFS_Unstable: 0 kB
ShmemHugePages: 0 kB
ShmemPmdMapped: 0 kB
Unevictable: 0 kB
VmallocChunk: 0 kB
VmallocUsed: 0 kB
Writeback: 0 kB
WritebackTmp: 0 kB
什么进程正在消耗我的内存?
答案1
MemAvailable: 30854080 kB
不进行交换,可用内存不足 29 GB。如果不进行任何更改,此工作负载不会面临内存压力。实际上,由于其中大部分是 MemFree,因此被“浪费”,甚至没有用于文件缓存。
尽管它是内存中工作集的一个很好的指标,但对 RSS 进行求和是不准确的。RSS 是最近的页面,无论是否共享。Linux 只会拥有一个共享页面的副本。
实际上,通过公平处理共享页面来获取每个进程的内存使用量是令人烦恼的。smem
是一个通过解析 /proc/$pid/smaps 中的每个内存映射来尝试实现此目的的工具