在运行Linux内核版本2.6.18-194.26.1.el5的CentOS 5.5机器上,我注意到posix_fadvise(WILLNEED)使得读取60K文件的速度比常规IO慢得多200%。
似乎实际的fadvise调用是同步的,它还会延迟调度应用程序中使用从文件读取的数据的其他线程。
由于fadvise调用,内核是否可能忙于从磁盘中获取数据,并最终延迟其他计划任务?这似乎与我们期望进行fadvise调用的预期异步预取行为相反。
我的问题是:是否有任何可调内核参数可用于强制执行posix_fadvise(WILLNEED)的异步行为?就像增加内核IO线程一样,页缓存?