当我cat / proc / meminfo时,报告如下:
MemTotal: 2034284 kB
MemFree: 1432728 kB
Buffers: 16568 kB
Cached: 324864 kB
SwapCached: 0 kB
Active: 307344 kB
Inactive: 256916 kB
Active(anon): 223020 kB
Inactive(anon): 74372 kB
Active(file): 84324 kB
Inactive(file): 182544 kB
Unevictable: 0 kB
Mlocked: 0 kB
HighTotal: 1152648 kB
HighFree: 600104 kB
LowTotal: 881636 kB
LowFree: 832624 kB
SwapTotal: 4200960 kB
SwapFree: 4200960 kB
Dirty: 60 kB
Writeback: 0 kB
AnonPages: 222868 kB
Mapped: 80596 kB
Shmem: 74564 kB
Slab: 24268 kB
SReclaimable: 14024 kB
SUnreclaim: 10244 kB
KernelStack: 1672 kB
PageTables: 2112 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 5218100 kB
Committed_AS: 833352 kB
VmallocTotal: 122880 kB
VmallocUsed: 13916 kB
VmallocChunk: 50540 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 4096 kB
DirectMap4k: 20472 kB
DirectMap4M: 888832 kB
我有一个公式来计算Memtotal:
Memtotal = MemFree Cached Active Inactive Mapped Shmem Slab PageTables VmallocUsed
但我不知道公式是否正确,任何人都可以帮助澄清它?
最佳答案 我认为很难达到meminfo的确切值(基于总内存验证的加法).
尽管如此,在我看来,接下来应该会让你接近TotalMemory数字.
TotalMemory = MemFree Buffers Cached Dirty AnonPages Slab VmAllocUsed
在您的示例中
1432728 16568 324864 60 222868 24268 13916 = 2035272
一些参考:
http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/Documentation/filesystems/proc.txt?id=HEAD#l451
(来自上面建议的另一个stackoverflow文章)
除此之外,我认为波动是因为VmAllocUsed.