
在 Linux 6.16 合并窗口打开之前,本周已经在预计今天晚些时候发布的 Linux 6.15 之前发出了几个早期的拉取请求。在这些早期功能拉取中,Btrfs 维护者 David Sterba 向这个高级写时复制文件系统发送了更新。
对于 Linux 6.16 的 Btrfs,最有趣的方面是持续的性能改进。在一定程度上,缓冲区转换工作会为元数据密集型操作带来一些吞吐量和运行时改进。加上一些其他的清理工作,带来了一些不错的收益和其他效率工作。Linux 6.16 的 Btrfs 性能工作包括:
“- 到 xarray 的盘区缓冲区转换可以提高吞吐量,并改善执行回写的元数据密集型作的运行时间(示例测试显示吞吐量为 +50%,运行时间为 -33%)-
盘区 io 树清理通过避免不必要的搜索或重复搜索
来提高性能 – 提交事务时更高效的盘区取消固定(预计运行时间提高 3-5%)”
此 Btrfs 更新还有各种其他较小的更改可供查找:
“用户可见的更改:
– 删除独立挂载选项 ‘nologreplay’,在 5.9 中已弃用,替换为 ‘rescue=nologreplay’
– 在擦洗中,更新报告,在检测到错误后添加回设备统计信息消息(在最近的重构期间意外删除)
核心:
– 将范围缓冲区基数树转换为 xArray
– 在子页面模式下,将块完美压缩从实验性构建
中移出 – 在分区模式下,引入子块组以允许管理特殊块组,例如用于重新定位或树日志的块组,以处理 ENOSPC
的某些极端情况 – 在擦除中,简化块跟踪状态
的位图 – 继续准备大型作品集
– 删除作品集顺序 0
的断言- 在缺少的地方添加支持:压缩、缓冲写入、碎片整理、打孔、子页面、发送– 修复没有硬链接的文件的 fsync 不持久删除
– 拒绝未对齐 nodesize 的树块,4.9 次
的预防措施 – 将事务中止调用移到更靠近错误站点
的位置 – 删除一些结构体bio_vec内部
结构体的使用- 范围映射
中的简化 – 范围 IO 清理和优化
– 错误处理改进
– 具有可选格式字符串的增强 ASSERT() 宏”
通过此拉取请求为感兴趣的人提供更多详细信息。
转自 Btrfs To See More Performance Improvements With Linux 6.16 – Phoronix
Linuxeden开源社区