为什么 dmesg | grep Memory 给出两个不同的物理内存量?

为什么 dmesg | grep Memory 给出两个不同的物理内存量?

我正在监控我管理的服务器中的物理内存,我的硬件提供商告诉我他们已将物理内存大小增加到 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 内存的问题的一些令人兴奋的事实。

相关内容