posix_fadvise(WILLNEED)会让IO变慢吗?

时间:2011-02-08 17:56:06

标签: linux filesystems operating-system linux-kernel posix

在运行Linux内核版本2.6.18-194.26.1.el5的CentOS 5.5机器上,我注意到posix_fadvise(WILLNEED)使得读取60K文件的速度比常规IO慢得多200%。

似乎实际的fadvise调用是同步的,它还会延迟调度应用程序中使用从文件读取的数据的其他线程。

由于fadvise调用,内核是否可能忙于从磁盘中获取数据,并最终延迟其他计划任务?这似乎与我们期望进行fadvise调用的预期异步预取行为相反。

我的问题是:是否有任何可调内核参数可用于强制执行posix_fadvise(WILLNEED)的异步行为?就像增加内核IO线程一样,页缓存?

1 个答案:

答案 0 :(得分:7)

这是最近才asked on LKML。这就是它的设计方式。如果您需要非阻塞fadvise,请在另一个帖子中执行。