Linux I/O 专家兼 Meta 的存储专家 Jens Axboe 希望为 Linux 6.14 提供未缓存的缓冲 I/O 支持,这一功能已经酝酿了五年。
最近,Jens Axboe 开始更新有关未缓存缓冲 I/O fpr 高速改进的工作。Axboe 旨在解决一旦页面缓存被填满,性能就可能出现的 “吞吐量悬崖”。这种未缓存的缓冲 I/O “RWF_UNCACHED” 的新实现更简单、更简洁,同时性能“提高了 65-75%”,并绕过了页面缓存的不可预测性问题。
最近几周,Axboe 继续迭代此代码,并将支持扩展到更多文件系统。现在看起来,未缓存的缓冲 I/O 支持将为即将到来的 Linux 6.14 周期做好准备。
Jens Axboe 本周在 X 上发帖:
“发布了未缓存缓冲 IO 补丁集的 v8。此时这应该可以合并,希望我们能发布 6.14 内核版本。
v8 补丁重命名了一些函数,确认额外的代码审查,以及其他细微的更改,为代码上线做准备。文件系统补丁也被分隔在它们自己的代码分支中,该代码分支将取决于首先被合并的核心分支。此外,补丁已针对当前的 Linux Git 开发状态进行了更新。
正如 Axboe 在补丁封面信中所指出的那样:
“TLDR 是,我看到两者的性能都提高了大约 65%,并且 IO 时间完全可预测。CPU 减少也很大,在使用未缓存的 IO 时,根本没有 kswapd 活动用于回收。
在应用程序中使用它很简单 – 只需使用 pwritev2(2) 或 preadv2(2) 为读取或写入设置 RWF_DONTCACHE 即可。对于io_uring,同样的事情,只需在 sqe->rw_flags 中设置 RWF_DONTCACHE 以进行缓冲读/写操作。就是这样。
希望未缓存的缓冲 I/O 代码确实能凭借其令人兴奋的收益进入 Linux 6.14。
转自 Uncached Buffered I/O Aims To Be Ready For Linux 6.14 With Big Gains – Phoronix