linux free 命令下free/available区别

此文为转载,原文链接: https://www.jianshu.com/p/2ffeb3a3aa90

例子:


第一列

Mem 内存的使用信息
Swap 交换空间的使用信息

第一行

total 系统总的可用物理内存大小
used 已被使用的物理内存大小
free 还有多少物理内存可用
shared 被共享使用的物理内存大小
buff/cache 被buffer和cache使用的物理内存大小
available 还可以被应用程序使用的物理内存大小

其中有两个概念需要注意

free与avaialble的区别

free真正尚未被使用的物理内存数量。
available应用程序认为可用内存数量,available = free + buffer + cache (注:只是大概的计算方法)

Linux 为了提升读写性能,会消耗一部分内存资源缓存磁盘数据,对于内核来说,buffer 和 cache 其实都属于已经被使用的内存。但当应用程序申请内存时,如果 free 内存不够,内核就会回收 buffer 和 cache 的内存来满足应用程序的请求。这就是稍后要说明的 buffer 和 cache。

buff和cache的区别

一句话总结:cache是读的cache,buffer是写的buffer。(相对磁盘而言)
参考:buffer和cache怎么让你们解释的那么难理解?