al_alexander n00b
Joined: 21 Feb 2012 Posts: 7
|
Posted: Mon May 14, 2012 8:24 am Post subject: 菜鸟求教:为什么free命令显示的内存,总是要比硬件实际安装的内存小一些呢? |
|
|
每次用free命令(或者通过/proc/meminfo)查看内存总量的时候,得到的数字总是比主板上接的内存总量要少一些。虽然很早就注意到这个问题,但一直没有深究。直到今天突然被别人问题才发现完全给不出解释。
比如说我的一个台式机,安装了4G的内存条,系统是3.2.12-gentoo(64位),查看到的内存是:
MemTotal: 3934312 kB
比4G的理论值少了约254M,占总内存的6.2%。
另一台服务器上是rhel-2.6.9_5-9-0-0(64位),安装了48G的内存,查看到的内存是:
MemTotal: 49429304 kB
比理论值少了约881M,占总内存的1.8%。
还有一台虚拟机,系统是3.0.6-gentoo(32位),分配了1G的内存,系统是(32位),查看到的内存是:
MemTotal: 1031720 kB
比理论值少了约16.5M,占总内存的1.6%。
接触到的其他一些linux机器(包括笔记本、台式机、服务器)都是这样,内存总量越大,“丢失”的内存量越大,但同时相对于硬件内存的总量的百分比就各不相同。
如果说是BIOS占用了部分低端地址,那应该远小于这些数量;内核本身也就是几M级别的尺寸,不应该占这么多,而且不应该随着总内存大小不同而剧烈变化。
会不会是内核需要一定比例的内存来做页面管理呢?有没有什么方法能在系统中看见内存的硬件总大小呢?
在网上搜了半天,也没找到答案,还请高手赐教! |
|