官方的dstat定义是多功能系统资源统计生成工具(versatiletoolforgeneratingsystemresourcestatistics )。 获取的信息类似于top、free、iostat、vmstat等多个工具的集合,官方将其解释为vmstat、iostat、ifstat等工具的多功能替代品,提供了许多附加功能(dstatisaversatilereplaplate ) iostatandifstat.dstatovercomessomeofthelimitationsandaddssomeextrafeatures.); 结果保存在csv文件中,可以使用脚本和第三方工具分析和利用性能。 例如,可以在监视平台上进行监视,也可以保存到数据库中。
在根帐户下运行命令yum installdstat以安装软件
安装完成后,运行命令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
0 0100 0 0 0|1068B2066B| 0 0| 0 0| 14 21
0 0100 0 0 0| 0 0|112B146B| 0 0| 41 58
0 0100 0 0 0| 0 0|290B1156B| 0 0| 38 65
0 0100 0 0 0| 0 0| 56B138B| 0 0| 32 54
0 0100 0 0 0| 0 0| 56B338B| 0 0| 44 62
0 0100 0 0 0| 0 0| 56B338B| 0 0| 27 51
1 0100 0 0 0| 0 0| 56B338B| 0 0| 36 60
默认的输出字段说明如下
分组的含义和子字段的含义CPU状态CPU的使用率。 显示了用户占有率、系统占有率、怠速占有率、待机占有率、硬中断、软中断情况。 统计磁盘的读取/写入,显示磁盘的读取/写入总数。 统计网络设备收发的数据,分别显示的网络收发数据总数。 寻呼系统的寻呼活动。 分别显示置换(in )和置换(out )。 系统统计中断(int )和上下文切换(csw )。 1 .命令格式2 .命令选项optionsdetails--cpu打开cpu统计信息--c该选项由cpu编号(0到cpu核心数) 1、多个分隔得很清楚,例如0、3、 指示包括总-d的-磁盘上统计-d改选和具体设备名称(多个以逗号分隔),例如总、hda和hdb分别是总、hda和hdb设备块) g、- - -n此选项可以用网络设备名称和逗号分隔,如eth1,total-p,--proc打开进程统计信息、runnable和uninteer 此选项(包括used、free-S )是由逗号分隔的特定交换空间(如swap1、total-t和--time )、时间和日期输出--t, - -包含sys开放系统统计信息、中断和上下文切换--aio开放同步I/o统计信息--fs开放文件系统统计信息、(open files,inodes )、ipc开放ipc统计信息、)消息(posix、flock、read、write )、raw开放原始统计(raw开放socketss )、socket开放sockets统计。 )总体,
括(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两次输出之间的时间间隔,默认是1scount报告输出的次数,默认是没有限制,一直输出知道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的
关于运维学习、分享、交流,笔者开通了微信公众号【运维猫】,感兴趣的朋友可以关注下,欢迎加入,建立属于我们自己的小圈子,一起学运维知识。