安装了新的 16GB RAM,但我在我的系统上看到 15.3。为什么?

Ger*_*ati 8 ram

刚刚将 4GB 内存切换到 16GB 内存。但是,当我查看我有多少内存时,它显示为 15.3。我只是想知道为什么我刚安装了 16 GB 的 RAM 时我的内存会下降。

系统详情截图

The*_*hwa 19

简答

它可能只是使用内存的内核。Ubuntu 没有报告内核内存使用情况,而是从可用总数中减去。这只是为了让您知道在大多数情况下无法释放内核内存。该内存被用于绝对必要的事情,因此它将永远无法使用。

诊断命令

我不希望您运行所有这些,但我将它们包含在此处以供参考和完整性。最相关的是命令 3 和 4。另外请注意,无论单位缩写可能是什么,所有大小都将以 2 为基数(例如GiB)而不是以 10 为基数(例如GB)。

  1. 您可以检查您的 RAM 棒声称有多大:

    sudo dmidecode | grep Size | grep MB
    
    Run Code Online (Sandbox Code Playgroud)
  2. 您可以使用(查找Memtotal)检查有多少 RAM 可用于一般用途:

    free -h
    
    Run Code Online (Sandbox Code Playgroud)
  3. 您可以估计内核使用了多少内存:

    cat /proc/meminfo | grep Slab
    
    Run Code Online (Sandbox Code Playgroud)
  4. 您可以通过以下方式检查“被盗”的显卡内存:

    dmesg | grep stolen
    
    Run Code Online (Sandbox Code Playgroud)
  5. 您可以通过查看以下内容来查找特定的硬件保留内存:

    dmesg | grep e820
    
    Run Code Online (Sandbox Code Playgroud)
  6. 您可以通过运行 memtest来测试以确保您的所有内存都正常工作

解释

最可能的解释是,额外的空间正被您的显卡或内核本身使用。如果您不熟悉,内核是操作系统的最低级别部分,它使用的任何内存都不会对您可用,因此不会报告为空闲。内存可能出于多种原因使用,例如虚拟内存表、内存映射 I/O、内核进程、某些缓存、共享图形内存等。

示例:查看我的笔记本电脑

很可能将命令 3 的输出添加到您的15.3GiB将导致几乎完全相同的16GiB. 我的系统就是这种情况:

  • 安装的内存: 6GiB
  • 在系统设置 > 详细信息中报告: 5.6GiB
  • 的输出cat /proc/meminfo | grep Slab316652 kB
  • 转换为GiB316652/2^20 = 0.3GiB
  • 的输出dmesg | grep stolen32768K
  • 转换为GiB32768/2^20 = 0.03GiB
  • 将它们加在一起: 5.6 + 0.3 + 0.03 = 5.93GiB

由于Slab内存并不全面,我们可以假设内核正在使用0.07GiB我们看不到的地方,因此这是一个非常令人满意的结果。

也可以看看

  • 内核slab内存被计为“已用内存”的一部分,并且不会减少“总”内存。当系统有大量正在使用的平板时,以及当它很少时,通过检查系统,您可以很容易地看到这一点。 (2认同)