我正在监控我管理的服务器中的物理内存,我的硬件提供商告诉我他们已将物理内存大小增加到 4Gb...
但是,使用一些工具(free -m;top;dmesg | grep Memory;grep MemTotal /proc/meminfo)后我发现我实际上有 3Gb,而不是 4...
但是,我的怀疑来自于 dmesg | grem Memory 告诉我有 3103396k/4194304k 可用
第一个数字实际上是 3Gb,但第二个数字是 4!那么,为什么我看到这两个不同的数字?我是不是漏掉了什么?还是我的提供商告诉我的是实话,但他没有正确配置?
我不确定这个帖子是否可以进入这个子论坛,如果可以的话,请更正并重定向我...
非常感谢!
答案1
看起来您的电脑使用的是 32 位系统。内存大小取决于主板(芯片组的属性),但总是小于 4 GB。为了避免这种情况,有两种解决方案。
要使用整个 4 Gb 的 RAM,内核应该使用以下命令进行编译:
CONFIG_HIGHMEM4G=y
或者
CONFIG_HIGHMEM64G=y
选项。这将允许每个程序地址大约 4 GB 的系统内存。如果您将来有更多内存,则任何程序都无法使用超过一块内存,在 32 位操作系统上最多为 4 GB。
- 另一个解决方案是,您可以使用 64 位操作系统并使用所有可用内存。因此,如果您有 8、16、32 GB 的 RAM,那么在这种情况下,每个程序都将能够使用您拥有的全部内存。
您可以在这里查找:http://www.codinghorror.com/blog/2007/03/dude-wheres-my-4-gigabytes-of-ram.html了解有关在 32 位系统中使用 4 Gb 内存的问题的一些令人兴奋的事实。