首页 » Linux » CentOS » linux性能查看命令之dstat

linux性能查看命令之dstat

 

dstat是一个全能型的系统信息统计工具,可以替代vmstat、iostat、ifstat等。在执行dstat命令时,可以很容易的监控到系统CPU、I/0、网络等相关信息,默认每秒刷新一条信息,并且可以统计输出csv文件等。

注:Centos系统可通过yum install dstat直接安装

dstat

dstat [-afv] [options..] [delay [count]]

默认分组字段含义

----total-cpu-usage---- -dsk/total- -net/total- ---paging-- ---system--
----cpu状态---- -磁盘读写- -网络统计- ---分页统计-- ---系统统计--

usr sys idl wai hiq siq| read writ| recv send| in out | int csw

cpu使用率:usr用户使用率 sys系统使用率 idl空闲率 wai等待占比 hiq中断 siq上下文
磁盘读写:read磁盘读 writ磁盘写
网络发送和接收的数据:recv网络接收 send网络发送
系统分页统计:in换入 out换出
系统统计:int统计中断 csw上下文切换

命令参数:

delay:两次结果输出的时间间隔,默认1秒。例:dstat 2表示2秒输出一次信息,可以和--noupdate一起用
count:结果输出次数,默认一直输出,直到ctrl+c中断。例:dstat 2 2表示2秒输出一次信息,在结果额外输出2次后中断

常用选项:

-c, --cpu:默认参数,只显示cpu状态
-C:当存在多个cpu时,可以显示指定cpu的使用情况。例:dstat -c -C 0,1这里只显示cpu0和cpu1的使用情况,此处如果不加-c选项,则显示cpu0和cpu1以及磁盘、网络、分页、系统信息。
-d, --disk:默认参数,只显示磁盘读写
-D:当存在多个磁盘时,可以显示指定磁盘的使用情况。例:dstat -d -D /dev/vda,/dev/vdb这里只显示vda和vdb这两块盘的读写情况,此处如果不加-d选项,则显示vda和vdb以及cpu、网络、分页、系统信息。
-g, --page:默认参数,只显示分页状态
-i, --int:只显示中断信息
I:查看指定设备中断号,例:dstat -i -I 0,1只显示0,1设备中断信息,查询中断号cat /proc/interrupts
-l, --load:只查看系统1分钟、5分钟、15分钟负载情况
-m, --mem:只显示内存使用情况(已用、缓冲、缓存、空闲)
-n, --net:默认参数,只显示网络状态
-N:可以指定需要监控的网卡。例:dstat -n -N eth0,eth1这里监控eth0和eth1网卡状态,如果不加-n选项,则显示eth0和eth1以及cpu、磁盘、分页、系统信息。
-p, --proc:只显示进程状态信息,可运行态run、睡眠态blk、新进程new,运行态高表示系统负载较高,等待cpu处理的进程过多,睡眠态过多可能IO存在问题。
--proc-count:显示进程数量
-r, --io:只显示I/O请求情况
-s, --swap:只显示swap即交换分区使用情况
-t, --time:只显示系统时间和日期
-T, --epoch:当前时间到1970-01-01 00:00:00 UTC间隔的秒数,即date +%s
-y, --sys:默认参数,只显示系统中断int和上下文切换数csw,如果数值过高系统负载可能过高,程序或存在问题
--aio:异步I/O状态
--fs, --filesystem:只显示文件系统统计信息(打开文件数、正在使用的inode数)
--ipc:只显示ipc统计信息,msg消息队列、sem线程队列、shm共享内存使用
--lock:只显示lock信息,pos锁数,lck锁数,rea读锁数、wri写锁数
--raw:只显示raw
--socket:只显示套接字统计信息,tot总量、tcp套接字数量、udp套接字数量、raw原始套接字数量
--tcp:只显示tcp统计信息(监听、活动、同步、时间等待、关闭)
--udp:只显示udp统计信息,lis监听数量、act活动数量
--unix:只显示unix统计信息
--vm:只显示虚拟内存信息
-a, --all:等于-cdngy,默认参数
-f, --full:展开-C, -D, -I, -N、-S
-v, --vmstat:等于-pmgdsc
--dbus:显示dbus连接数
--bits:显示单位换算
--float:显示浮点数
--integer:显示整数,默认值
--bw, --blackonwhite:改变终端颜色
--nocolor:关闭颜色
--noheaders :禁用重复输出header
--noupdate:时间间隔大于1时,下一条统计信息未打印完成时,不进行更新,配合delay参数
--output file:监控到的状态信息以csv格式标准输出到指定文件中。例:dstat --output wh.csv
--profile:记录组件和时间资源消耗,并生成日志文件。例:dstat --profile 1 3
--top-cpu:最耗CPU的进程和占比
--top-cpu-adv:最耗CPU的进程,及其PID,CPU占比等
--top-cputime:消耗CPU时间最多的进程名和耗费时间ms
--top-cputime-avg:平均消耗CPU时间最多的进程名和耗费时间ms
--top-latency:延迟最高的进程名和延迟时间ms
--top-latency-avg:平均延迟最高的进程名和延迟时间ms
--top-bio:最耗block I/O的进程名、读写
--top-bio-adv:最耗费block I/O的进程名、PID、读写、CPU占比
--top-io:最耗I/O的进程名和读写信息
--top-io-adv:最耗I/O的进程名、PID、读写、CPU占比
--top-mem:最耗内存的进程名和内存消耗
--top-oom:最先OOM(内存回收机制)杀死的进程
--top-childwait:等待子进程最多的父进程
--plugin-name:插件名称替换--plugin-name,其实这些插件都是python脚本写的,默认路径/usr/share/dstat,可以结合自己需求编写python脚本
--list:列出dstat可以使用的所有参数,internal是自身自带的参数,/usr/share/dstat是可用扩展监控,这些插件并不是可以直接使用,有些需要一些依赖。

常用的一些例子:

查看当前内存、I/O、cpu占用最高的进程信息

dstat --top-mem --top-io --top-cpu

将cpu、磁盘、网络信息标准输出至csv中

dstat -cdn --output /tmp/wh.csv

3秒收集一次数据,输出5次后中断

dstat --noupdate 3 5

原文链接:linux性能查看命令之dstat,转载请注明来源!

0