延时分析:
分析
iostat
rrqm/s: 每秒合并放入驱动请求队列的读请求数
wrqm/s:每秒合并放入驱动请求队列的写请求数
r/s:每秒发给磁盘设备的读请求数
w/s:每秒发给磁盘设备的写请求数
rkB/s:每秒从磁盘设备读取的KB数
wkB/s:每秒向磁盘设备写入的KB数
avgrq-sz:平均请求大小,单位为扇区(512B)
avgqu-sz:在驱动请求队列和在设备中活跃的平均请求数
await:平均I/O响应时间,包括在驱动请求队列里等待和设备的I/O响应时间(ms)
r_await:同wait,仅针对读
w_await:同wait,仅针对写
svctm:(推断)磁盘设备的I/O平均响应时间(ms)
%util:设备忙处理I/O请求的百分比(使用率)
avgrq-sz是合并后的数字,小尺寸(16个扇区或者更小)可以视为无法合并的随机I/O负载的迹象;大尺寸有可能是大I/O,或者是合并的连续负载
sar
pidstat
systemtap
perf
iotop
iosnoop
blktrace
磁盘控制器相关
megacli
smartctl
操作系统可调参数
ionice、资源控制、内核可调参数:
ionice:设置一个进程的I/O调度级别和优先级调整级别为整数
0 - 无:不指定,优先级根据进程nice值选定,调度级别默认
1 - 实时:对磁盘的最高级别访问,如果误用会导致其他进程饿死
2 - 尽力:默认调度级别,包括优先级0~7,0为最高级
3 - 空闲:在一段磁盘空闲的期限过后才允许进行I/O
ionice -c 3 -p 1623
可调参数:
/sys/block/sda/queue/scheduler
选择I/O调度器策略,是空操作、最后期限、an(预期)还是cfq
磁盘控制器可调参数:
取决于磁盘控制器型号和厂商