在使用free命令时,可用内存是多少?

我在我的Linux主机上运行的free命令输出如下:

free
              total        used        free      shared  buff/cache   available
Mem:      263846320    47746620     3290072     1140808   212809628   214382420
Swap:             0           0           0

我无法弄清楚这个可用部分具体指的是什么。 尽管总内存很高,但可用内存非常少,大约为1.24%,而已使用内存仅占18.09%。

free -h
              total        used        free      shared  buff/cache   available
Mem:           251G         45G        3.1G        1.1G        202G        204G
Swap:            0B          0B          0B

这是否意味着由于可用内存非常少,我将无法启动更多的应用程序?已使用的内存仅为18%。所以,根据上面显示的命令,可用内存不应该是72%,而不是1.24%。
我感到困惑。有人可以帮忙吗?

1此问题同时发布在https://stackoverflow.com/q/41426656/1310566 - Simon Forsberg
1个回答

free的输出中,
  • Free memory是当前未用于任何事物的内存量。这个数字应该很小,因为未使用的内存只是浪费。

  • Available memory是可用于分配给新进程或现有进程的内存量。

问题中给出的示例显示了一个健康的系统。

5可用(available)和缓存(buff/cache)列之间有何不同。 - srinivas
1@srinivas,“available”包括“free”列和一部分可以立即重新使用于当前需求的“buff/cache”。 - ALZ
11这个回答更加让我困惑了 - markroxor
1是的,我也不明白... "空闲"内存和"可用"内存有什么区别?显然,空闲内存是可用内存的子集,但是...怎么回事?为什么?问题比答案还多。 - Simon Forsberg
16好的,我刚刚阅读了https://www.linuxatemyram.com/,里面解释了很多内容。 - Simon Forsberg
1是的,http://linuxatemyram.com可以解释这个问题。可用内存包括空闲内存和磁盘缓存内存(当需要时,内核可以立即释放)。 - gaoithe
Linux服务器需要升级内存吗?在这里添加这个链接可能对某些人有帮助! - Arun