我在使用SATA磁盘的linux机箱上测试同步读取性能。我用gettimeofday(2)
对每次读取调用进行计时,并在程序运行时激发iostat -x
以查看磁盘统计信息。等待列上iostat
显示的磁盘IO时间平均约为8msec,但程序给出的读取时间平均约12msec。这4毫秒可以花在哪里?
复制内存、执行上下文切换和运行其他进程。
其他进程可能会在读取开始之前或完成之后被安排并运行,这将延长进程看到的时间。