在运行 Linux 内核版本 2.6.18-194.26.1.el5 的 CentOS 5.5 机器上,我注意到 posix_fadvise(WILLNEED) 使读取 60K 文件比常规 IO 慢了近 200%。
看起来实际的 fadvise 调用是同步的,并且它还延迟调度应用程序中使用从文件读取的数据的其他线程。
是否有可能由于 fadvise 调用,内核正忙于从磁盘获取数据,并最终延迟了其他计划任务?这似乎与我们期望进行 fadvise 调用所期望的异步预取行为相反。
我的问题是:是否有任何可调整的内核参数可用于强制 posix_fadvise(WILLNEED) 的异步行为?比如增加内核IO线程、页面缓存?
这是最近才发生的在 LKML 上询问 http://news.gmane.org/find-root.php?message_id=%3C20101206135049.GB8135@thunk.org%3E。这就是它的设计方式。如果你需要非阻塞fadvise
,在另一个线程中执行。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)