很抱歉这个入门级的问题,但是我很困惑,所以我想让其他人帮助我澄清一下
我在Linux中使用free
命令来查看其中的可用内存。
首先,我认为该值是否来自第一行的免费列,所以下图为 102532 ,但我在其他部分看到可用内存为免费 + 缓冲区 + 已缓存,因此,下图为102532 + 200904 + 5832244,即 6135680 < / strong>。
但是当我使用free -t
或vmstat -s |grep memory
时,我发现可用内存仍然在 102532
现在,我很困惑,我不知道是否需要为此Linux系统添加外部内存。
有人可以帮我找到哪种方法是检查Linux中可用内存的正确方法(我们是否需要将缓冲和缓存的内存视为可用内存?),并在下图,我需要为此添加更多的内存吗?
谢谢!
答案 0 :(得分:0)
这是一个很好的问题,答案就在于现代内存管理技术。
可用内存和可用内存不是同一回事。以同样的方式,我拥有的可用总金额包括钱包里准备用来支出的钱(“免费”钱)以及我的银行账户中被他们使用的东西(缓冲区和缓存)。
未使用可用内存。简单。但是,内核使用部分可用内存来提高文件系统的性能以及诸如此类的东西(缓冲区和缓存),因此该内存在那时不是空闲的,但它仍然可用,因为如果进程要求提供更多的内存,免费,内核将简单地从缓冲区中放弃内存并缓存到进程。
检查内存使用情况的正确方法是集中在可用内存上。在某些情况下,它可能会比这复杂一些,但这是一个很好的第一近似值。