简单了解Linux性能监控命令free

 更新时间:2019年07月02日 09:34:43   作者:FOOFISH-PYTHON之禅  
这篇文章主要介绍了简单了解Linux性能监控命令free,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

在系统遇到各种IO瓶颈,内存使用率高,cpu使用率高等问题时,我们如何来定位错误?linux提供了很多命令来协助我们快速定位到错误,free命令是Linux最常用的命令之一:它可以查看系统的内存状况,包括服务器的总内存,已经使用的内存和剩下未被使用的内存,以及缓冲区和缓存各自占用的内存情况。

$ free -m
total used free shared buffers cached
Mem: 994 787 207 0 121 227
-/+ buffers/cache: 437 557
Swap: 0 0 0

要完全理解上面3行数据,先搞明白buffer和cache是什么。

buffer:缓冲区

将数据缓冲下来,解决速度慢和快的交接问题;速度快的需要通过缓冲区将数据一点一点传给速度慢的区域。例如:从内存中将数据往硬盘中写入,并不是直接写入,而是缓冲到一定大小之后刷入硬盘中。

A buffer is something that has yet to be "written" to disk.

cache:缓存

实现数据的重复使用,速度慢的设备需要通过缓存将经常要用到的数据缓存起来,缓存下来的数据可以提供高速的传输速度给速度快的设备。例如:将硬盘中的数据读取出来放在内存的缓存区中,这样以后再次访问同一个资源,速度会快很多。

A cache is something that has been "read" from the disk and stored for later use.

buffer是用于存放将要输出到disk(块设备)的数据,而cache是存放从disk上读出的数据。二者都是为提高IO性能而设计的。

理解了buffer和cache的作用后,那么free展示的信息就易懂了,现在开始分析free命令输出的每一行代表的含义:

第一行:Mem

总共的内存994(total) = 787(used)+207(free),used表示系统已经被使用的内存,它包括应用程序使用的内存,以及用于缓冲和缓存的内存总和。

第二行:-/+ buffers/cache

-buffers/cache:437(used) = 787(used) - 121(buffers) - 227(cached),437表示除去缓冲和缓存消耗的内存外,应用程序实际消耗的内存是437M。

+buffers/cache:557(free) = 207(free)+121(buffers)+cached(227),557表示系统可用的内存有557M,因为如果遇到内存告急的情况时,buffer和cache所占的内存还是可以用来给应用程序使用。

第三行:Swap

看到很多文章直接说不解释了,但这里我要解释一下,Swap表示交换分区,也就是我们通常所说的虚拟内存。就可以把一部分磁盘空间当做内存使用,这部分空间叫做虚拟内存,当系统内存不足时,系统会把那些还驻留在内存中但是当前没有运行的程序暂时放到虚拟内存中去

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • ubuntu配置tftp服务的步骤小结

    ubuntu配置tftp服务的步骤小结

    这篇文章主要介绍了ubuntu配置tftp服务的步骤小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07
  • linux防火墙配置教程之访问外网web实验(3)

    linux防火墙配置教程之访问外网web实验(3)

    这篇文章主要为大家详细介绍了linux防火墙配置教程之访问外网web的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-04-04
  • 禁止网站显示文件目录列表的2个方法(htaccess)

    禁止网站显示文件目录列表的2个方法(htaccess)

    这篇文章主要介绍了禁止网站显示文件目录列表的2个方法,需要的朋友可以参考下
    2016-04-04
  • linux防墙iptables详细介绍、配置方法与案例

    linux防墙iptables详细介绍、配置方法与案例

    这篇文章主要介绍了linux防墙iptables详细介绍、配置方法与案例,需要的朋友可以参考下
    2020-02-02
  • Linux中的who命令实例介绍

    Linux中的who命令实例介绍

    who命令是显示目前登录系统的用户信息。下面这篇文章主要给大家介绍了关于Linux中who命令的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧
    2018-12-12
  • CentOS7系统增加swap的操作方法实例

    CentOS7系统增加swap的操作方法实例

    这篇文章主要给大家介绍了关于CentOS7系统增加swap的操作方法,文中通过示例代码介绍的非常详细,对大家的学习或者使用CentOS7系统具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-10-10
  • linux touch,chattr指令详解及用法

    linux touch,chattr指令详解及用法

    这篇文章主要介绍了 linux touch,chattr指令详解几用法的相关资料,需要的朋友可以参考下
    2017-02-02
  • 在Windows的Apache服务器上配置对PHP和CGI的支持

    在Windows的Apache服务器上配置对PHP和CGI的支持

    这篇文章主要介绍了在Windows的Apache服务器上配置对PHP和CGI的支持,其中CGI脚本文中演示的为Perl示例,需要的朋友可以参考下
    2015-07-07
  • Linux服务器间文件实时同步的实现

    Linux服务器间文件实时同步的实现

    这篇文章主要介绍了Linux服务器间文件实时同步的实现,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-11-11
  • CentOS8出现-bash:乱码问题及解决方法

    CentOS8出现-bash:乱码问题及解决方法

    这篇文章主要介绍了CentOS8出现-bash:乱码问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-04-04

最新评论