首页 > 技术文章 > 使用iostat来对linux硬盘IO性能进行检测

guxuanqing 2018-01-30 20:26 原文

-x显示扩展统计数据

# 每隔1s显示6个统计数据

$ iostat -x 1 6

# 每隔1s显示磁盘sda的6个统计数据

$ iostat -x sda 1 6

# 每隔1s显示设备sda及其分区(sda1,etc.)的6个统计数据

$ iostat -p sda 1 6

 

 

 

rrqm/s:        每秒进行 merge 的读操作数目。即 delta(rmerge)/s
wrqm/s:        每秒进行 merge 的写操作数目。即 delta(wmerge)/s
r/s:              每秒完成的读 I/O 设备次数。即 delta(rio)/s
w/s:             每秒完成的写 I/O 设备次数。即 delta(wio)/s
rsec/s:           每秒读扇区数。即 delta(rsect)/s
wsec/s:          每秒写扇区数。即 delta(wsect)/s
rkB/s:            每秒读K字节数。是 rsect/s 的一半,因为每扇区大小为512字节。(需要计算)
wkB/s:           每秒写K字节数。是 wsect/s 的一半。(需要计算)
avgrq-sz:       平均每次设备I/O操作的数据大小 (扇区)。delta(rsect+wsect)/delta(rio+wio)
avgqu-sz:      平均I/O队列长度。即 delta(aveq)/s/1000 (因为aveq的单位为毫秒)。
await:            平均每次设备I/O操作的等待时间 (毫秒)。即 delta(ruse+wuse)/delta(rio+wio)
svctm:           平均每次设备I/O操作的服务时间 (毫秒)。即 delta(use)/delta(rio+wio)
%util:                  一秒中有百分之多少的时间用于 I/O 操作,或者说一秒中有多少时间 I/O 队列是非空的。   即delta(use)/s/1000 (因为use的单位为毫秒)

如果%util 接近100%,说明产生的I/O请求太多,I/O系统已经满负荷,该磁盘
可能存在瓶颈;idle小于70% IO压力就较大了,一般读取速度有较多的wait。

同时可以结合vmstat 查看查看b参数(等待资源的进程数)和wa参数(IO等待所占用的CPU时间的百分比,高过30%时IO压力高)

 

另外可以参考:

 vmstat是Virtual Meomory Statistics(虚拟内存统计)的缩写,可对操作系统的虚拟内存、进程、IO读写、CPU活动等进行监视。它是对系统的整体情况进行统计,不足之处是无法对某个进程进行深入分析。

     指令所在路径:/usr/bin/vmstat

 显示活动(active)与非活动(inactive)的内存

$ vmstat -a 2 10

推荐阅读