我写了一个bash脚本,它创建了用C ++编写的N个进程,该进程以4000字节为单位主动读取/复制文件,并在每个部分之后调用fsync。 Fsync在那里绕过内核缓存并强制写入磁盘。我认为这种情况应该导致在运行I / O调度程序的文件系统驱动程序中严重的并发。为了查看ionice
程序的效果,我只为一个进程设置了实时类ionice -c 1 -n 0 -p <pid>
,而为其他进程设置了空闲类ionice -c 3 -p <pid>
。
但是我没有看到任何效果。大约30个过程几乎同时完成,没有显着差异。我还更改了文件大小,进程号和读/写块大小,但没有结果。我该怎么办?
以防万一,这里是代码:https://github.com/Yamatao/experimental/tree/master/proc-nice