大约5分钟的编码可将Linux I/O性能提升6%以上

2024年 1月 16日 92.5k 0


Io_uring创建者和Linux块子系统维护人员Jens Axboe花了大约5分钟开发两个补丁,以实现块层中问题端时间查询的缓存,I/O性能可以提高6%或更多。

Axboe共享 关于他最新有趣的Linux I/O性能优化,“一件我多年来一直在想的事情,终于在今天做到了。这有点令人难过,因为它实际上只需要5分钟的工作,产生了超过6%的改进。在一个完整的发行版风格的内核配置上可能会更大。“

Axboe解释说,由于默认情况下查询时间的性能开销,他通常在测试时禁用iostats。但是,当为问题端时间查询提供一些基本缓存时,他发现IOPS提高了大约6%,而对于更臃肿的Linux发行版供应商内核,收益可能更显著。

他详细介绍了 RFC补丁系列:

查询当前时间是我们针对每个IO在数据块层执行的最昂贵的操作,根据内核配置设置,我们可能会针对每个IO执行多次查询。

调用方实际上都不需要NSec粒度。通过在插件中缓存当前时间来利用这一点,这里的假设是,任何时间检查都将在时间上足够接近,因此精度的轻微损失并不重要。

如果块插头被刷新,例如在抢占或调度时,我们将使缓存的时钟无效。

..。

这在性能上提高了6%以上。看一看Perf diff,我们可以看到时间开销大大减少:

10.55%-9.88%[kernel.vmlinux][k]Read_TSC

1.31% -1.22% [kernel.vmlinux] [k] ktime_get

请注意,由于这依赖于blk_plug进行缓存,因此它仅适用于问题端。但这是大多数时候电话发生的地方。同样值得注意的是,上面的测试没有在块层侧启用任何成本较高的CPU项,如wbt,cgroups,iocost等,这些都将增加额外的查询时间。IOW,结果可能会看起来比那些启用更好,因为发行版会做。”

A nice win and hopefully this continues to pan out and prove useful for upstreaming with the Linux v6.9 cycle in a few months,

相关文章

塑造我成为 CTO 之路的“秘诀”
“人工智能教母”的公司估值达 10 亿美金
教授吐槽:985 高校成高级蓝翔!研究生基本废了,只为房子、票子……
Windows 蓝屏中断提醒开发者:Rust 比 C/C++ 更好
Claude 3.5 Sonnet 在伽利略幻觉指数中名列前茅
上海新增 11 款已完成登记生成式 AI 服务

发布评论