How to Calculate MemTotal in /proc/meminfo

When I cat /proc/meminfo, the report as follows:

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 

I got a formula to calculate the Memtotal:

Memtotal = MemFree + Cached + Active + Inactive + Mapped + Shmem + Slab + PageTables + VmallocUsed

but I don't know the formula is correct or not, any one can help to clarify it?

2

1 Answer

I think it would be difficult to reach to the exact value (addition based total memory validation) from meminfo. Nonetheless, in my view following should lead you close to TotalMemory figure.

TotalMemory = MemFree + Buffers + Cached + Dirty + AnonPages + Slab + VmAllocUsed

In your example case 1432728 + 16568 + 324864 + 60 + 222868 + 24268 + 13916 = 2035272 Some ref : (From another stackoverflow article suggested above) Apart from that, I believe the volatility is because of VmAllocUsed.

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

You Might Also Like