Linux 性能分析工具汇总之dstat–系统监控工具

官方对dstat的定义

多功能系统资源统计生成工具( versatile tool for generating system resource statistics)。在获取的信息上有点类似于top、free、iostat、vmstat等多个工具的合集,官方解释为vmstat、iostat、ifstat等工具的多功能替代品,且添加了许多额外的功能(Dstat is a versatile replacement for vmstat, iostat and ifstat. Dstat overcomes some of the limitations and adds some extra features.);其结果可以保持到csv文件,使用脚本或第三方工具对性能进行分析利用(如通过监控平台监控,也可以保持到数据库)。在Centos 6.x系统上安装基本服务器即默认安装,而在其他操作系统可能需要手动安装。

dstat显示了cpu使用情况,磁盘io情况,网络发包情况和换页情况,输出是彩色的,可读性较强,相对于vmstat和iostat的输入更加详细且较为直观。在使用时,直接输入命令即可,当然也可以使用特定参数。

安装dstat

[root@k8s-master01 ~]# yum install 'dstat'
上次元数据过期检查:1:35:12 前,执行于 2021年04月19日 星期一 16时00分54秒。
依赖关系解决。
===============================================================================================================================================================================================
 软件包                                            架构                                    版本                                               仓库                                        大小
===============================================================================================================================================================================================
安装:
 pcp-system-tools                                  x86_64                                  5.1.1-3.el8                                        appstream                                  191 k
安装依赖关系:
 libuv                                             x86_64                                  1:1.38.0-2.el8                                     appstream                                  151 k
 pcp                                               x86_64                                  5.1.1-3.el8                                        appstream                                  1.2 M
 pcp-conf                                          x86_64                                  5.1.1-3.el8                                        appstream                                   50 k
 pcp-libs                                          x86_64                                  5.1.1-3.el8                                        appstream                                  536 k
 pcp-selinux                                       x86_64                                  5.1.1-3.el8                                        appstream                                   47 k
 python3-pcp                                       x86_64                                  5.1.1-3.el8                                        appstream                                  167 k
​
事务概要
===============================================================================================================================================================================================
安装  7 软件包
​
总计:2.3 M
安装大小:6.8 M
确定吗?[y/N]: y
下载软件包:
运行事务检查
事务检查成功。
运行事务测试
事务测试成功。
运行事务
  准备中  :                                                                                                                                                                                1/1 
  安装    : libuv-1:1.38.0-2.el8.x86_64                                                                                                                                                    1/7 
  安装    : pcp-selinux-5.1.1-3.el8.x86_64                                                                                                                                                 2/7 
  运行脚本: pcp-selinux-5.1.1-3.el8.x86_64                                                                                                                                                 2/7 
  安装    : pcp-conf-5.1.1-3.el8.x86_64                                                                                                                                                    3/7 
  安装    : pcp-libs-5.1.1-3.el8.x86_64                                                                                                                                                    4/7 
  运行脚本: pcp-5.1.1-3.el8.x86_64                                                                                                                                                         5/7 
  安装    : pcp-5.1.1-3.el8.x86_64                                                                                                                                                         5/7 
  运行脚本: pcp-5.1.1-3.el8.x86_64                                                                                                                                                         5/7 
  安装    : python3-pcp-5.1.1-3.el8.x86_64                                                                                                                                                 6/7 
  安装    : pcp-system-tools-5.1.1-3.el8.x86_64                                                                                                                                            7/7 
  运行脚本: pcp-system-tools-5.1.1-3.el8.x86_64                                                                                                                                            7/7 
  验证    : libuv-1:1.38.0-2.el8.x86_64                                                                                                                                                    1/7 
  验证    : pcp-5.1.1-3.el8.x86_64                                                                                                                                                         2/7 
  验证    : pcp-conf-5.1.1-3.el8.x86_64                                                                                                                                                    3/7 
  验证    : pcp-libs-5.1.1-3.el8.x86_64                                                                                                                                                    4/7 
  验证    : pcp-selinux-5.1.1-3.el8.x86_64                                                                                                                                                 5/7 
  验证    : pcp-system-tools-5.1.1-3.el8.x86_64                                                                                                                                            6/7 
  验证    : python3-pcp-5.1.1-3.el8.x86_64                                                                                                                                                 7/7 
Installed products updated.
​
已安装:
  libuv-1:1.38.0-2.el8.x86_64      pcp-5.1.1-3.el8.x86_64   pcp-conf-5.1.1-3.el8.x86_64   pcp-libs-5.1.1-3.el8.x86_64   pcp-selinux-5.1.1-3.el8.x86_64   pcp-system-tools-5.1.1-3.el8.x86_64  
  python3-pcp-5.1.1-3.el8.x86_64  
​
完毕!
[root@k8s-master01 ~]# 
​

dstat命令有默认选项

与许多命令一样,dstat命令有默认选项,执行dstat命令不加任何参数,它默认会收集-cpu-、-disk-、-net-、-paging-、-system-的数据,一秒钟收集一次。 默认输入 dstat 等于输入了dstat -cdngy 1或dstat -a 1。

[root@k8s-master01 ~]# dstat -a 1
----total-usage---- -dsk/total- -net/total- ---paging-- ---system--
usr sys idl wai stl| read  writ| recv  send|  in   out | int   csw 
  2   0  97   0   0|   0    76k| 969   985 |   0     0 |7669    12k^C
[root@k8s-master01 ~]# dstat
You did not select any stats, using -cdngy by default.
----total-usage---- -dsk/total- -net/total- ---paging-- ---system--
usr sys idl wai stl| read  writ| recv  send|  in   out | int   csw 
  1   0  97   2   0|   0    96k| 831   670 |   0     0 |5870  8466 
  2   0  97   0   0|   0    32k| 320   382 |   0     0 |6697    11k
  2   0  96   2   0|   0    80k| 375   318 |   0     0 |6042  8870 ^C
[root@k8s-master01 ~]# dstat -cdngy 1
----total-usage---- -dsk/total- -net/total- ---paging-- ---system--
usr sys idl wai stl| read  writ| recv  send|  in   out | int   csw 
  1   0  98   0   0|   0    32k|  64   318 |   0     0 |6433  9522 
  1   0  98   1   0|   0   112k| 898   318 |   0     0 |7556    11k
  1   1  98   0   0|   0     0 |4433  3882 |   0     0 |5701  7908 
​

使用 dstat -h查看全部选项,这里不逐一列举,下面简单介绍下常用选项

常用选项如下

常用选项:
  # 直接跟数字,表示#秒收集一次数据,默认为一秒;dstat 5表示5秒更新一次
  -c, --cpu
    统计CPU状态,包括 user, system, idle (空闲等待时间百分比), wait (等待磁盘IO),
    hardware interrupt (硬件中断), software interrupt (软件中断) 等;
  -d, --disk
    统计磁盘读写状态,主要包括了读写信息;
  -l, --load
    统计系统负载情况,包括1分钟、5分钟、15分钟平均值;
  -m, --mem
    统计系统物理内存使用情况,包括used, buffers, cache, free;
  -s, --swap
    统计swap已使用和剩余量;
  -n, --net
    统计网络使用情况,包括接收和发送数据;
  -p, --proc
    统计进程信息,包括runnable、uninterruptible、new;
  -N eth1,total
    统计eth1接口汇总流量;
  -r, --io
    统计I/O请求,包括读写请求;
  -y, --sys
    统计系统信息,包括中断、上下文切换;
  -t
    显示统计时时间,对分析历史数据非常有用;
  --fs
    统计文件打开数和inodes数;

以上这些就是最常用的选项,而一般都组合使用,个人比较常用的是:

组合使用参数

[root@k8s-master01 ~]# dstat -cdlmnpsy
----total-usage---- -dsk/total- ---load-avg--- ------memory-usage----- -net/total- ---procs--- ----swap--- ---system--
usr sys idl wai stl| read  writ| 1m   5m  15m | used  free  buf   cach| recv  send|run blk new| used  free| int   csw 
  1   0  97   1   0|   0    92k|0.16 0.27 0.30|6572M  429M 2012k   10G| 972   618 |  0   0 1.0|   0     0 |6023  8748 
  2   0  98   0   0|   0     0 |0.15 0.26 0.29|6572M  429M 2012k   10G| 192  1476 |  0   0 1.0|   0     0 |5721  8559 
  2   1  97   1   0|   0    48k|0.22 0.28 0.30|6572M  429M 2012k   10G|1760   903 |  0   0 1.0|   0     0 |7186    11k
  2   0  98   0   0|   0     0 |0.20 0.27 0.30|6571M  429M 2012k   10G| 704   542 |  0   0 1.0|   0     0 |5788  8707 
  1   0  94   5   0|   0   236k|0.20 0.27 0.30|6571M  429M 2012k   10G| 381   462 |1.0 2.0  25|   0     0 |7679    13k
  1   1  94   4   0|   0    72k|0.20 0.27 0.30|6571M  429M 2012k   10G|2935  2636 |  0   0 5.0|   0     0 |6370  9522 
  1   0  98   0   0|   0    48k|0.20 0.27 0.30|6572M  428M 2012k   10G|6228  2702 |  0 2.0  18|   0     0 |6666  9810 
  1   0  98   1   0|   0    88k|0.20 0.27 0.30|6572M  429M 2012k   10G|2995   698 |  0   0 1.0|   0     0 |5667  8150 
  1   0  98   0   0|   0   108k|0.18 0.27 0.29|6572M  428M 2012k   10G|1279   614 |  0   0  22|   0     0 |6508  9752 
  1   0  98   0   0|   0    32k|0.18 0.27 0.29|6572M  429M 2012k   10G| 320   470 |  0 1.0 1.0|   0     0 |5799  8516 
​

这个输出还是比较全面的

监测界面各个指标含义

total-usage CPU统计

  • usr:用户态进程占用CPU次数
  • sys:系统进程的CPU使用率
  • idl:CPU空闲率
  • wai:CPU的wait时间
  • stl:不知道是啥,有知道的铁子,评论区见
  • hiq:硬中断次数
  • siq :软件中断次数

procs 进程统计

  • 正在运行(run)、被阻止(blk)和新(new)生成的进程数。

dsk/total 磁盘统计

  • 磁盘上读(read)和写(writ)操作的总数

load-avg 1分钟,5分钟,15分钟系统负载

memory-usage 内存统计

  • 已使用(used)、缓冲(buff)、缓存(cach)和可用(free)内存的数量

net/total 网络统计

  • 网络接口上接收(recv)和发送(send)的字节总数。

swap

  • 缓存区使用used和空闲free空间

system 系统状态

  • int:为系统的中断次数(interrupt)
  • csw:上下文切换(context switch)

已上就是Linux 性能分析工具汇总之dstat–系统监控工具使用过程,觉得有用就给个赞吧

版权声明:本文为作者原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原创文章,作者:老C,如若转载,请注明出处:https://www.code404.icu/317.html

发表评论

登录后才能评论