官方对dstat的定义为:多功能系统资源统计生成工具。
在获取的信息上有点类似于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文件,使用脚本或第三方工具对性能进行分析利用(如通过监控平台监控,也可以保持到数据库)。
在Centos 6.x系统上安装基本服务器即默认安装,而在其他操作系统可能需要手动安装。
例如:
1、监控CPU、内存、swap、磁盘使用率,并输出到csv。recordTime 是每条记录的间隔时间,以 秒 为单位。recordNum 是记录数。 -- 此处的输出是追加模式。
$ dstat -tcms --freespace --disk-util --output /home/TempFold/status.csv recordTime recordNum
2、找出占用资源最高的进程和用户
dstat --top-(io|bio|cpu|cputime|cputime-avg|mem)
通过这几个选项,可以看到具体是那个用户那个进程占用了相关系统资源,对系统调优非常有效。如查看当前占用I/O、cpu、内存等最高的进程信息可以使用
$ dstat --top-mem --top-io --top-cpu
3、常用命令如下:
dstat -cmsdnpl --disk-util
查看:
$ dstat --list
internal:
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/usr/share/dstat:
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, 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, vm-memctl, vmk-hba, vmk-int, vmk-nic, vz-cpu, vz-io, vz-ubc, wifi
dstat完整参数
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 开启中断统计
-I 5,10 没弄懂呢~巴拉巴拉
-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)
- -stat 通过插件名称开启插件扩展,详见命令插件 :可能的内置插件为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
- -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文件中
常用插件