41

我在 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%。那么,释放内存不应该是 82% 而不是 1.24%,正如上面显示的命令吗?

我很困惑。任何人都可以帮忙吗?

4

1 回答 1

30

现代操作系统竭尽全力保持尽可能少的可用内存。空闲的内存实际上更难使用,因为它必须从空闲转换为使用中。已经在使用的内存,即可用但不是空闲的内存,可以很容易地切换到另一个用途。

这一切都很正常。空闲内存被浪费了,并且不会使您的系统更快。

如果你在想“但我现在想释放我的内存,以便以后可以使用它”,请意识到这是没有意义的。您无法为以后节省内存。今天使用 2GB 的 4GB 系统明天无法使用 6GB。你现在和以后都可以使用你的记忆。这里没有折衷——使用内存是免费的。使用内存的唯一选择是浪费它。为什么你希望你的系统浪费更多的内存?

于 2017-01-02T12:21:16.483 回答