linux - posix_fadvise(WILLNEED) 使 IO 变慢?

标签 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线程,页面缓存?

最佳答案

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

关于linux - posix_fadvise(WILLNEED) 使 IO 变慢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4936520/

相关文章:

linux - shell 初始化 : error retrieving current directory: getcwd -- The usual fixes do not wor

c++ - 获取两个目录之间的路径 "difference"

java - 其中哪一项需要多个处理器?多任务、多处理和多线程

c - 什么是子进程?我该如何开始呢? (Linux、C)

c - 我如何判断我机器上的每个核心是否使用相同的计时器?

linux - 转换 d.m.Y h :m:s to Y-d-m h:m:s for a large file in linux

java - Java 中操作系统的名称(不是 "os.name")

linux - 在结构 inode 中存储一些数据

java - Android 工作室抛出 IOException : Operation not permitted

c++ - 当引用位于标题中并且应该存在时 undefined reference