1 | dstat
|
2 | ===
|
3 |
|
4 | 通用的系统资源统计工具
|
5 |
|
6 | ## 补充说明
|
7 |
|
8 | **dstat命令** 是一个用来替换vmstat、iostat、netstat、nfsstat和ifstat这些命令的工具,是一个全能系统信息统计工具。与sysstat相比,dstat拥有一个彩色的界面,在手动观察性能状况时,数据比较显眼容易观察;而且dstat支持即时刷新,譬如输入`dstat 3`即每三秒收集一次,但最新的数据都会每秒刷新显示。和sysstat相同的是,dstat也可以收集指定的性能资源,譬如`dstat -c`即显示CPU的使用情况。
|
9 |
|
10 | ### 下载安装
|
11 |
|
12 | **方法一**
|
13 |
|
14 | ```shell
|
15 | yum install -y dstat
|
16 | ```
|
17 |
|
18 | **方法二**
|
19 |
|
20 | 官网下载地址:http://dag.wieers.com/rpm/packages/dstat
|
21 |
|
22 | ```shell
|
23 | wget http://dag.wieers.com/rpm/packages/dstat/dstat-0.6.7-1.rh7.rf.noarch.rpm
|
24 | rpm -ivh dstat-0.6.7-1.rh7.rf.noarch.rpm
|
25 | ```
|
26 |
|
27 | ### 使用说明
|
28 |
|
29 | 安装完后就可以使用了,dstat非常强大,可以实时的监控cpu、磁盘、网络、IO、内存等使用情况。
|
30 |
|
31 | 直接使用dstat,默认使用的是`-cdngy`参数,分别显示cpu、disk、net、page、system信息,默认是1s显示一条信息。可以在最后指定显示一条信息的时间间隔,如`dstat 5`是没5s显示一条,`dstat 5 10`表示没5s显示一条,一共显示10条。
|
32 |
|
33 | ```shell
|
34 | [root@iZ23uulau1tZ ~]# dstat
|
35 | ----total-cpu-usage---- -dsk/total- -net/total- ---paging-- ---system--
|
36 | usr sys idl wai hiq siq| read writ| recv send| in out | int csw
|
37 | 0 0 99 0 0 0|7706B 164k| 0 0 | 0 0 | 189 225
|
38 | 0 0 100 0 0 0| 0 0 |4436B 826B| 0 0 | 195 248
|
39 | 1 0 99 0 0 0| 0 0 |4744B 346B| 0 0 | 203 242
|
40 | 0 0 100 0 0 0| 0 0 |5080B 346B| 0 0 | 206 242
|
41 | 0 1 99 0 0 0| 0 0 |5458B 444B| 0 0 | 214 244
|
42 | 1 0 99 0 0 0| 0 0 |5080B 346B| 0 0 | 208 242
|
43 | ```
|
44 |
|
45 | 下面对显示出来的部分信息作一些说明:
|
46 |
|
47 | 1. cpu:hiq、siq分别为硬中断和软中断次数。
|
48 | 2. system:int、csw分别为系统的中断次数(interrupt)和上下文切换(context switch)。
|
49 |
|
50 | 其他的都很好理解。
|
51 |
|
52 | ### 语法
|
53 |
|
54 | ```shell
|
55 | dstat [-afv] [options..] [delay [count]]
|
56 | ```
|
57 |
|
58 | ### 常用选项
|
59 |
|
60 | ```shell
|
61 | -c:显示CPU系统占用,用户占用,空闲,等待,中断,软件中断等信息。
|
62 | -C:当有多个CPU时候,此参数可按需分别显示cpu状态,例:-C 0,1 是显示cpu0和cpu1的信息。
|
63 | -d:显示磁盘读写数据大小。
|
64 | -D hda,total:include hda and total。
|
65 | -n:显示网络状态。
|
66 | -N eth1,total:有多块网卡时,指定要显示的网卡。
|
67 | -l:显示系统负载情况。
|
68 | -m:显示内存使用情况。
|
69 | -g:显示页面使用情况。
|
70 | -p:显示进程状态。
|
71 | -s:显示交换分区使用情况。
|
72 | -S:类似D/N。
|
73 | -r:I/O请求情况。
|
74 | -y:系统状态。
|
75 | --ipc:显示ipc消息队列,信号等信息。
|
76 | --socket:用来显示tcp udp端口状态。
|
77 | -a:此为默认选项,等同于-cdngy。
|
78 | -v:等同于 -pmgdsc -D total。
|
79 | --output 文件:此选项也比较有用,可以把状态信息以csv的格式重定向到指定的文件中,以便日后查看。例:dstat --output /root/dstat.csv & 此时让程序默默的在后台运行并把结果输出到/root/dstat.csv文件中。
|
80 | ```
|
81 |
|
82 | 当然dstat还有很多更高级的用法,常用的基本这些选项,更高级的用法可以结合man文档。
|
83 |
|
84 | ### 实例
|
85 |
|
86 | 如想监控swap,process,sockets,filesystem并显示监控的时间:
|
87 |
|
88 | ```shell
|
89 | [root@iZ23uulau1tZ ~]# dstat -tsp --socket --fs
|
90 | ----system---- ----swap--- ---procs--- ------sockets------ --filesystem-
|
91 | date/time | used free|run blk new|tot tcp udp raw frg|files inodes
|
92 | 26-07 09:23:48| 0 0 | 0 0 0.0|104 8 5 0 0| 704 6488
|
93 | 26-07 09:23:49| 0 0 | 0 0 0|104 8 5 0 0| 704 6488
|
94 | 26-07 09:23:50| 0 0 | 0 0 0|104 8 5 0 0| 704 6489
|
95 | 26-07 09:23:51| 0 0 | 0 0 0|104 8 5 0 0| 704 6489
|
96 | 26-07 09:23:52| 0 0 | 0 0 0|104 8 5 0 0| 704 6489
|
97 | 26-07 09:23:53| 0 0 | 0 0 0|104 8 5 0 0| 704 6489
|
98 | ```
|
99 |
|
100 | 若要将结果输出到文件可以加`--output filename`:
|
101 |
|
102 | ```shell
|
103 | [root@iZ23uulau1tZ ~]# dstat -tsp --socket --fs --output /tmp/ds.csv
|
104 | ----system---- ----swap--- ---procs--- ------sockets------ --filesystem-
|
105 | date/time | used free|run blk new|tot tcp udp raw frg|files inodes
|
106 | 26-07 09:25:31| 0 0 | 0 0 0.0|104 8 5 0 0| 736 6493
|
107 | 26-07 09:25:32| 0 0 | 0 0 0|104 8 5 0 0| 736 6493
|
108 | 26-07 09:25:33| 0 0 | 0 0 0|104 8 5 0 0| 736 6493
|
109 | 26-07 09:25:34| 0 0 | 0 0 0|104 8 5 0 0| 736 6493
|
110 | 26-07 09:25:35| 0 0 | 0 0 0|104 8 5 0 0| 736 6494
|
111 | 26-07 09:25:36| 0 0 | 0 0 0|104 8 5 0 0| 736 6494
|
112 | ```
|
113 |
|
114 | 这样生成的csv文件可以用excel打开,然后生成图表。
|
115 |
|
116 | 通过`dstat --list`可以查看dstat能使用的所有参数,其中上面internal是dstat本身自带的一些监控参数,下面`/usr/share/dstat`中是dstat的插件,这些插件可以扩展dstat的功能,如可以监控电源(battery)、mysql等。
|
117 |
|
118 | 下面这些插件并不是都可以直接使用的,有的还依赖其他包,如想监控mysql,必须要装python连接mysql的一些包。
|
119 |
|
120 | ```shell
|
121 | [root@iZ23uulau1tZ ~]# dstat --list
|
122 | internal:
|
123 | aio, cpu, cpu24, disk, disk24, disk24old, epoch, fs, int, int24, io, ipc, load, lock, mem, net, page, page24, proc, raw, socket, swap, swapold, sys, tcp, time, udp, unix, vm
|
124 | /usr/share/dstat:
|
125 | battery, battery-remain, cpufreq, dbus, disk-util, fan, freespace, gpfs, gpfs-ops, helloworld, innodb-buffer, innodb-io, innodb-ops, lustre, memcache-hits, mysql-io, mysql-keys, mysql5-cmds, mysql5-conn, mysql5-io, mysql5-keys,
|
126 | net-packets, nfs3, nfs3-ops, nfsd3, nfsd3-ops, ntp, postfix, power, proc-count, rpc, rpcd, sendmail, snooze, thermal, top-bio, top-cpu, top-cputime, top-cputime-avg, top-io, top-latency, top-latency-avg, top-mem, top-oom, utmp,
|
127 | vm-memctl, vmk-hba, vmk-int, vmk-nic, vz-cpu, vz-io, vz-ubc, wifi
|
128 | ```
|
129 |
|
130 | dstat命令的基本用法就说到这里,更多用法有待摸索,如果您需要补充内容请给我们发邮件,谢谢!
|
131 |
|
132 |
|
133 |
|
\ | No newline at end of file |