常用参数如下:
参数 |
说明 |
---|---|
-c |
显示CPU使用情况。 |
-d |
显示磁盘使用情况。 |
-k |
以KB为单位显示。 |
-m |
以M为单位显示。 |
-p |
显示磁盘单个的情况。 |
-t |
显示时间戳。 |
-x |
显示详细信息。 |
命令:
iostat -dctxm 1 60 /dev/sda
1 iostat -dctxm 1 60 /dev/sda 2 02/10/2022 10:12:41 AM 3 avg-cpu: %user %nice %system %iowait %steal %idle 4 10.97 0.93 11.66 3.78 0.00 72.67 5 6 Device r/s w/s rMB/s wMB/s rrqm/s wrqm/s %rrqm %wrqm r_await w_await aqu-sz rareq-sz wareq-sz svctm %util 7 sda 1367.68 2740.63 18.83 45.18 157.34 1294.27 10.32 32.08 1.23 0.78 2.97 14.10 16.88 0.19 77.88 8 9 02/10/2022 10:12:42 AM 10 avg-cpu: %user %nice %system %iowait %steal %idle 11 8.89 0.00 4.69 0.33 0.00 86.09 12 13 Device r/s w/s rMB/s wMB/s rrqm/s wrqm/s %rrqm %wrqm r_await w_await aqu-sz rareq-sz wareq-sz svctm %util 14 sda 23.00 163.00 0.09 1.08 0.00 0.00 0.00 0.00 0.13 0.09 0.00 4.17 6.80 0.77 14.30
参数含义如下:
参数 |
说明 |
---|---|
rrqm/s |
每秒合并放入请求队列的读操作数。 |
wrqm/s |
每秒合并放入请求队列的写操作数。 |
r/s |
每秒磁盘实际完成的读I/O设备次数。 |
w/s |
每秒磁盘实际完成的写I/O设备次数。 |
rkB/s |
每秒从磁盘读取KB数。 |
wkB/s |
每秒写入磁盘的KB数。 |
avgrq-sz |
平均请求数据大小。 |
rareq-sz |
平均读请求数据大小,单位KB |
wareq-sz |
平均写请求数据大小,单位KB |
aqu-sz |
平均I/O队列长度(操作请求数)。 |
await |
平均每次设备I/O操作的等待时间(毫秒)。 |
svctm |
平均每次设备I/O操作的响应时间(毫秒)。 |
%util |
用于I/O操作时间的百分比,即使用率。 |
注意:util=100%时,对于机器硬盘来说几乎已经到达瓶颈,但是对于多通道的ssd,nvme来说不一定就意味着已经到达磁盘瓶颈。
重要参数详解:
- rrqm/s和wrqm/s,每秒合并后的读或写的次数(合并请求后,可以增加对磁盘的批处理,对HDD还可以减少寻址时间)。如果值在统计周期内为非零,也可以看出数据的读或写操作的是连续的,反之则是随机的。
- 如果%util接近100%(即使用率为百分百),说明产生的I/O请求太多,I/O系统已经满负荷,相应的await也会增加,CPU的wait时间百分比也会增加(通过TOP命令查看),这时很明显就是磁盘成了瓶颈,拖累整个系统。这时可以考虑更换更高性的能磁盘,或优化软件以减少对磁盘的依赖。
- await(读写请求的平均等待时长)需要结合svctm 参考。svctm的和磁盘性能直接有关,它是磁盘内部处理的时长。await的大小一般取决于svctm以及I/O队列的长度和。svctm一般会小于await,如果svctm比较接近await,说明I/O几乎没有等待时间(处理时间也会被算作等待的一部分时间);如果wait大于svctm,差的过高的话一定是磁盘本身IO的问题;这时可以考虑更换更快的磁盘,或优化应用。
- 队列长度(avgqu-sz)也可作为衡量系统I/O负荷的指标,但是要多统计一段时间后查看,因为有时候只是一个峰值过高。
注意: