Ubuntu 在 Ubuntu 64 位元上僅偵測到 3.1 GB 記憶體

Ubuntu 在 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 中驗證我安裝了 4 GB RAM,而不是 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.7GB(我猜 BIOS 報告的記憶體更多是由於顯示卡、PCI 和 IO 設備及其他設備的位址空間所致)。由於這些問題,最終只有 3.6 GB 可供應用程式使用。

請注意「缺少」的記憶體量,這「反映了由於記憶體映射中的記憶體漏洞而遺失的記憶體尋址空間。通常會為PCI 空間、IO 等留下漏洞。每個供應商型號的系統都不同,每個系統都會有為缺失的記憶報告了不同的值。

另請參閱 fossfreedom 指出的問題,它為您提供了有關尋址空間可能在何處使用的更多解釋。

相關內容