dstat命令是一个用来替换vmstat、iostat、netstat、nfsstat和ifstat这些命令的工具,是一个全能系统信息统计工具。
安装:yum install -y dstat
直接使用dstat,默认使用的是-cdngy参数,分别显示cpu、disk、net、page、system信息
安装完后就可以使用了,dstat非常强大,可以实时的监控cpu、磁盘、网络、IO、内存等使用情况。
默认是1s显示一条信息。可以在最后指定显示一条信息的时间间隔,如dstat 5是每5s显示一条,dstat 5 10表示每5s显示一条,一共显示10条。
分组 分组含义及子项字段含义
CPU状态 CPU的使用率。显示了用户占比,系统占比、空闲占比、等待占比、硬中断和软中断情况。
磁盘统计 磁盘的读写,分别显示磁盘的读、写总数。
网络统计 网络设备发送和接受的数据,分别显示的网络收、发数据总数。
分页统计 系统的分页活动。分别显示换入(in)和换出(out)。
系统统计 统计中断(int)和上下文切换(csw)。
cpu:hiq、siq分别为硬中断和软中断次数。
system:int、csw分别为系统的中断次数(interrupt)和上下文切换(context switch)。
常见选项:
-a, - -all 是默认值相当于 -cdngy (default)
-f, - -full 相当于 -C, -D, -I, -N and -S
-c:显示CPU系统占用,用户占用,空闲,等待,中断,软件中断等信息。
-C:当有多个CPU时候,此参数可按需分别显示cpu状态,例:-C 0,1 是显示cpu0和cpu1的信息。
-d:显示磁盘读写数据大小。
-D 改选跟具体的设备名(多个用逗号隔开)如:total,sda,sdb表示分别统计total、sda、sdb设备块
-n:开启net统计,包括接受和发送,显示网络状态。
-N 有多块网卡时,指定要显示的网卡。多个用逗号隔开,如eth1,total
-l:开启负载均衡统计,分别是1m,5m,15m,显示系统负载情况。
-m:开启内存统计,包括used,buffers,cache,free,显示内存使用情况。
-g:开启分页统计,显示页面使用情况。
-i: 开启中断统计
-p:开启进程统计,包括runnable, uninterruptible, new,显示进程状态。
-r: io开启请求统计,包括read requests, write requests,I/O请求情况
-s:开启swap统计,包括used, free,显示交换分区使用情况。
-S:可以跟具体的交换区,多个用逗号隔开如swap1,total,类似D/N。
-t: 启用时间和日期输出
-T: --epoch,启用时间计数,从epoch到现在的秒数
-y:开启系统统计,包括中断和上下文切换,系统状态。
–ipc:显示ipc消息队列,信号等信息。
–socket:用来显示tcp udp端口状态。
-a:此为默认选项,等同于-cdngy。
-v:等同于 -pmgdsc -D total。
–output 文件:此选项也比较有用,可以把状态信息以csv的格式重定向到指定的文件中,以便日后查看。例:dstat --output /root/dstat.csv & 此时让程序默默的在后台运行并把结果输出到/root/dstat.csv文件中。
命令参数
参数名称 参数描述
delay 两次输出之间的时间间隔,默认是1s
count 报告输出的次数,默认是没有限制,一直输出知道ctrl+c
别名: alias dstat=‘dstat -cdlmnpsy’
找出占用资源最高的进程和用户:–top-(io|bio|cpu|cputime|cputime-avg|mem) 通过这几个选项,可以看到具体是那个用户那个进程占用了相关系统资源,对系统调优非常有效。
如查看当前占用I/O、cpu、内存等最高的进程信息:
dstat --top-mem --top-io-adv --top-cpu-adv
内存资源使用情况:
dstat -glms --top-mem
CPU资源使用情况:
dstat -cyl --proc-count --top-cpu
如想监控swap,process,sockets,filesystem并显示监控的时间:
dstat -tsp --socket --fs
若要将结果输出到文件可以加–output filename:




