Я работаю над debian 9.3, free
возврат команды
total used free shared buff/cache available
Mem: 131940516 100433176 29189576 33940 2317764 30413920
Swap: 124999676 7736 124991940
итак ≃ 22% свободной памяти, но 4-й столбец 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
Какой процесс занимает мою память?
MemAvailable: 30854080 kB
Не совсем 29 ГБ доступно без подкачки памяти. Если вы ничего не измените, эта рабочая нагрузка не будет испытывать нехватку памяти. Фактически, поскольку большая часть из них - это MemFree, она «тратится впустую», даже не используется для кеширования файлов.
Хотя это хороший индикатор рабочего набора в памяти, суммирование RSS будет неточным. RSS - это недавние страницы, независимо от того, опубликованы они или нет. В Linux будет только одна копия общих страниц.
На самом деле использование памяти для каждого процесса при справедливом обращении с общими страницами раздражает. smem
- это инструмент, который пытается сделать это, анализируя каждое отображение памяти в / proc / $ pid / smaps