我有一个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时,空闲报告只有1G的总内存。 有人可以解释如何正确协调免费的输出与我的机器规格?
这是一个四舍五入的问题。 例如在我的一台机器上:
devtest:~# free -m total used free shared buffers cached Mem: 7881 2780 5100 0 26 2417 -/+ buffers/cache: 336 7545 Swap: 7632 0 7632 devtest:~# free -g total used free shared buffers cached Mem: 7 2 4 0 0 2 -/+ buffers/cache: 0 7 Swap: 7 0 7
7,881 MiB实际上是〜7.70 GiB,但是free -g是四舍五入到七而不是八。同样的,有〜4.98 GiB的空闲内存,但是free -g它舍入到4而不是5。
free报告的总内存不包括内核无法访问的内存(在上述服务器的情况下,由于芯片组限制,不允许使用8Gb的最后一块,在某些情况下,机器的video卡可能会声明某些内存如果它没有自己的),也不报告内核在启动时被解压缩到的小块内存(所以在上面的主机上有一个较小的虚拟机上有128M分配,只有自由报126,616K,123M (实际上更像123.6M)或0G ) – 所以你永远不会看到与free -g物理总RAM相同的值。
在你的情况下, free是看到1,982.7 M或1.94 G,它正在四舍五入到1。