我试图了解meminfo
跟踪记忆的方式。以下是我正在看的内容:
MemTotal: 341596 kB
MemFree: 147288 kB
Buffers: 56 kB
Cached: 46752 kB
SwapCached: 0 kB
Active: 86928 kB
Inactive: 41384 kB
Active(anon): 81532 kB
Inactive(anon): 288 kB
Active(file): 5396 kB
Inactive(file): 41096 kB
Unevictable: 0 kB
Mlocked: 0 kB
SwapTotal: 0 kB
SwapFree: 0 kB
Dirty: 0 kB
Writeback: 0 kB
AnonPages: 81532 kB
Mapped: 87648 kB
Shmem: 316 kB
Slab: 11568 kB
SReclaimable: 2580 kB
SUnreclaim: 8988 kB
KernelStack: 3232 kB
PageTables: 5480 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 170796 kB
Committed_AS: 2692436 kB
VmallocTotal: 327680 kB
VmallocUsed: 59244 kB
VmallocChunk: 259076 kB
以下是我的问题:
1)如何计算所有341596kB的内存?显然147288是免费的。我如何计算剩余的内存? (没有写一个问题来解决零子集和问题,我的意思是......)
2)总非活动/活动文件内存为46492,但Mapped
为87648.但是,根据manual,它是
Mapped: files which have been mmaped, such as libraries
那么..如何有更多的页面专门用于映射文件而不是文件本身?
尽职调查我在SO上看到了与此主题相关的其他posts,但没有一个解释如何在此处说明所有“使用过的”内存...另外,我我找到Linux Kernel file解释/proc/meminfo
- 它似乎没有我想要的完整信息。
答案 0 :(得分:1)
第757行是meminfo。
请记住缓冲区和缓存是灵活的。随着应用程序内存需求的增加,系统的缓存可以减少。