我有一个 64 位桌面,运行 32 位 Debian - 2G 内存。
user@box:~/$ head -n 1 /proc/meminfo MemTotal: 2030324 kB
但是当我要求免费报告内存时,我看到:
user@box:~$ free -g
total used free shared buffers cached
Mem: 1 1 0 0 0 1
-/+ buffers/cache: 0 1
Swap: 2 0 2
我很困惑为什么当实际物理内存为 2G 时free 只报告 1G总内存。有人可以解释如何正确地将 free 的输出与我的机器规格相协调吗?
这是一个四舍五入的问题。例如在我的一台机器上:
7,881 MiB 实际上约为 7.70 GiB,但
free -g
向下舍入为 7 而不是最多为 8。同样有 ~4.98 GiB 的可用内存,但free -g
向下舍入为 4 而不是最多为 5。报告的总内存
free
不包括内核无法访问的内存(在上述服务器的情况下,由于芯片组限制不允许使用 8Gb 的最后一块,在某些情况下,机器的显卡可能会占用一些 RAM,如果它没有自己的)也没有报告内核在启动时被解压缩到的一小块 RAM(因此在上面主机上分配了 128M 的较小 VM 之一上,免费只报告 126,616 K、123 M (它实际上更像是 123.6 M)或 0 G) - 所以你永远不会看到与你的物理总 RAM 相同的值free -g
。在您的情况下
free
,看到 1,982.7 M 或 1.94 G,它向下舍入为 1。