为什么Linux上的read(2)调用比磁盘IO上花费的时间多出几毫秒



我在使用SATA磁盘的linux机箱上测试同步读取性能。我用gettimeofday(2)对每次读取调用进行计时,并在程序运行时激发iostat -x以查看磁盘统计信息。等待列上iostat显示的磁盘IO时间平均约为8msec,但程序给出的读取时间平均约12msec。这4毫秒可以花在哪里?

复制内存、执行上下文切换和运行其他进程。

其他进程可能会在读取开始之前或完成之后被安排并运行,这将延长进程看到的时间。

最新更新