iostat介绍
iostat用于输出CPU和磁盘I/O相关的统计信息,便于分析Linux系统性能问题.
命令格式:
shell> iostat --help 用法: iostat [ 选项 ] [ <时间间隔> [ <次数> ] ] 选项: [ -c ] [ -d ] [ -N ] [ -n ] [ -h ] [ -k | -m ] [ -t ] [ -V ] [ -x ] [ -z ] [ <设备> [...] | ALL ] [ -p [ <设备> [,...] | ALL ] ]
基本使用
shell> iostat
Linux 2.6.32-220.el6.i686 (rac1) 2015年03月19日 _i686_ (4 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0.06 0.00 0.78 0.54 0.00 98.61
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
scd0 0.04 0.31 0.00 376 0
sda 4.78 311.94 26.94 379676 32794
dm-0 23.54 304.08 26.91 370106 32752
dm-1 0.26 2.12 0.00 2576 0
各个输出项目的含义如下:
avg-cpu段:
%user: 在用户级别运行所使用的CPU的百分比.
%nice: nice操作所使用的CPU的百分比.
%sys: 在系统级别(kernel)运行所使用CPU的百分比.
%iowait: CPU等待硬件I/O时,所占用CPU百分比.
%idle: CPU空闲时间的百分比.
Device段:
tps: 每秒钟发送到的I/O请求数,多个逻辑请求可能会被合并为一次I/O请求,一次I/O请求的大小是未知的。
Blk_read/s: 每秒从设备读取的block数.
Blk_wrtn/s: 每秒向设备写入的block数.
Blk_read: 读入的block总数.
Blk_wrtn: 写入的block总数.
iostat参 数说明
iostat各个参数说明:
-c 仅显示CPU统计信息.与-d选项互斥. -d 仅显示磁盘统计信息.与-c选项互斥. -k 以K为单位显示每秒的磁盘请求数,默认单位块. -p device | ALL 与-x选项互斥,用于显示块设备及系统分区的统计信息.如: iostat -p hda | iostat -p ALL -t 在输出数据时,打印搜集数据的时间. -V 打印版本号和帮助信息. -x 输出扩展信息.
-x 参数
iostat -d -x -k 1 5
Linux 2.6.32-220.el6.i686 (rac1) 2015年03月19日 _i686_ (4 CPU)
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util
scd0 0.00 0.00 0.02 0.00 0.09 0.00 8.00 0.00 0.64 0.64 0.00
sda 13.73 2.25 5.28 0.45 120.31 10.79 45.73 0.04 7.49 3.52 2.02
dm-0 0.00 0.00 18.42 2.69 118.01 10.77 12.20 0.18 8.45 0.96 2.02
dm-1 0.00 0.00 0.15 0.00 0.62 0.00 8.00 0.00 2.10 1.42 0.02
rrqm/s:每秒这个设备相关的读取请求有多少被Merge了(当系统调用需要读取数据的时候,VFS将请求发到各个FS,如果FS发现不同的
读取请求读取的是相同Block的数据,FS会将这个请求合并Merge)。
wrqm/s:每秒这个设备相关的写入请求有多少被Merge了。
rsec/s:每秒从设备读取的扇区数。
wsec/:每秒向设备写入的扇区数。
r/s: 每秒发送到设备的读入请求数。
w/s: 每秒发送到设备的写入请求数。
rkB/s:每秒从设备读入的数据量,单位为K.
wkB/s:每秒向设备写入的数据量,单位为K.
avgrq-sz: 发送到设备的请求的平均大小,单位是扇区.
avgqu-sz: 发送到设备的请求的平均队列长度.
await :每一个IO请求的处理的平均时间.包括发送请求和执行的时间.单位是毫秒,这里可以理解为IO的响应时间,
一般地系统IO响应时间应该低于5ms,如果大于10ms就比较大了
svctm : 发送到设备的I/O请求的平均执行时间.单位是毫秒.
%util:在统计时间内所有处理IO时间,除以总共统计时间。例如,如果统计间隔1秒,该设备有0.8秒在处理IO,而0.2秒闲置,
那么该设备的%util = 0.8/1 = 80%,所以该参数显示设备的繁忙程度。一般地,如果该参数是100%表示设备已经接近满负荷
运行了(当然如果是多磁盘,即使%util是100%,因为磁盘的并发能力,所以磁盘使用未必就到了瓶颈)。
iostat示 例
shell> iostat -d -k 2 10 #查看TPS和吞吐量信息, 每隔2秒,总共输出10次. shell> iostat -d -x -k 1 10 #查看设备使用率(%util)、响应时间(await) shell> iostat -c 1 10 #查看cpu状态 shell> iostat -p sda 2 6 #每隔2秒显示一次sda及上面所有分区的统计信息,共输出6次.
参考:
http://huoding.com/2011/07/13/91
http://www.orczhou.com/index.php/2010/03/iostat-detail/
http://blog.csdn.net/zhangjay/article/details/6656771
整理自网络
Svoid
2015-03-19