在Linux中检查可用内存的正确方法是什么

时间:2019-02-15 06:20:44

标签: linux memory

很抱歉这个入门级的问题,但是我很困惑,所以我想让其他人帮助我澄清一下

我在Linux中使用free命令来查看其中的可用内存。

首先,我认为该值是否来自第一行的免费列,所以下图为 102532 ,但我在其他部分看到可用内存为免费 + 缓冲区 + 已缓存,因此,下图为102532 + 200904 + 5832244,即 6135680 < / strong>。

但是当我使用free -tvmstat -s |grep memory时,我发现可用内存仍然在 102532

现在,我很困惑,我不知道是否需要为此Linux系统添加外部内存。

有人可以帮我找到哪种方法是检查Linux中可用内存的正确方法(我们是否需要将缓冲和缓存的内存视为可用内存?),并在下图,我需要为此添加更多的内存吗?

谢谢!

enter image description here

1 个答案:

答案 0 :(得分:0)

这是一个很好的问题,答案就在于现代内存管理技术。

可用内存和可用内存不是同一回事。以同样的方式,我拥有的可用总金额包括钱包里准备用来支出的钱(“免费”钱)以及我的银行账户中被他们使用的东西(缓冲区和缓存)。

未使用可用内存。简单。但是,内核使用部分可用内存来提高文件系统的性能以及诸如此类的东西(缓冲区和缓存),因此该内存在那时不是空闲的,但它仍然可用,因为如果进程要求提供更多的内存,免费,内核将简单地从缓冲区中放弃内存并缓存到进程。

检查内存使用情况的正确方法是集中在可用内存上。在某些情况下,它可能会比这复杂一些,但这是一个很好的第一近似值。