分类: 系统运维
2016-04-29 17:27:40
iostat主要用于监控系统设备的IO负载情况,iostat首次运行时显示自系统启动开始的各项统计信息,之后运行iostat将显示自上次运行该命令以后的统计信息。用户可以通过指定统计的次数和时间来获得所需的统计信息。
入门使用
iostat -d -k 2
参数 -d 表示,显示设备(磁盘)使用状态;-k某些使用block为单位的列强制使用Kilobytes为单位;2表示,数据显示每隔2秒刷新一次。
输出如下
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn hda 30.00 0.00 328.00 0 328 hdc 30.00 0.00 328.00 0 328 dm-0 82.00 0.00 328.00 0 328 dm-1 0.00 0.00 0.00 0 0 dm-2 82.00 0.00 328.00 0 328 dm-3 82.00 0.00 328.00 0 328 dm-4 0.00 0.00 0.00 0 0
输出信息的意义
tps:该设备每秒的传输次数(Indicate the number of transfers per second that were issued to the device.)。"一次传输"意思是"一次I/O请求"。多个逻辑请求可能会被合并为"一次I/O请求"。"一次传输"请求的大小是未知的。 kB_read/s:每秒从设备(drive expressed)读取的数据量; kB_wrtn/s:每秒向设备(drive expressed)写入的数据量; kB_read:读取的总数据量; kB_wrtn:写入的总数量数据量;这些单位都为Kilobytes。
上面的例子中,我们可以看到磁盘sda以及它的各个分区的统计数据,当时统计的磁盘总TPS是39.29,下面是各个分区的TPS。(因为是瞬间值,所以总TPS并不严格等于各个分区TPS的总和)
指定监控的设备名称为hda,该命令的输出结果和上面命令完全相同。
iostat -d hda 2
默认监控所有的硬盘设备,现在指定只监控hda。
iostat还有一个比较常用的选项-x,该选项将用于显示和io相关的扩展数据。
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util
hda 0.00 39.00 0.00 10.00 0.00 172.00 34.40 0.20 14.40 8.50 8.50
hdc 0.00 41.00 0.00 9.00 0.00 188.00 41.78 0.16 14.56 8.89 8.00
dm-0 0.00 0.00 0.00 51.00 0.00 204.00 8.00 1.56 25.10 1.67 8.50
dm-1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
dm-2 0.00 0.00 0.00 51.00 0.00 204.00 8.00 1.56 25.10 1.67 8.50
dm-3 0.00 0.00 0.00 51.00 0.00 204.00 8.00 1.57 25.10 1.69 8.60
dm-4 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
输出信息的含义
iostat提供几个用于定制输出的开关。最有用的有: -c 只显示CPU行 -d 显示设备(磁盘)使用状态 -k 以千字节为单位显示磁盘输出 -t 在输出中包括时间戳 -x 在输出中包括扩展的磁盘指标 rrqm/s: 每秒进行 merge 的读操作数目。 wrqm/s: 每秒进行 merge 的写操作数目。 r/s: 每秒完成的读 I/O 设备次数。 w/s: 每秒完成的写 I/O 设备次数。 rsec/s: 每秒读扇区数。 wsec/s: 每秒写扇区数。 rkB/s: 每秒读K字节数。是 rsect/s 的一半,因为每扇区大小为512字节。(需要计算) wkB/s: 每秒写K字节数。是 wsect/s 的一半。(需要计算) avgrq-sz: 平均每次设备I/O操作的数据大小 (扇区)。 avgqu-sz: 平均I/O队列长度。 await: 平均每次设备I/O操作的等待时间 (毫秒)。 svctm: 平均每次设备I/O操作的服务时间 (毫秒)。 %util: 一秒中有百分之多少的时间用于 I/O 操作。 关于Merge的解释:当系统调用需要读取数据的时 候,VFS将请求发到各个FS,如果FS发现不同的读取请求读取的是相同Block的数据,FS会将这个请求合并Merge await:每一个IO请求的处理的平均时间(单位是毫秒)。这里可以理解为IO的响应时间,一般地系统IO响应时间应该低于5ms,如果大于10ms就比较大了。 %util:在统计时间内所有处理IO时间,除以总共统计时间。例如,如果统计间隔1秒,该 设备有0.8秒在处理IO,而0.2秒闲置,那么该设备的%util = 0.8/1 = 80%,所以该参数暗示了设备的繁忙程度。一般地,如果该参数是100%表示设备已经接近满负荷运行了(当然如果是多磁盘,即使%util是100%,因 为磁盘的并发能力,所以磁盘使用未必就到了瓶颈)。
-c 参数
iostat还可以用来获取cpu部分状态值:
iostat -c 1 10
avg-cpu: %user %nice %system %iowait %steal %idle 0.18 0.00 0.15 0.57 0.00 99.11
常见用法
iostat -d -k 1 10 #查看TPS和吞吐量信息(磁盘读写速度单位为KB) iostat -d -m 2 #查看TPS和吞吐量信息(磁盘读写速度单位为MB) iostat -d -x -k 1 10 #查看设备使用率(%util)、响应时间(await) iostat -c 1 10 #查看cpu状态
[root@Nagios ~]# iostat -d -k 1 |grep dm-2
dm-2 25.18 0.17 100.67 684080 409285188 dm-2 17.00 0.00 68.00 0 68 dm-2 26.00 0.00 104.00 0 104 dm-2 277.23 0.00 1108.91 0 1120 dm-2 169.00 0.00 676.00 0 676 dm-2 0.00 0.00 0.00 0 0 dm-2 0.00 0.00 0.00 0 0 dm-2 4.00 0.00 16.00 0 16 dm-2 19.80 0.00 79.21 0 80 dm-2 63.00 0.00 252.00 0 252
上面看到,磁盘每秒传输次数平均约50;每秒磁盘读取约0.0MB,写入约500MB。 iostat -d -x -k 1 Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util hda 0.00 17.71 0.00 7.46 0.09 100.68 26.98 0.40 53.30 7.09 5.30 hdc 0.00 17.68 0.00 7.49 0.08 100.68 26.87 0.40 53.30 6.72 5.04 dm-0 0.00 0.00 0.01 25.17 0.17 100.68 8.01 0.47 18.75 2.17 5.46 dm-1 0.00 0.00 0.00 0.00 0.00 0.00 2.01 0.00 34.33 4.40 0.00 dm-2 0.00 0.00 0.01 25.17 0.17 100.68 8.01 0.47 18.76 2.17 5.46 dm-3 0.00 0.00 0.01 25.17 0.17 100.68 8.01 0.47 18.76 2.17 5.46 dm-4 0.00 0.00 0.00 0.00 0.00 0.00 8.00 0.00 34.70 1.58 0.00可以看到磁盘的平均响应时间0.00ms,磁盘使用率平均为30,正常。显示设备(磁盘)使用状态;-k某些使用block为单位的列强制使用Kilobytes为单位;1 10表示,数据显示每隔1秒刷新一次,共显示10次。 iostat -d -k 1 10 #查看TPS和吞吐量信息
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn hda 7.47 0.09 100.70 348509 409495792 hdc 7.50 0.08 100.70 337462 409495792 dm-0 25.19 0.17 100.70 684987 409495792 dm-1 0.00 0.00 0.00 806 76 dm-2 25.19 0.17 100.70 684080 409495716 dm-3 25.19 0.17 100.70 683553 409495716 dm-4 0.00 0.00 0.00 424 0b,参数 -d 表示,显示设备(磁盘)使用状态;-k某些使用block为单位的列强制使用Kilobytes为单位;1 10表示,数据显示每隔1秒刷新一次,共显示10次。 [root@linux ~]# iostat -d -x -k 1 10 #查看设备使用率(%util)、响应时间(await)Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util hda 0.00 0.00 0.00 3.96 0.00 15.84 8.00 0.01 2.25 2.25 0.89 hdc 0.00 0.00 0.00 3.96 0.00 15.84 8.00 0.03 6.75 4.25 1.68 dm-0 0.00 0.00 0.00 3.96 0.00 15.84 8.00 0.03 8.00 4.75 1.88 dm-1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 dm-2 0.00 0.00 0.00 3.96 0.00 15.84 8.00 0.03 8.00 4.75 1.88 dm-3 0.00 0.00 0.00 3.96 0.00 15.84 8.00 0.03 8.00 4.75 1.88 dm-4 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 b,参数 -d 表示,显示设备(磁盘)使用状态;-k某些使用block为单位的列强制使用Kilobytes为单位;1 10表示,数据显示每隔1秒刷新一次,共显示1