iostat 深入浅出

                      iostat,Linux上实时查看磁盘IO状态的工具,也是IO监控方面的入门工具,相信很多人都会用到。这里做个小总结归档,以防日后不用生疏。iostat 数据来源/proc/stat .


iostat 工具具体用法可以通过man  iostat 查看,以下只是演示和分析结果参数。


Linux 上执行: iostat -kx 2 

截取片段如下:



每个字段都是什么意思?

rrqm/s

每秒进行merge的读操作数目。文件读的IO操作合并。

wrqm/s

每秒进行merge的写操作数目。文件写的IO操作合并。

r/s

每秒完成的读I/O设备次数。 

w/s

每秒完成的写I/O设备次数。

rsec/s

每秒读扇区数。

rkB/s

每秒读K字节数。

wkB/s

每秒写K字节数。

avgrq-sz

平均每次设备I/O操作的数据大小(扇区)。

avgqu-sz

平均I/O队列长度。

await

平均每次设备I/O操作的等待时间(毫秒)。

svctm

平均每次设备I/O操作的服务时间(毫秒)。

%util

一秒中有百分之多少的时间用于I/O操作,或者说一秒中有多少时间I/O队列是非空的。


如何深度的理解各个阶段的参数? 下图给了很好的说明:



上图的左边是iostat显示的各个性能指标,每个性能指标都会显示在一条虚线之上,这表明这个性能指标是从虚线之上的那个读写阶段开始计量的,比如说图中的w/s从Linux IO scheduler开始穿过硬盘控制器(CCIS/3ware),这就表明w/s统计的是每秒钟从Linux IO scheduler通过硬盘控制器的写IO的数量。

结合上图对读IO操作的过程做一个说明,在从OS Buffer Cache传入到OS Kernel(Linux IO scheduler)的读IO操作的个数实际上是rrqm/s+r/s,直到读IO请求到达OS Kernel层之后,有每秒钟有rrqm/s个读IO操作被合并,最终转送给磁盘控制器的每秒钟读IO的个数为r/w;在进入到操作系统的设备层(/dev/sda)之后,计数器开始对IO操作进行计时,最终的计算结果表现是await,这个值就是我们要的IO响应时间了;svctm是在IO操作进入到磁盘控制器之后直到磁盘控制器返回结果所花费的时间,这是一个实际IO操作所花的时间,当await与svctm相差很大的时候,我们就要注意磁盘的IO性能了;而avgrq-sz是从OS Kernel往下传递请求时单个IO的大小,avgqu-sz则是在OS Kernel中IO请求队列的平均大小。


如何评估磁盘性能,iostat 我们重点看那些参数?

磁盘性能的评估通常通过iops , 吞吐率 ,如 小文件的随机读写我们看中它的iops ,大文件的顺序读写,我们看中它的传输速度,也就是吞吐率或吞吐量。


iops = r/s + w/s

吞吐率 = rkB/s + wkB/s

除iops,吞吐量之外,另外比较重要的还有时延,await , svctm 这两个参数。


平均每次IO操作大小 :avgrq-sz  (扇区),如: 55 *512/1024 KB . 另外也可以通过 rkB/s 除 r/s 或 wkB/s 除w/s 算得。


注意:

IO的响应时间会成非线性的增长,越是接近最大值,响应时间就变得越大,而且会比预期超出很多。负载%util也并非线性增长,一些异常也可以引发%util 瞬间100%




本文参考:

http://www.dbabeta.com/2009/io-performence-03_check-performence-in-linux.html




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值