free -m output
:
total used free shared buff/cache available
Mem: 3951 1291 1720 41 939 2362
Swap: 4094 0 4094
dmidecode
输出:
Handle 0x000C, DMI type 16, 15 bytes
Physical Memory Array
Location: System Board Or Motherboard
Use: System Memory
Error Correction Type: None
Maximum Capacity: 8 GB
Error Information Handle: Not Provided
Number Of Devices: 2
Handle 0x000D, DMI type 19, 15 bytes
Memory Array Mapped Address
Starting Address: 0x00000000000
Ending Address: 0x0012FFFFFFF
Range Size: 4864 MB
Physical Array Handle: 0x000C
Partition Width: 1
Handle 0x000E, DMI type 17, 28 bytes
Memory Device
Array Handle: 0x000C
Error Information Handle: Not Provided
Total Width: 64 bits
Data Width: 64 bits
Size: 4096 MB
Form Factor: DIMM
Set: None
Locator: DIMM0
Bank Locator: BANK0
Type: Other
Type Detail: Synchronous
Speed: 533 MHz
Manufacturer: Corsair
Serial Number: 00000000
Asset Tag: AssetTagNum0
Part Number: CMV4GX3M1A1333C9
Rank: Unknown
Handle 0x000F, DMI type 20, 19 bytes
Memory Device Mapped Address
Starting Address: 0x00000000000
Ending Address: 0x000FFFFFFFF
Range Size: 4 GB
Physical Device Handle: 0x000E
Memory Array Mapped Address Handle: 0x000D
Partition Row Position: 1
Handle 0x0010, DMI type 17, 28 bytes
Memory Device
Array Handle: 0x000C
Error Information Handle: Not Provided
Total Width: 64 bits
Data Width: 64 bits
Size: 4096 MB
Form Factor: DIMM
Set: None
Locator: DIMM1
Bank Locator: BANK1
Type: Other
Type Detail: Synchronous
Speed: 533 MHz
Manufacturer: Corsair
Serial Number: 00000000
Asset Tag: AssetTagNum1
Part Number: CMV4GX3M1A1333C9
Rank: Unknown
Handle 0x0011, DMI type 20, 19 bytes
Memory Device Mapped Address
Starting Address: 0x00100000000
Ending Address: 0x001FFFFFFFF
Range Size: 4 GB
Physical Device Handle: 0x0010
Memory Array Mapped Address Handle: 0x000D
Partition Row Position: 1
答案1
系统正确检测到了两个 4096MB RAM 块(总共 8GB),它们似乎运行良好。不过,我确信您的问题仍然与硬件有关。
我们看到检测到了 8GB 的 RAM,但只有不到 4GB 可用。但是没有足够的内存地址可以映射您的 RAM。所有无法映射到地址的剩余内存都无法使用。
您的机器显然只能映射 4GB,因为任何负责的组件都限制在 32 位地址。实际可用的 RAM 量要小一些,因为例如您的显卡的视频内存也需要映射到相同的地址范围。
您运行的是 64 位 Ubuntu,因此操作系统和 CPU 都不是问题。我确信这里困扰我们的组件是您的芯片组(也称为北桥),它仅支持 32 位地址宽度,因此将地址范围限制为仅 4 GB。
您可以使用以下命令验证芯片组的地址宽度:
sudo lshw | grep -m1 width
结果width: 32 bits
证明我是对的,并且解释了您的问题。
不幸的是,没有软件解决方案,您唯一能做的就是更换芯片组,这意味着需要获得一块全新的主板。
答案2
如果您的主板较旧,则可能不支持最大 4GB(2x2GB)以上的内存,插入 8GB(2x4GB)可能会得到您看到的结果。请访问制造商的网站并查找主板的规格,看看内存大小是否有限制。
我假设您只有 2 个物理内存插槽。如果不是这样,那么您可能只是将内存插入了错误的插槽,无法正确交错内存。如果您有 4 个物理内存插槽,并且它们的颜色编码为黑色和白色,请将内存插入类似颜色的物理内存插槽。
另外,如果您确实需要 8GB 来工作,则需要将交换文件大小增加到物理内存的 1-1.5 倍。
您还可以尝试启动 Ubuntu Live CD,看看是否存在相同的问题。这将消除一些奇怪的软件问题。