linux - Linux 上响应 free 命令的可用内存和可用内存是什么?

标签 linux unix memory heap-memory free-command

我在 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% 吗?

我很困惑。有人可以帮忙吗?

最佳答案

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

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

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

关于linux - Linux 上响应 free 命令的可用内存和可用内存是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41426656/

相关文章:

linux - 在找到扩展名为 .bk 的文件的同一目录中查找并复制文件

linux - 期望脚本错误发送 : Spawn id exp4 not open while executing

c - 实现逐行读取文件如readline()

C - 分配一个整数

linux - 在 bash 中为文件的每一行添加一个数字

linux - 如何在 Debian 中将 zlib 更新为自定义版本

c - 有没有办法使用unix c程序获取电池电量

linux - 从变量 unix 中提取值

JavaScript 性能 – 删除伪 DOM 项

.net - 新 .Net 流程的成本