作为调试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与其他测量工具保持一致。

10-08 20:02