Linux性能排查工具: dstat

dstat是一款在 Linux 操作系统中用于生成系统资源统计数据的强大工具。它结合了 vmstatiostatmpstat 的功能。但与传统的 vmstat、iostat、mpstat 等命令相比,dstat提供了一个更加灵活和统一的接口来监测和展示系统性能指标。
该工具的主要特点包括:

  1. 多维监控:dstat 能够同时展示 CPU、内存、磁盘 I/O、网络流量等多种系统资源的使用情况,而无需切换不同的监控工具。
  2. 自定义统计组合:用户可以根据需要选择显示特定的统计项目,例如只监控内存使用情况或者网络流量。
  3. 实时更新:dstat 的输出会实时更新,反映最新的系统状态,对于实时监控非常有用。
  4. 时间周期设置:可以设置更新频率和时间周期,以便在特定时间间隔内获取数据。
  5. 输出格式灵活:支持多种输出格式,如 HTML、CSV 等,方便将数据导出到其他应用程序进行分析。
  6. 扩展性:dstat 允许用户编写自己的插件来扩展其功能,以满足特定的监控需求。
  7. 易于使用:命令行界面简单直观,即使是初学者也能很快学会如何使用。
  8. 颜色编码:可选的颜色编码功能可以提高输出的可读性。

安装本文使用的是centos,使用yum进行安装

yum -y install dstat

使用dstat时,可以通过组合不同的选项来获取所需的统计信息。

dstat [options] [--title "TITLE"] [--output file] [--format fmt] [--separator sep] [--prefix pre] [--suffix suf] [--decimals dec] [--colors] [--tzinfo] [--tzinfo-file file]

选项

  • -h, --help:显示帮助。
  • -V, --version:显示版本。
  • -c N, --cpu=N:显示 N 个 CPU 的统计数据(默认为全部 CPU)。
  • -m, --mem:显示内存统计数据。
  • -s, --swap:显示交换空间统计数据。
  • -l, --load:显示负载平均值。
  • -p, --proc:进程统计信息(包括可运行的、不可中断的以及新建的进程)。
  • -d, --disk:显示磁盘 I/O 统计数据。
  • -n, --network:显示网络统计数据。
  • -t, --time:输出时间,日-月 时:分:秒。
  • -T, --epoch:要启用自纪元以来的秒数时间计数器,自 1970 年 1 月 1 日 00:00:00 UTC( Unix 纪元)起经过的秒数,作为时间计量的标准。
  • -C 0,3,total:选项指定了包括CPU0、CPU3以及总体CPU核心的使用情况。
  • -a, --all:显示所有可用统计。
  • -i, --int:中断统计信息。
  • -I 5,10 选项指定了只监控中断线5和10的统计信息。
  • -g, --page:可以监控与页面交换(也称为分页)相关的统计信息。这包括页面输入(page ins)和页面输出(page outs),它们分别代表从磁盘读取到内存的数据总量和从内存写回磁盘的数据总量。
  • --no-colors:禁用颜色输出。
  • -f fmt, --format fmt:自定义输出格式。
  • -S sep, --separator sep:设置列分隔符。
  • -v, --vmstat:等同于加参数:-pmgdsc -D total

具体来说:

  • -p 选项显示进程相关的统计信息,如运行中的进程数和新创建的进程数
  • -m 选项显示内存使用情况,包括缓冲区和缓存的使用情况。
  • -g 选项显示与页面交换(分页)相关的统计信息,如页面输入和页面输出。
  • -d 选项显示磁盘I/O统计信息,包括读写操作的数量和字节数。
  • -s 选项显示系统调用统计信息,如接收和发送的套接字数量。
  • -c 选项显示CPU使用情况统计信息,包括每个CPU核心的使用率和中断数。
  • -D total 选项设置了时间分辨率为“total”,这意味着 dstat 将合并所有核心的CPU统计信息,并显示总体的CPU负载。

使用案例展示:

  1. 监控CPU和内存使用情况:

     dstat -c -m
    
    # dstat -c -m
    ----total-cpu-usage---- ------memory-usage-----
    usr sys idl wai hiq siq| used  buff  cach  free
      3   3  93   0   0   0| 964M    0   676M  179M
      8   7  84   0   0   1| 965M    0   676M  179M
      3   3  94   0   0   1| 965M    0   676M  179M
      2   3  95   0   0   1| 965M    0   676M  179M
     11   2  86   0   0   1| 964M    0   676M  179M
    

    关注指标:CPU使用率、内存使用率、缓冲区使用量、缓存使用量

  2. 监控磁盘I/O:

     dstat -d -f
    
    #dstat -d -f
    --dsk/sda-----dsk/sr0--
     read  writ: read  writ
     510k  105k:  11B    0 
       0    28k:   0     0 
       0    46k:   0     0 
       0    12k:   0     0 
       0    46k:   0     0 
       0     0 :   0     0 
       0    79k:   0     0 
       0    24k:   0     0 
    

    关注指标:磁盘读写次数、读写字节数

  3. 监控网络流量:

     dstat -n -f
    
    #dstat -n -f
    -net/ens33-
     recv  send
       0     0 
     180B  218B
     254B  170B
    1314B 1416B
    

    关注指标:发送和接收的数据包数量、发送和接收的字节数。

  4. 监控系统中断:

     dstat -i
    
    #dstat -i
    ----interrupts---
      18    19    56 
       0    11     0 
       0     5     0 
       0     5     0 
       0     5     1 
       0    15     0 
       0     5     0 
    

    关注指标:每秒中断数、特定中断事件的次数。

  5. 监控系统负载

     dstat  -l
    
    #dstat -l
    ---load-avg---
     1m   5m  15m 
    0.56 0.60 0.46
    0.56 0.60 0.46
    0.56 0.60 0.46
    0.56 0.60 0.46
    

    关注指标:1分钟、5分钟和15分钟的平均系统负载

  6. 监控进程状态:

     dstat -p
    
    #dstat -p
    ---procs---
    run blk new
      0   0 9.3
      0   0  20
      0   0 1.0
    1.0   0   0
      0   0   0
      0   0   0
    

    关注指标:运行中的进程数、新创建的进程数、终止的进程数。

  7. 监控虚拟内存和交换空间

     dstat -v
    
    #dstat -v
    ---procs--- ------memory-usage----- ---paging-- -dsk/total- ---system-- ----total-cpu-usage----
    run blk new| used  buff  cach  free|  in   out | read  writ| int   csw |usr sys idl wai hiq siq
      0   0 9.3| 969M    0   679M  172M|   0     0 | 506k  104k|2270  4740 |  3   3  93   0   0   0
      0   0  20| 970M    0   679M  171M|   0     0 |   0    48k|2648  5398 |  2   5  93   0   0   1
      0   0 1.0| 969M    0   679M  171M|   0     0 |   0   123k|2325  4995 |  6   3  90   0   0   1
    

    关注指标:活动内存量、空闲内存量、页面输入输出次数和字节数。

  8. 综合监控CPU、内存和磁盘:

     dstat -c -m -d
    
    #dstat -c -m -d
    ----total-cpu-usage---- ------memory-usage----- -dsk/total-
    usr sys idl wai hiq siq| used  buff  cach  free| read  writ
      3   3  93   0   0   0| 970M    0   679M  171M| 506k  104k
      2   3  95   0   0   1| 970M    0   679M  170M|   0    70k
      0   2  98   0   0   0| 970M    0   679M  170M|   0    12k
      3   4  93   0   0   1| 970M    0   679M  170M|   0    46k
      4   6  89   0   0   1| 970M    0   679M  170M|   0     0 
      2   4  94   0   0   0| 970M    0   679M  170M|  16k   44k
    

    关注指标:CPU使用率、内存使用率、磁盘读写活动。

  9. 监控系统中断和网络流量:

     dstat -i -n
    
    	#dstat -i -n
    ----interrupts--- -net/total-
      18    19    56 | recv  send
       0    11     0 |   0     0 
       0     3     0 | 120B  378B
       0     5     0 | 180B  278B
       0     7     0 | 246B  303B
       0    15     0 |1314B 1464B
    

    关注指标:中断事件、网络数据包流量。

  10. 全面监控系统性能:

    dstat --all
    
    #dstat --all
    ----total-cpu-usage---- -dsk/total- -net/total- ---paging-- ---system--
    usr sys idl wai hiq siq| read  writ| recv  send|  in   out | int   csw 
      3   3  93   0   0   0| 505k  104k|   0     0 |   0     0 |2270  4742 
      6   6  87   0   0   1|   0    67k| 246B  908B|   0     0 |3498  7301 
      1   2  96   0   0   1|   0    52k| 254B  362B|   0     0 |2613  5543 
      1   2  97   0   0   0|   0    46k| 120B  362B|   0     0 |2375  506
    

    关注指标:CPU、内存、磁盘、网络、中断和VMSTAT的所有相关指标

你可能感兴趣的:(linux,服务器,运维)