作为调试IO生成器的一部分,我在x64硬件上运行的RH 6.4(在多个系统上进行了验证)下遇到了一组奇怪的结果:
-该应用程序使用linux异步IO(即非posix)访问原始磁盘分区(/dev/sdb1,O_DIRECT),并以root身份运行
-应用程序报告100 io/s,写入率为60%。
-应用程序的strace每秒报告100次io_submit()和io_getevents()调用,反射(reflect)每秒100次AIO操作
-'dstat --aio'每秒显示100次操作
-iostat报告每秒40次读取(按预期),但每秒120次写入,是预期的两倍
-较早的使用同步IO的实现未显示“加倍”写入
此行为是已知错误吗?
最佳答案
经过一些进一步的测试后,看来此行为仅限于(默认)CFQ调度程序。转向NOP调度程序使IOSTAT与其他测量工具保持一致。