ato*_*aum 9 linux memory-leaks linux-kernel embedded-linux
我正试图找出一个很好的公式来找出可用的内存量.我目前使用以下公式: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
Run Code Online (Sandbox Code Playgroud)
从用户态泄漏内存无论如何都不会显示,/proc/meminfo因为就内核而言,它是分配的内存(无论您是否在用户态应用程序中使用 free() ,它都是通过 mmap() 系统调用或 brk() 分配的) /sbrk() 和内核跟踪用户空间中分配的页面,否则我们会遇到严重的麻烦;)。
我不太明白你是如何得出你的记忆正在泄漏的信念的?如果您还没有阅读过,这里有一个很好的链接redhat/meminfo ,它解释了每个统计数据的真正含义。
| 归档时间: |
|
| 查看次数: |
13021 次 |
| 最近记录: |