【性能监控命令_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占用的物理内存是可以被内核释放的。

 

posted @ 2021-11-18 00:14  张蓝芳  阅读(123)  评论(0编辑  收藏  举报