Я пытаюсь найти хорошую формулу для определения объема доступной памяти. В настоящее время я использую следующую формулу: freeMem = MemFree + Buffers + Cached - Shmem
. Однако по этой формуле моя встроенная система теряет память. Теперь мне интересно, есть ли у меня утечка памяти, поэтому я включил kmemleak
в ядре. Согласно mpatrol
, valgrind
и coverity
у меня нет утечек в пользовательском пространстве. Есть ли утечка в пространстве ядра или моя формула отключена? Обратите внимание, что у меня нет свопа для этого устройства.
MYBOX> cat /proc/meminfo
MemTotal: 2073348 kB
MemFree: 1388180 kB
Buffers: 137016 kB
Cached: 88772 kB
SwapCached: 0 kB
Active: 589124 kB
Inactive: 44380 kB
Active(anon): 410236 kB
Inactive(anon): 1992 kB
Active(file): 178888 kB
Inactive(file): 42388 kB
Unevictable: 0 kB
Mlocked: 0 kB
HighTotal: 1310716 kB
HighFree: 811828 kB
LowTotal: 762632 kB
LowFree: 576352 kB
SwapTotal: 0 kB
SwapFree: 0 kB
Dirty: 64 kB
Writeback: 0 kB
AnonPages: 407712 kB
Mapped: 26140 kB
Shmem: 4516 kB
Slab: 40408 kB
SReclaimable: 8320 kB
SUnreclaim: 32088 kB
KernelStack: 1480 kB
PageTables: 1464 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 1036672 kB
Committed_AS: 660508 kB
VmallocTotal: 237344 kB
VmallocUsed: 104556 kB
VmallocChunk: 126296 kB