free -h
              total        used        free      shared  buff/cache   available
Mem:           125G         88G        821M        179M         35G         35G
Swap:           19G        121M         19G

命令释义
第一行: 系统物理内存的使用情况
第二行: swap交换内存的使用情况
total列: 系统中内存的总量,
used列: 已用内存总量(used = total-free-buffers-cache)
free列: 空闲内存容量(真正尚未被使用的物理内存数)
shared列: 共享内存使用的容量
buff/cache: buffers和cache所用总量的总和(buffers为内核缓冲区所用的内存,cache为页缓存和slabs所用的内存容量)
 
available列为估算值,是在不需要swapping内存的情况下,可用物理内存容量。它是从应用程序的角度看到的可用内存数量。
内核为了提升磁盘操作的性能,会消耗一部分内存去缓存磁盘数据(就是buffer和cache),所以对于内核来说buffer和cache都属于已经被使用的内存。
当应用程序需要内存时,如没有足够的 free 内存可用,内核就会从 buffer 和 cache 中回收内存来满足应用程序的请求。所以从应用程序的角度来说,available = free + buffer + cache。
注: 这只是一个很理想的计算方式,实际中的数据往往有较大的误差。
 

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐