IO使用率

IO 使用率可以通过 iostat 获取,重点关注 %util 表示磁盘空闲情况

Usage: iostat [ options ] [ <interval> [ <count> ] ]
参数选项

1) -x:输出更详细的io设备统计信息
2) -d:单独输出Device结果,不包括cpu结果
3) -k/-m:输出结果以kB/mB为单位,而不是以扇区数为单位
4) -c:只显示系统CPU统计信息,即单独输出avg-cpu结果,不包括device结果
5) interval/count:每次输出间隔时间,count表示输出次数,不带count表示循环输出

[mysql@ip131 ~]$ iostat -xd 2 1
Linux 3.10.0-957.el7.x86_64 (ip131)     05/26/2020      _x86_64_        (2 CPU)

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00     0.01    0.86    0.59    41.81     5.11    64.45     0.00    0.79    0.86    0.69   0.51   0.07
dm-0              0.00     0.00    0.77    0.61    34.76     4.67    57.10     0.00    0.85    0.93    0.76   0.53   0.07
dm-1              0.00     0.00    0.02    0.00     0.53     0.00    54.67     0.00    0.13    0.13    0.00   0.04   0.00
输出项说明
%util: IO队列非空的时间比率
	rrqm/s: 每秒对该设备的读请求被合并次数,文件系统会对读取同块(block)的请求进行合并
	wrqm/s: 每秒对该设备的写请求被合并次数
	r/s: 每秒完成的读次数
	w/s: 每秒完成的写次数
	rkB/s: 每秒读数据量(kB为单位)
	wkB/s: 每秒写数据量(kB为单位)
	avgrq-sz:平均每次IO操作的数据量(扇区数为单位)
	avgqu-sz: 平均等待处理的IO请求队列长度
	await: 平均每次IO请求等待时间(包括等待时间和处理时间,毫秒为单位)
	svctm: 平均每次IO请求的处理时间(毫秒为单位)
[mysql@ip131 ~]$ iostat
Linux 3.10.0-957.el7.x86_64 (ip131)     05/26/2020      _x86_64_        (2 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.07    0.00    0.25    0.00    0.00   99.68

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda               1.23        32.90         4.46     201941      27407
dm-0              1.18        27.54         4.13     169074      25359
dm-1              0.01         0.40         0.00       2460          0
输出项说明
avg-cpu: 总体cpu使用情况统计信息,对于多核cpu,这里为所有cpu的平均值。重点关注iowait值,表示CPU用于等待io请求的完成时间。
	Device: 各磁盘设备的IO统计信息。各列含义如下:
	tps: 每秒进程下发的IO读、写请求数量
	KB_read/s: 每秒从驱动器读入的数据量,单位为K。
	KB_wrtn/s: 每秒从驱动器写入的数据量,单位为K。
	KB_read: 读入数据总量,单位为K。
	KB_wrtn: 写入数据总量,单位为K。
重点关注
1) iowait% 表示CPU等待IO时间占整个CPU周期的百分比,如果iowait值超过50%,或者明显大于%system、%user以及%idle,表示IO可能存在问题。
	2) avgqu-sz 表示磁盘IO队列长度,即IO等待个数。
	3) await 表示每次IO请求等待时间,包括等待时间和处理时间
	4) svctm 表示每次IO请求处理的时间
	5) %util 表示磁盘忙碌情况,一般该值超过80%表示该磁盘可能处于繁忙状态。