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

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的

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

本文分享自微信公众号 - 运维猫(centos15),作者:胡齐

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-08-20

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • CentOS7 搭建FastDFS分布式文件系统(上)

    FastDFS的作者淘宝资深架构余庆,这个优秀的轻量及的分布式文件系统的开源没多久,立马就火了。FastDFS是为互联网应用量身定做的一套分布式文件存储系统,非...

    胡齐
  • Linux环境下误删重要文件怎么办

    自己的朋友杰哥的微信公众号:(杰哥的IT之旅)里面很多干货,感兴趣的小伙伴可以关注下。

    胡齐
  • psacct

    psacct或ACCT都是在系统上监控用户活动的开源应用程序。 这些应用程序在后台运行,并跟踪系统上的每个用户活动以及正在使用的资源。

    胡齐
  • Science大型撤稿报告:IEEE狂撤7000篇论文,中国两位超级撤稿大户曝光!

    Science近日发布了一个“撤稿”报告,许多数字令人震惊:过去10年里学术期刊撤回的论文数量增加了10倍,撤稿率最高的国家中国排第7,撤稿最多的10位作者中,...

    昱良
  • Science大型撤稿报告:IEEE狂撤7000篇论文,中国两位超级撤稿大户曝光!

    最近几年,科学领域一种令人不安的趋势愈加突显:过去10年里,学术期刊撤回的论文数量增加了10倍。在这些被撤回的稿件中,“造假”(fraud)约占60%。

    新智元
  • Python-排序-01-字典排序

    系统:Windows 7 语言版本:Anaconda3-4.3.0.1-Windows-x86_64 编辑器:pycharm-community-2016.3....

    zishendianxia
  • 【Big Data】如何修炼成大数据高手?推荐你看这些书

    首先声明一点,千万不要以为看了这篇文章就能成为大数据高手了,不然就不会用“修炼”这个词了,要修炼成大数据高手决不是件容易的事,可以说是非常难的一件事。要不也不会...

    CDA数据分析师
  • 【学习】如何修炼成大数据高手?推荐你看这些书

    首先声明一点,千万不要以为看了这篇文章就能成为大数据高手了,不然就不会用“修炼”这个词了,要修炼成大数据高手决不是件容易的事,可以说是非常 难的一...

    小莹莹
  • 落单的数Ⅲ

    一份执着✘
  • 斐波那契数列-Java

    码农笔录

扫码关注云+社区

领取腾讯云代金券