【性能监控命令_05】如果通过free看懂内存的真实使用
free命令是Liunx操作系统中对内存进行查看和监控的常用命令。我们可以直接执行free命令获取相关数据,如下图
默认直接执行free命令获得到的数据单位都k。
从行来看,Mem这行表示物理内存使用情况,Swap这行表示内存交换区(通常称为虚拟内存)的使用情况、
从列来看,tatal这列,显示的是系统总的可用物理内存和交换区间的大小。
userd这列,显示的是已经被使用的物理内存和交换区间大小。
freez这列,显示还剩余多少物理内存和交换区间没有被使用过。
shared这列,显示的是共享区占用的物理内存大小。
buff/cache这列,显示的是被缓冲区和page缓存合计使用的物理内存大小。
buff:在操作系统中指的是缓冲区,负责磁盘块的读写缓冲,会直接占用系统的物理内存。
cache: 指的是操作系统中的page缓存,这个缓存是Liunx内核实现的磁盘缓存,就是将磁盘中的数据缓存到物理内存中,以减少内核对磁盘I/O的读写,类似于redis.
availabele这列,显示可用的物理内存大小,通常情况下,avaliabele的值等于free+buff/cache。
Liunx内核为了提高磁盘的读写,通常会缓存一部分经常要使用的磁盘数据。所以buff/cache对于内核来说,都是已经被使用的内存,而free值,则为真正为被使用的物理内存。不过物理内存不够用了并且应用程序又恰好需要使用物理内存时候,内核就会对buff/cache中回收被他们占用的物理内存,来满足应用程序的需要,也就是说buff和cache占用的物理内存是可以被内核释放的。