64 位安装时仅可使用 3.2GB RAM(共 4GB)。Dell XPS 13

64 位安装时仅可使用 3.2GB RAM(共 4GB)。Dell XPS 13

可能重复:
为什么 Ubuntu 只显示 3GB RAM?

前几天买了台戴尔XPS 13,装了64位的ubuntu,把内核改成:

3.2.0-29-generic #46+kamal5~DellXPS-Ubuntu SMP Sun Jul 29 18:49:08 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux

我的系统只显示 3.2GB (3275MB) 的 RAM,而不是 4GB。我检查了原版 Ubuntu 内核,情况相同。显卡是 Intel HD3000。

pmd@daftbook:~$ free -m
             total       used       free     shared    buffers     cached
Mem:          3275       2580        695          0        321       1100
-/+ buffers/cache:       1158       2117
Swap:         2047          0       2047

来自 lshw:

     *-memory
      description: System Memory
      physical id: 4
      slot: System board or motherboard
      size: 4GiB
    *-bank:0
         description: DIMM DDR3 Synchronous 1333 MHz (0.8 ns)
         product: HT2SCRCH
         vendor: Hynix/Hyundai
         physical id: 0
         serial: 00000000
         slot: ChannelA-DIMM0
         size: 2GiB
         width: 64 bits
         clock: 1333MHz (0.8ns)
    *-bank:1
         description: DIMM DDR3 Synchronous 1333 MHz (0.8 ns)
         product: HT2SCRCH
         vendor: Hynix/Hyundai
         physical id: 1
         serial: 00000000
         slot: ChannelB-DIMM0
         size: 2GiB
         width: 64 bits
         clock: 1333MHz (0.8ns)

答案1

有许多因素会影响可用的显示内存。我先谈谈 Windows,然后我们可以深入讨论 Linux。

在 Windows 中,如果您有(无论您是 32 位还是 64 位)一定数量的内存,系统都会保留其中的一定比例以确保系统正常运转。根据硬件、集成设备(集成显卡、声卡、网卡等)、连接设备数量、Windows 版本等的不同,保留的数量会有所变化。在某些情况下,在运行 Windows XP 的 4GB PC 上,您会发现可用内存只有 3.5GB。在其他情况下,您会看到 3.2GB、3.1GB、3.0GB,或者在我见过的最坏情况下,只有 2.8GB。在 Windows 7 上,相同的保留内存量会根据硬件和软件的不同而有所不同,从 3.0GB 到最大可用 RAM 不等。此可用 RAM 量是您运行的程序所使用的,它是系统计算并保留正常工作所需的部分内存后剩下的内存。

该内存通常不会在用户应用程序和系统保留的内存之间交换。

在 Linux 上也是一样。系统加载后需要一定数量的内存才能使一切尽可能顺利运行。如果您有 512MB,系统不会保留太多内存,因为它会注意到内存不足。如果您有 1GB 或 2GB,则保留的内存会更大。32 位的限制是 4GB,它会保留 200MB 到 1GB 之间的 RAM(同样,取决于硬件或软件),以便一切可以顺利运行。因此,您总共可以使用 3.0GB 到 3.8GB 之间的内存。

现在,除了明显的系统保留内存之外,还有一些 BIOS/硬件选项实际上可以占用更多内存。最常见的是分配给集成显卡的内存量。它可以从 2MB 到 1.5GB 不等。例如,如果您为显卡分配了 1GB,则在总可用内存中看不到 1GB。声卡使用少量内存,但它仍然使用内存。网卡、捕获设备、网络摄像头等也是如此……

把它们全部加起来,你就得到了总数可用的您使用的常用程序的内存量(firefox、gimp、empathy、libreoffice 等...)

因此,问题不在于 Ubuntu 是否使用 64 位系统都无法正确读取内存,而在于系统是否有足够的内存来正常运行以及是否有足够的内存供用户应用程序使用。在您的例子中,如您所见,Ubuntu 为系统占用了 800MB,为您的应用程序占用了 3.2GB,而两者在此过程中无需共享内存。这将提高应用程序的速度和加载时间,因为它们在内存中有自己的用户空间。如果系统需要的内存量高于您拥有的内存量,而您想在那一刻打开一个应用程序,那么就会出现问题。它们必须共享内存,这意味着必须使用交换/虚拟内存,这意味着加载时间会变慢。

这是 3GB 笔记本电脑的终端输出:

exodus@exodus:~$ free -m
             total       used       free     shared    buffers     cached
Mem:          2898       1186       1711          0        117        569
-/+ buffers/cache:        499       2398
Swap:         3837          0       3837

正如你从我的例子和你的例子中所看到的,共享不需要内存,因为在运行该命令时,您的内存远远超过所需。系统有其内存,应用程序也有其内存。

您还可以看到(在我的示例中使用 Ubuntu 12.04 32 位),系统仅占用大约 120MB。但请看这里:

cyrex@cyrex:~$ free -m
             total       used       free     shared    buffers     cached
Mem:         14696       1744       12952         0        447        730
-/+ buffers/cache:        533       3318
Swap:          254          0       254

在这种情况下,我有 16GB RAM,Ubuntu 32 位也占用了系统大约 1.5GB。其余应用程序占用大约 12.5GB。现在阅读这里,在装有 Windows 7 64BIT 的同一系统上,占用 3.5GB。当我查看剩余内存时,它总是显示 12.4GB。因此,根据系统和硬件,保留(或被盗 ^^)的数量可能会有所不同。

希望这可以帮助。

相关内容