路漫漫其修远兮
吾将上下而求索

linux系统监控:dstat命令

1、介绍

dstat 是一个可以取代vmstat,iostat,netstat和ifstat这些命令的多功能产品。dstat克服了这些命令的局限并增加了一些另外的功能,增加了监控项,也变得更灵活了。dstat可以很方便监控系统运行状况并用于基准测试和排除故障。

dstat可以让你实时地看到所有系统资源,例如,你能够通过统计IDE控制器当前状态来比较磁盘利用率,或者直接通过网络带宽数值来比较磁盘的吞吐率(在相同的时间间隔内)。

dstat将以列表的形式为你提供选项信息并清晰地告诉你是在何种幅度和单位显示输出。这样更好地避免了信息混乱和误报。更重要的是,它可以让你更容易编写插件来收集你想要的数据信息,以从未有过的方式进行扩展。

Dstat的默认输出是专门为人们实时查看而设计的,不过你也可以将详细信息通过CSV输出到一个文件,并导入到Gnumeric或者Excel生成表格中。

2、参数

格式:dstat [-afv] [options..] [delay [count]]

-a:此为默认选项,等同于-cdngy
-c:enable cpu stats (system, user, idle, wait, hardware interrupt, software interrupt)
-C 0,3,total include cpu0, cpu3 and total,当有多个CPU时候,此参数可按需分别显示cpu状态,例:-C 0,1 是显示cpu0和cpu1的信息
-d:enable disk stats (read, write)
-n:显示网络状态 
-t :enable time/date output
-N eth1,total:有多块网卡时,指定要显示的网卡
-l:enable load average stats (1 min, 5 mins, 15mins)
-m:enable memory stats (used, buffers, cache, free)
-g:显示页面使用情况
-p:enable process stats (runnable, uninterruptible, new)
-s:enable swap stats (used, free),
-r:I/O请求情况 
-y:enable system stats (interrupts, context switches)
-v:等同于 -pmgdsc -D total

--ipc:显示ipc消息队列,信号等信息。 
--socket:用来显示tcp udp端口状态
--nocolor :不显示颜色(有时候有用)
--socket :enable socket stats (total, tcp, udp, raw, ip-fragments),显示网络统计数据
--tcp :enable tcp stats (listen, established, syn, time_wait, close),显示常用的TCP统计
--udp :enable udp stats (listen, active)

--output 文件:此选项也比较有用,可以把状态信息以csv的格式重定向到指定的文件中,以便日后查看。
例:dstat --output /root/dstat.csv & 此时让程序默默的在后台运行并把结果输出到/root/dstat.csv文件中

3、示例

比较简单,但是繁琐,就是给人看的,不能简便的用到脚本中,不好

1、每隔1秒显示一次,显示一共显示两次,下面有3行,第1行数据是以前的,无效

[root@localhost ~]#dstat 1 2
----total-cpu-usage---- -dsk/total- -net/total- ---paging-- ---system--
usr sys idl wai hiq siq| read  writ| recv  send|  in   out | int   csw 
  0   0  99   0   0   0|  18k 3264B|   0     0 |  63B  363B|  37    61 
  0   1 100   0   0   0|   0     0 |  60B  842B|   0     0 |  51    65 
  0   0 100   0   0   0|   0     0 |  60B  346B|   0     0 |  44    64

2、直接使用dstat,默认使用的是-cdngy参数,分别显示cpu、disk、net、page、system信息

[root@localhost ~]#dstat 
----total-cpu-usage---- -dsk/total- -net/total- ---paging-- ---system--
usr sys idl wai hiq siq| read  writ| recv  send|  in   out | int   csw 
  0   0  99   0   0   0|  18k 3259B|   0     0 |  63B  362B|  37    61 
  0   0  99   0   0   0|   0     0 |  60B  842B|   0     0 |  46    65 
  0   1  99   0   0   0|   0     0 |  60B  346B|   0     0 |  42    59 
 
[root@localhost ~]#dstat -cdngy
----total-cpu-usage---- -dsk/total- -net/total- ---paging-- ---system--
usr sys idl wai hiq siq| read  writ| recv  send|  in   out | int   csw 
  0   0  99   0   0   0|  18k 3258B|   0     0 |  63B  362B|  37    61 
  0   0 100   0   0   0|   0     0 |  60B  842B|   0     0 |  39    55 
  0   1  99   0   0   0|   0     0 |  60B  452B|   0     0 |  58    70

3、将输出数据保存为csv格式数据,这个数据可以在windows上面查看是excel格式的数据

[root@localhost ~]#dstat -cdn
----total-cpu-usage---- -dsk/total- -net/total-
usr sys idl wai hiq siq| read  writ| recv  send
  0   0  99   0   0   0|  18k 3254B|   0     0 
  0   0 100   0   0   0|   0     0 |  60B  570B
  
[root@localhost ~]#dstat -cdn --output /tmp/out.csv
----total-cpu-usage---- -dsk/total- -net/total-
usr sys idl wai hiq siq| read  writ| recv  send
  0   0  99   0   0   0|  18k 3252B|   0     0 
  0   0 100   0   0   0|   0  4096B|  60B  570B
  1   1  99   0   0   0|   0     0 |  60B  372B
  0   0 100   0   0   0|   0     0 |  60B  266B
  
[root@localhost ~]#cd /tmp
[root@localhost /tmp]#cat out.csv 
"Dstat 0.7.0 CSV output"
"Author:","Dag Wieers <dag@wieers.com>",,,,"URL:","http://dag.wieers.com/home-made/dstat/"
"Host:","localhost.localdomain",,,,"User:","root"
"Cmdline:","dstat -cdn --output /tmp/out.csv",,,,"Date:","08 May 2017 00:33:51 CST"

"total cpu usage",,,,,,"dsk/total",,"net/total",
"usr","sys","idl","wai","hiq","siq","read","writ","recv","send"
0.201,0.268,99.358,0.037,0.001,0.136,18542.547,3252.249,0.0,0.0
0.0,0.0,100.0,0.0,0.0,0.0,0.0,4096.0,60.0,570.0
0.500,0.500,99.0,0.0,0.0,0.0,0.0,0.0,60.0,372.0
0.0,0.0,100.0,0.0,0.0,0.0,0.0,0.0,60.0,266.0

未经允许不得转载:江哥架构师笔记 » linux系统监控:dstat命令

分享到:更多 ()

评论 抢沙发

评论前必须登录!