gpt4 book ai didi

linux-kernel - 如何计算/proc/meminfo 中的 MemTotal

转载 作者:行者123 更新时间:2023-12-01 04:04:18 35 4
gpt4 key购买 nike

当我 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。

关于linux-kernel - 如何计算/proc/meminfo 中的 MemTotal,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10508913/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com