前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布

dstat

作者头像
胡齐
发布2019-09-23 18:47:35
1.2K0
发布2019-09-23 18:47:35
举报
文章被收录于专栏:运维猫运维猫

官方对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.命令选项

Options

Details

-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, - -io

io开启请求统计,包括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)

- -cpufreq

CPU频率百分比(需要ACPI)

- -dbus

dbus连接的数量(需要python-dbus)

- -disk-util

显示某一时间磁盘的忙碌状况

- -fan

风扇转速(需要ACPI)

- -freespace

每个文件系统的磁盘使用情况

- -gpfs

gpfs读/写 I / O(需要mmpmon)

- -gpfs-ops

GPFS文件系统操作(需要mmpmon)

- -helloworld

dstat插件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-io

MySQL5 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的

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-08-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 运维猫 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.命令格式
  • 2.命令选项
  • 3.命令参数
  • 4.插件命令
  • 6、dstat重点(个人意见)
相关产品与服务
容器镜像服务
容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档