Linux性能监控的几个工具

系统 1833 0

转载于:http://blog.csdn.net/tianlesoftware/article/details/6198780

Linux系能监控主要涉及系统4个方面资源的监控:

  • CPU
  • Memory
  • I/O
  • Network

不同的应用类型对各个资源的要求不一样,所以监控的时候需要根据应用类型来着重对哪几个资源进行联合重点监控,这几个资源也是比较可能成为系统瓶颈的地方。

  • CPU相关:需要使用大量CPU,比如高并发的Web服务器,图像视频处理,科学计算等。
  • I/O相关:处理大量数据,需大量内存和存储,频繁I/O读写,对CPU要求相对较少,大部分时候都是CPU等硬盘,比如数据库服务器和文件服务器等。

监控这些资源的使用状况,一般需要用到以下命令:

工具 用途
top 查看进程活动状态以及一些系统状况
vmstat 查看系统状态,硬件和系统信息
iostat 查看CPU负载,硬盘状况
sar 综合工具,查看系统状况
mpstat 查看多处理器状况
netstat 查看网络状况
iptraf 实时网络状况检测
tcpdump 抓取网络数据包,详细分析
tcptrace 数据包分析工具
netperf 网络带宽工具
dstat 综合工具,综合了vmstat, iostat, ifstat, netstat等多个信息

 

 

 

 

 

 

 

 

 

1:CPU

       CPU 的占用主要取决于什么样的资源正在 CPU 上面运行,比如拷贝一个文件通常占用较少 CPU,因为大部分工作是由 DMA(Direct Memory Access)完成,只是在完成拷贝以后给一个中断让 CPU 知道拷贝已经完成;科学计算通常占用较多的 CPU,大部分计算工作都需要在 CPU 上完成,内存、硬盘等子系统只做暂时的数据存储工作。要想监测和理解 CPU 的性能需要知道一些的操作系统的基本知识,比如:中断、进程调度、进程上下文切换、可运行队列等。    这里用个例子来简单介绍一下这些概念和他们的关系,CPU每时每刻都有工作在做(进程、线程)并且自己有一张工作清单(可运行队列),由老板(进程调度)来决定他该干什么,他需要和老板沟通以便得到老板的想法并及时调整自己的工作(上下文切换),部分工作做完以后还需要及时向老板汇报(中断),所以打工仔(CPU)除了做自己该做的工作以外,还有大量时间和精力花在沟通和汇报上。

       CPU 也是一种硬件资源,和任何其他硬件设备一样也需要驱动和管理程序才能使用,我们可以把内核的进程调度看作是 CPU 的管理程序,用来管理和分配 CPU 资源,合理安排进程抢占 CPU,并决定哪个进程该使用 CPU、哪个进程该等待。操作系统内核里的进程调度主要用来调度两类资源:进程(或线程)和中断,进程调度给不同的资源分配了不同的优先级,优先级最高的是硬件中断,其次是内核(系统)进程,最后是用户进程。每个 CPU 都维护着一个可运行队列,用来存放那些可运行的线程。线程要么在睡眠状态(blocked 正在等待 IO)要么在可运行状态,如果 CPU 当前负载太高而新的请求不断,就会出现进程调度暂时应付不过来的情况,这个时候就不得不把线程暂时放到可运行队列里。

 

可以从以下几个方面监控CPU的信息:

  • 中断
  • 上下文切换
  • 可运行队列
  • CPU利用率

通常我们期望我们的系统能到达以下目标:

       (1)CPU 利用率,如果 CPU 有 100% 利用率,那么应该到达这样一个平衡:65%-70% User Time,30%-35% System Time,0%-5% Idle Time;

       (2)上下文切换,上下文切换应该和 CPU 利用率联系起来看,如果能保持上面的 CPU 利用率平衡,大量的上下文切换是可以接受的;

       (3)可运行队列,每个可运行队列不应该有超过1-3个线程(每处理器),比如:双处理器系统的可运行队列里不应该超过6个线程。

vmstat  是个查看系统整体性能的小工具,小巧、即使在很  heavy  的情况下也运行良好,并且可以用时间间隔采集得到连续的性能数据。

      $ vmstat 
      
        1
      
      
        

procs 
      
      -----------memory---------- ---swap-- -----io---- --system-- -----cpu------
      
        

 r  b   swpd   
      
      
        free
      
         buff  cache   si   so    bi    bo   
      
        in
      
         cs us sy 
      
        id
      
      
         wa st

 
      
      
        2
      
      
        1
      
      
        140
      
      
        2787980
      
      
        336304
      
      
        3531996
      
      
        0
      
      
        0
      
      
        0
      
      
        128
      
      
        1166
      
      
        5033
      
      
        3
      
      
        3
      
      
        70
      
      
        25
      
      
        0
      
      
        0
      
      
        1
      
      
        140
      
      
        2788296
      
      
        336304
      
      
        3531996
      
      
        0
      
      
        0
      
      
        0
      
      
        0
      
      
        1194
      
      
        5605
      
      
        3
      
      
        3
      
      
        69
      
      
        25
      
      
        0
      
      
        0
      
      
        1
      
      
        140
      
      
        2788436
      
      
        336304
      
      
        3531996
      
      
        0
      
      
        0
      
      
        0
      
      
        0
      
      
        1249
      
      
        8036
      
      
        5
      
      
        4
      
      
        67
      
      
        25
      
      
        0
      
      
        0
      
      
        1
      
      
        140
      
      
        2782688
      
      
        336304
      
      
        3531996
      
      
        0
      
      
        0
      
      
        0
      
      
        0
      
      
        1333
      
      
        7792
      
      
        6
      
      
        6
      
      
        64
      
      
        25
      
      
        0
      
      
        3
      
      
        1
      
      
        140
      
      
        2779292
      
      
        336304
      
      
        3531992
      
      
        0
      
      
        0
      
      
        0
      
      
        28
      
      
        1323
      
      
        7087
      
      
        4
      
      
        5
      
      
        67
      
      
        25
      
      
        0
      
      
        

 

参数介绍:

(
      
      
        1
      
      
        ).      r,可运行队列的线程数,这些线程都是可运行状态,只不过 CPU 暂时不可用;

(
      
      
        2
      
      
        ).      b,被 blocked 的进程数,正在等待 IO 请求;

(
      
      
        3
      
      ).      
      
        in
      
      
        ,被处理过的中断数

(
      
      
        4
      
      
        ).      cs,系统上正在做上下文切换的数目

(
      
      
        5
      
      
        ).      us,用户占用 CPU 的百分比

(
      
      
        6
      
      
        ).      sys,内核和中断占用 CPU 的百分比

(
      
      
        7
      
      
        ).      wa,所有可运行的线程被 blocked 以后都在等待 IO,这时候 CPU 空闲的百分比

(
      
      
        8
      
      ).      
      
        id
      
      ,CPU 完全空闲的百分比
    

 

 

Linux性能监控的几个工具


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论