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
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29733787/viewspace-1466186/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/29733787/viewspace-1466186/