MemTotal的/ proc / meminfo中的值没有意义。 作为一个人,眼睛看起来似乎大致对应于安装的RAM,但是用它来从一个自动化工具显示安装的RAM看起来是不精确的,并且是不一致的。
对于具有1G RAM的系统,我期望MemTotal行的值为1048576 – 1024 * 1024。 但是,我看到的是1029392.在另外一个4G盒子里,我看到3870172,它不是1024的倍数,甚至不接近1029392 * 4。 在一个8G的盒子上,我得到了8128204,它似乎与其他值没有关系,也不是1024的倍数。
我试图使用这些信息来报告状态网页上的RAM。 我的解决方法是将其“四舍五入”到最接近的1G倍数,但是我想了解为什么这些值看起来不一致并且不符合我的期望。
有人可以填补我在这里失踪的东西吗?
编辑:扩大接受的答案下面….
参考可以在这里find。
这个页面也是我感兴趣的,这个解释了不一致的地方,这个位是:
meminfo中:
提供有关内存分配和使用的信息。 这因体系结构和编译选项而异。 …
从Documentation/filesystems/proc.txt :
MemTotal: Total usable ram (ie physical ram minus a few reserved bits and the kernel binary code)
所以你去了
附录:
dmesg|grep Memory:会给你多一点:
$ dmesg|grep Memory: Memory: 3934184k/5177344k available (4434k kernel code, 1091560k absent, 151600k reserved, 7433k data, 920k init)
附录二:
另外值得一提的是,/ proc中的所有内容都至less有粗略的文档logging,所以当你有类似的问题时,这是一个很好的第一站。