性能问答>free -h 发现 可用内存只有几百兆>
4回复
2年前

free -h 发现 可用内存只有几百兆



image.png
为什么 free 只有几百兆,后面两项是什么就要。怎么那么大。会影响程序运行吗。怎么解决

4319 阅读
请先登录,再评论

在CentOS 6及以前的版本 最后两列是 bufferscachedbufferscached 会算在used里,不过不需要担心bufferscached的内存使用较多,因为在系统需要时可以被回收使用,所以系统可用内存 = free + buffers + cached。
在CentOS 7以后 buffercached 合并成了一组,就是上图我们看到的 buff/cache, 加入了一个available,文档说明如下: MemAvailable: An estimate of how much memory is available for starting new applications, without swapping
也就是系统可用内存,CentOS6的时候说可用内存 = free + buffers + cached ,在CentOS7 中并不准确,因为不是所有的buffer/cache 都可以被回收。所以CentOS7 使用available 表示可用内存大小,系统可用内存 = free + buff/cache - 不可回收内存,通过看available 就可以知道还有多少空间可以用了。

12年前
回复 言风:

谢谢。理解了。

2年前回复

free是未使用的物理内存,而available是表示可以使用的物理内存,主要包括了三部分: free + buffer + cache
buffer和cache的内存是可以被重复使用的

2年前
回复 LetUsJava:

嗯嗯。谢谢亲了。

2年前回复