Ubuntu 64 位系统仅能检测到 3.1 GB 的内存

Ubuntu 64 位系统仅能检测到 3.1 GB 的内存

我使用的是 Ubuntu Linux 64 位。最近,我使用的是 Ubuntu 32 位,通过命令发现grep --color=always -iw lm /proc/cpuinfo我的处理器支持 64 位。命令的输出为:

flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc up pebs bts nopl pni dtes64 monitor ds_cpl tm2 cid cx16 xtpr

但是,在清除磁盘并安装 Ubuntu 11.10 64 位后,系统仍然只能检测到 3.1 GB 的 RAM。我在 BIOS 中验证了安装的 RAM 是 4 GB,而不是 3.1 GB。为什么 Ubuntu 64 位只能检测到 3.1 GB 的 RAM?

输出uname -a

aaron@Aarons-Ubuntu-Computer:~$ uname -a
Linux Aarons-Ubuntu-Computer 3.0.0-12-generic #20-Ubuntu SMP Fri Oct 7 14:56:25 UTC 2011 x86_64 x86_64 x86_64 GNU/Linux

输出free -m

aaron@Aarons-Ubuntu-Computer:~$ free -m
             total       used       free     shared    buffers     cached
Mem:          3136       2960        175          0        233       1996
-/+ buffers/cache:        730       2405
Swap:         3189          0       3189

答案1

目前使用的 CPU 中约有 80%(以及几乎每台新售出的 CPU)都支持 64 位 Ubuntu,因此这并不令人意外。计划建议将 64 位 Ubuntu 作为默认设置(就像现在建议 32 位一样),因为大多数人的硬件都能够运行它。

不过,要查看内核看到的总内存以及有关其最初分配情况的报告,您可以执行以下操作:

dmesg |grep "Memory: "

这将显示如下一行:

[    0.000000] Memory: 3823988k/4849664k available (6109k kernel code, 874468k absent, 151208k reserved, 4876k data, 984k init)

我的系统安装了 4GB 的 RAM,但报告的总内存大约为 4.7 GB(我猜 BIOS 报告的内存更多是因为视频卡、PCI 和 IO 设备等的地址空间)。由于这些问题,最终只有 3.6 GB 可供应用程序使用。

注意“缺失”内存量,这“反映了由于内存映射中的内存漏洞而丢失的内存寻址空间。通常,漏洞是留给 PCI 空间、IO 等的。每个供应商型号的系统都不同,并且每个系统对缺失内存的报告值也不同。”

另外,请查看 fossfreedom 指出的问题,它为您提供了有关寻址空间可能被使用的位置的更多解释。

相关内容