代码改变世界

dstat命令详解

2022-01-18 23:05  清风软件测试开发  阅读(9306)  评论(0编辑  收藏  举报

dstat命令详解

 

 
-c,--cpu 开启cpu统计
-d, --disk 开启disk统计
-D 改选跟具体的设备名(多个用逗号隔开)如:total,hda,hdb表示分别统计total、hda、hdb设备块
-i, - -int 开启中断统计
 -l, --load 开启负载均衡统计,分别是1m,5m,15m
-m, --mem 开启内存统计,包括used,buffers,cache,free
-n, --net 开启net统计,包括接受和发送
-N 该选项可以跟网络设备名多个用逗号隔开,如eth1,total
-g, --page 开启分页统计
-p, --proc 开启进程统计,包括runnable, uninterruptible, new
-r, --io io开启请求统计,包括read requests, write requests
-s, --swap 开启swap统计,包括used, free
-S 该选项可以跟具体的交换区,多个用逗号隔开如swap1,total
-t, --time 启用时间和日期输出
-y, --sys 开启系统统计,包括中断和上下文切换
--fs 开启文件系统统计,包括 (open files, inodes)
--ipc 开启ipc统计,包括 (message queue, semaphores, shared memory)
--output file 输出结果到cvs文件中
-a, --all 是默认值相当于 -cdngy (default)
-f, --full 相当于 -C, -D, -I, -N and -S

dstat命令不加任何参数时,会收集CPU、磁盘、网络、分页、系统的数据信息,每秒收集一次。缺省参数时相当于dstat -cdngy 1或dstat -a 1。

usr:用户空间的程序所占百分比;

sys:系统空间程序所占百分比;

idel:空闲百分比;

wai:等待磁盘I/O所消耗的百分比;

hiq:硬中断次数;

siq:软中断次数;

read:磁盘读带宽

writ:磁盘写带宽

recv:网络收包带宽

send:网络发包带宽

-- 内存分页统计:值较大表明系统正在使用大量的交换空间,通常情况下当系统已经开始用交换空间的时候,就说明你的内存已经不够用了,或者说内存非常分散,理想情况下page in(换入)和page out(换出)的值是0 0。

in: page in(换入)

out:page out(换出)

 

-- 其他系统信息:这一栏中较高的统计值通常表示大量的进程造成拥塞,需要对CPU进行关注。服务器一般情况下都会运行运行一些程序,所以这项总是显示一些数值。

int:中断次数

csw:上下文切换

 

常用选项的判断方法

进程相关

-p , --proc
展示当前时刻的进程状态:可运行态(就绪态),无法中断的睡眠态(等待态),新进程,
文档原文为:runnable, uninterruptible, new。
就绪态进程多代表负载较高,配合-l参数确认,比如run为80,即当前有80个进程等待CPU处理,等待态进程多代表当前IO可能有问题,等待态进程是内存中等待非CPU资源的进程,一般是等待IO,可以根据-c的wai列确认, 进一步根据-g的in列确认是否是内存瓶颈后的恢复期,配合-s参数查看换页使用情况,
-d查看当前bio情况,如果-d的bio的read和-g的in差不多,表名当前IO主要是换页到内存加载造成的,即内存不足后的恢复期,
如果-g和-s表名换页未使用,但是-d居高,则说明当前有大量进程等待磁盘IO,
使用--top-bio-adv确定bio最高的进程,
如果-d也不高,但是-n较高,说明进程等待网络IO
使用--top-io-adv确定IO最高的进程。

 

 

 

-y, --sys:展示系统中断次数int和上限文切换次数csw,
上下文切换:CPU运行任务1,切换运行就绪态任务2,
任务1可能变成就绪态(CPU时间片耗光),
也可能变成等待态(等待IO等非CPU资源),
CPU的处理时间片较短,中断和上下文切换次数数字会很大,
也能从侧面反映负载,如果中断和上下文切换暴涨,
表明负载过大,或者程序设计不合理,或者kernel级别的BUG。

 

 

 

--ipc:展示IPC(进程间通信)状态,
包括msg消息队列 ,sem线程队列,shm共享内存使用

 

 

进程最耗资源统计

--top-cpu

展示最耗CPU的进程名和CPU占比

 

 

--top-cpu-adv
展示最耗CPU的进程名、PID和CPU占比以及读写信息,
这个读写信息是一个差值,推测是内存的读写。

 

 

 

 

--top-bio-adv
展示当前最耗block I/O的进程名、PID和读写容量以及CPU占比
即最高磁盘IO的进程。

 

 

--top-io
展示最耗IO的进程名和IO读写信息,
被统计的IO信息包括blockIO和内存还有网络等全部,
因此如果要判定最耗磁盘读写的进程,应该使用--top-bio,
某一时刻,最耗IO和最耗blockIO的进程不一定是同一个。

 

 

 

 

 内存相关参数

 

 

网络相关参数

 

 

--socket
展示套接字状态,包括tot总数量,tcp套接字数量,udp套接字数量,
raw原始套接字数量,frg(ip-fragments IP碎片)套接字数量。

 

 

--tcp (listen, established, syn, time_wait, close)
展示tcp网络连接状态,lis监听的数量,act(established)活动的确立的数量,
synTCP/IP的握手数量,tim(time_wait)发起关闭后的等待关闭态数量,
clo关闭态数量,即命令netstat -tpln对应记录的搂取合并。

 

 

硬盘相关参数

 

 

 

参考文章https://www.cnblogs.com/zh-dream/p/12081455.html