如何计算meminfo中的所有内存?

时间:2012-05-02 01:47:56

标签: linux memory operating-system

我试图了解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 - 它似乎没有我想要的完整信息。

1 个答案:

答案 0 :(得分:1)

http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/Documentation/filesystems/proc.txt?id=HEAD#l451

第757行是meminfo。

请记住缓冲区和缓存是灵活的。随着应用程序内存需求的增加,系统的缓存可以减少。