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文件,使用脚本或第三方工具对性能进行分析利用(如通过监控平台监控,也可以保持到数据库)。

在root账户下执行命令yum install dstat , 进行软件的安装

安装完成后,我们执行命令dstat。显示为系统的整体的性能信息

[root@docker-01 ~]# dstat 

You did not select any stats, using -cdngy by default.

----total-cpu-usage---- -dsk/total- -net/total- ---paging-- ---system--

usrsysidlwaihiqsiq|read writ|recv send|  in  out |int  csw 

  0   0 100   0   0   0|1068B 2066B|  0     0 |  0     0 |  14    21

  0   0 100   0   0   0|  0     0 |112B 146B|  0     0 |  41    58

  0   0 100   0   0   0|  0     0 |290B 1156B|  0     0 |  38    65

  0   0 100   0   0   0|  0     0 |  56B 138B|  0     0 |  32    54

  0   0 100   0   0   0|  0     0 |  56B 338B|  0     0 |  44    62

  0   0 100   0   0   0|  0     0 |  56B 338B|  0     0 |  27    51

  1   0 100   0   0   0|  0     0 |  56B 338B|  0     0 |  36    60 

 

针对默认输出字段解释如下

分组分组含义及子项字段含义
CPU状态CPU的使用率。显示了用户占比,系统占比、空闲占比、等待占比、硬中断和软中断情况。
磁盘统计磁盘的读写,分别显示磁盘的读、写总数。
网络统计网络设备发送和接受的数据,分别显示的网络收、发数据总数。
分页统计系统的分页活动。分别显示换入(in)和换出(out)。
系统统计统计中断(int)和上下文切换(csw)。

 

1.命令格式

 

2.命令选项

OptionsDetails
-c, - -cpu开启cpu统计
-C该选项跟cpu的编号(0~cpu核数-1,多个用都好隔开)如:0,3,total表示分别包含cpu0、cpu3和total
-d, - -disk开启disk统计
-D改选跟具体的设备名(多个用逗号隔开)如:total,hda,hdb表示分别统计total、hda、hdb设备块
-g, - -page开启分页统计
-i, - -int开启中断统计
-l, - -load开启负载均衡统计,分别是1m,5m,15m
-m, - -mem开启内存统计,包括used,buffers,cache,free
-n, - -net开启net统计,包括接受和发送
-N该选项可以跟网络设备名多个用逗号隔开,如eth1,total
-p, - -proc开启进程统计,包括runnable, uninterruptible, new
-r, - -ioio开启请求统计,包括read requests, write requests
-s, - -swap开启swap统计,包括used, free
-S该选项可以跟具体的交换区,多个用逗号隔开如swap1,total
-t, - -time启用时间和日期输出
-T, - -epoch启用时间计数,从epoch到现在的秒数
-y, - -sys开启系统统计,包括中断和上下文切换
- -aio开启同步IO统计 (asynchronous I/O)
- -fs开启文件系统统计,包括 (open files, inodes)
- -ipc开启ipc统计,包括 (message queue, semaphores, shared memory)
- -lock开启文件所统计,包括 (posix, flock, read, write)
- -raw开启raw统计 (raw sockets)
- -socket开启sockets统计,包括 (total, tcp, udp, raw, ip-fragments)
- -tcp开启tcp统计,包括(listen, established, syn, time_wait, close)
- -udp开启udp统计 (listen, active)
- -unix开启unix统计(datagram, stream, listen, active)
- -vm开启vm统计 (hard pagefaults, soft pagefaults, allocated, free)
- -list列举内置插件扩展的名称
-a, - -all是默认值相当于 -cdngy (default)
-f, - -full相当于 -C, -D, -I, -N and -S
-v, - -vmstat相当于 -pmgdsc -D total
- -bw, - -blackonwhite在白色背景终端上改变显示颜色
- -float在屏幕上的输出强制显示为浮点值(即带小数)(相反的选项设置为 - -integer)
- -integer在屏幕上的输出强制显示为整数值,此为默认值(相反的选项设置为- -float)
- -nocolor禁用颜色(意味着选项 - -noupdate)
- -noheaders禁止重复输出header,默认会打印一屏幕输出一次header
- -noupdate当delay>1时禁止在过程中更新(即在时间间隔内不允许更新)
- -output file输出结果到cvs文件中

 

3.命令参数

参数名称参数描述
delay两次输出之间的时间间隔,默认是1s
count报告输出的次数,默认是没有限制,一直输出知道ctrl+c

 

查看cpu的整体情况,执行命令dstat -c。显示各个信息为CPU用户占用,系统占用,空闲,等待,中断,软件中断等信息。

[root@docker-01 ~]# dstat -c

----total-cpu-usage----

usrsysidlwaihiqsiq

  0   0 100   0   0   0

  1   0 100   0   0   0

  0   0 100   0   0   0

查看系统的磁盘的读写数据大小,执行命令dstat -d

[root@docker-01 ~]# dstat -d

-dsk/total-

 read writ

1067B 2105B

   0     0 

   0     0

   0     0 

查看系统的网络状态,执行命令dstat -n

[root@docker-01 ~]# dstat -n

-net/total-

 recv send

   0     0 

  56B   90B

  56B 194B

  56B 154B

查看系统的内存信息,执行命令dstat -m

[root@docker-01 ~]# dstat -m

------memory-usage-----

 used buff cach free

 258M 2108k 424M 9154M

 258M 2108k 424M 9154M

 258M 2108k 424M 9154M

查看系统的负载情况,执行命令dstat -l

[root@docker-01 ~]# dstat -l

---load-avg---

 1m  5m 15m 

   0 0.01 0.05

   0 0.01 0.05

   0 0.01 0.05

查看系统的I/O请求情况,执行命令dstat -r

[root@docker-01 ~]# dstat -r

--io/total-

 read writ

0.04  0.16 

   0  15.0

   0     0 

监控udp、tcp,监控CPU,显示时间,每三秒扫描一次,共扫描三次

[root@docker-01 ~]# dstat --udp --tcp -c -t 3 3 

--udp-- ----tcp-sockets---- ----total-cpu-usage---- ----system----

lisact|lisactsyntimclo|usrsysidlwaihiqsiq|    time     

  8   0|  7   2   0   0   0|  0   0 100   0   0   0|19-08 21:50:55

  8   0|  7   2   0   0   0|  0   0 100   0   0   0|19-08 21:50:58

  8   0|  7   2   0   0   0|  0   0 100   0   0   0|19-08 21:51:01

  8   0|  7   2   0   0   0|  0   0 100   0   0   0|19-08 21:51:04

4.插件命令

插件名称插件描述
- -battery电池电池百分比(需要ACPI)
- -battery-remain电池剩余小时、分钟(需要ACPI)
- -cpufreqCPU频率百分比(需要ACPI)
- -dbusdbus连接的数量(需要python-dbus)
- -disk-util显示某一时间磁盘的忙碌状况
- -fan风扇转速(需要ACPI)
- -freespace每个文件系统的磁盘使用情况
- -gpfsgpfs读/写 I / O(需要mmpmon)
- -gpfs-opsGPFS文件系统操作(需要mmpmon)
- -helloworlddstat插件Hello world示例
- -innodb-buffer显示innodb缓冲区统计
- -innodb-io显示innodb I / O统计数据
- -innodb-ops显示innodb操作计数器
- -lustre显示lustreI / O吞吐量
- -memcache-hits显示memcache 的命中和未命中的数量
- -mysql5-cmds显示MySQL5命令统计
- -mysql5-conn显示MySQL5连接统计
- -mysql5-ioMySQL5 I / O统计数据
- -mysql5-keys显示MySQL5关键字统计
- -mysql-io显示MySQL I / O统计数据
- -mysql-keys显示MySQL关键字统计
- -net-packets显示接收和发送的数据包的数量
- -nfs3显示NFS v3客户端操作
- -nfs3-ops显示扩展NFS v3客户端操作
- -nfsd3显示NFS v3服务器操作
- -nfsd3-ops显示扩展NFS v3服务器操作
- -ntp显示NTP服务器的ntp时间
- -postfix显示后缀队列大小(需要后缀)
- -power显示电源使用量
- -proc-count显示处理器的总数
- -rpc显示rpc客户端调用统计
- -rpcd显示RPC服务器调用统计
- -sendmail显示sendmail队列大小(需要sendmail)
- -snooze显示每秒运算次数
- -test显示插件输出
- -thermal热系统的温度传感器
- -top-bio显示消耗块I/O最大的进程
- -top-cpu显示消耗CPU最大的进程
- -top-cputime显示使用CPU时间最大的进程(单位ms)
- -top-cputime-avg显示使用CPU时间平均最大的进程(单位ms)
- -top-io显示消耗I/O最大进程
- -top-latency显示总延迟最大的进程(单位ms)
- -top-latency-avg显示平均延时最大的进程(单位ms)
- -top-mem显示使用内存最大的进程
- -top-oom显示第一个被OOM结束的进程
- -utmp显示utmp连接的数量(需要python-utmp)
- -vmk-hba显示VMware ESX内核vmhba统计数
- -vmk-int显示VMware ESX内核中断数据
- -vmk-nic显示VMware ESX内核端口统计
- -vz-io显示每个OpenVZ请求CPU使用率
- -vz-ubc显示OpenVZ用户统计
- -wifi无线连接质量和信号噪声比

5.常用插件命令

插件名称插件描述
- -disk-util显示某一时间磁盘的忙碌状况
- -freespace显示当前磁盘空间使用率
- -proc-count显示正在运行的程序数量
- -top-bio显示块I/O最大的进程
- -top-cpu显示CPU占用最大的进程
- -top-io显示正常I/O最大的进程
- -top-mem显示占用最多内存的进程

例:

查看CPU资源使用情况,执行命令 

[root@docker-01 ~]# dstat -cyl --proc-count --top-cpu

----total-cpu-usage---- ---system-- ---load-avg--- proc -most-expensive-

usrsysidlwaihiqsiq|int  csw |1m  5m 15m |tota|  cpu process   

  0   0 100   0   0   0|  14    21|  0 0.01 0.05|109|python2      0.0

  0   1 99   0   0   0|  57    40|  0 0.01 0.05|109|                

  1   0 99   0   0   0|  53    42|  0 0.01 0.05|109|                

  1   1 99   0   0   0|  36    28|  0 0.01 0.05|109|               

  0   0 100   0   0   0|  40    30|  0 0.01 0.05|109| 

查看内存资源使用情况,执行命令 

[root@docker-01 ~]# dstat -glms --top-mem

Terminal width too small, trimming output.

---paging-- ---load-avg--- ------memory-usage----- ----swap--->

  in  out |1m  5m 15m |used buff cach free|used free>

   0     0 |  0 0.01 0.05|258M 2108k 424M 9154M|  0  2048M>

   0     0 |  0 0.01 0.05|259M 2108k 424M 9153M|  0  2048M>

   0     0 |  0 0.01 0.05|259M 2108k 424M 9153M|  0  2048M>

   0     0 |  0 0.01 0.05|259M 2108k 424M 9153M|  0  2048M>

6、dstat重点(个人意见)

dstat --top-cpu:显示最消耗CPU的进程

dstat --top-cuptime:最消耗CPU时间的进程,以毫秒为单位

dstat --top-io:显示消耗io最多的进程

dstat --top-latency:显示哪个进程有最大的延迟

dstat --top-mem:显示用内存最多的线程

dstat --top-mem  --top-cpu:俩个一起使用也是OK的

关于运维学习、分享、交流,笔者开通了微信公众号【运维猫】,感兴趣的朋友可以关注下,欢迎加入,建立属于我们自己的小圈子,一起学运维知识。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值