近日 David Sterba 再向 Linux 6.3 内核提交了一大批 Btrfs 文件系统的更新,这批有关 Btrfs 的 PR 除了带来新的功能,还包含了大幅的性能优化 —— 最高可以提升 10 倍。
此次更新中的核心变化是重新设计了处理校验和( checksums )的方式,改变了在 I/O 路径中进行校验和的位置,校验和与读取修复在较低层进行验证,Btrfs 还继续清理代码,并围绕其原生 RAID5 和 RAID6 处理进行重构。
Linux 6.3 的 Btrfs 引入了块组分配类的启发式算法( heuristics ),可以按大小来打包文件,从而避免块组的碎片化。
至于性能方面,则是带来了以下这些变化:
send:缓存目录 utimes 并且仅在必要时发出命令 速度提高 10 倍
生成的最终流较小(没有发出多余的 utimes 命令)
兼容性不受影响
fiemap:跳过共享 leaves 的 backref 检查
在带有所有 leaves 共享的示例文件系统上加速 3 倍
微优化的 b-tree 键查找,加速元数据操作(示例基准:fs_mark +10% 的文件 / 秒)
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.