Btrfs 性能得到优化,最高提升 10 倍


Btrfs 是一种支持写入时复制(COW)的文件系统,被广泛运用于各种 Linux 操作系统之中,目标是取代 ext3 文件系统,改善 ext3 的限制。

去年,SUSE 的开发者 David Sterba 为 Linux 6.0 内核更新了 Btrfs 文件系统,当时将直接 I/O 读取限制增加到 256 个扇区的更改使工作负载的吞吐量提高了 3 倍。

近日 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% 的文件/秒)

此次 PR 的完整内容可以查看该链接。


相關推薦

2022-11-30

决定将众多新特性在 1.2 版本中发布,这其中既包含了在性能方面的优化改进,也包含了诸多社区用户期待已久的功能。经历了漫长的开发、测试、调优等工作后,我们很高兴地告诉大家,Apache Doris 1.2.0 版本已经进入最后的发版

2023-04-27

fs 文件系统的主要改动是核心优化和代码清理,以及一些性能上的修复和两个目录日志记录的性能改进。代码清理主要是对 I/O 路径的清理、重写了清理的主循环代码,以解决现有代码跳转过多、碎片区 IOPS 效率低等问题。改进

2023-10-15

功能优化项以及问题修复,进一步提升了系统的稳定性和性能,欢迎大家下载体验。 GitHub下载: https://github.com/apache/doris/releases/tag/2.0.2-rc05 官网下载页: https://doris.apache.org/download/ 重要更新 删除与 lambda 函数语法冲

2023-07-05

如何在大幅降低数据存储和计算资源成本的同时兼顾高性能查询? …… 秉持着“将易用性留给用户、将复杂性留给自己”的原则,为了克服以上一系列挑战,从理论基础到工程实现、从理想业务场景到极端异常 Case、从

2023-11-01

与 M1 系列芯片相比最快可达 2.5 倍。中央处理器搭载的高性能核心和高能效核心比 M1 中的相应核心分别快 30% 和 50%,神经网络引擎也比 M1 系列芯片上的快 60%。 M3 配备 8 核 CPU,10 核 GPU,24GB 统一内存,速度最高比 M2 提升 20

2023-04-15

在去年三月,Google 曾大幅优化了 Chrome 99 的性能,使其在 Speedometer 基准测试中获得了 300 分,在 Mac 上的性能表现超越了所有浏览器,其中也包括苹果自己的 Safari 浏览器。在去年 6 月,Chrome 团队再接再厉,使 Chrome 浏览器在 Mac

2022-11-19

发布 4 个 RC 版本。 QEMU 7.2 新增了许多新特性,以及提升性能、改进功能。 主要变化 QEMU for x86/x86_64 现在支持 CORE_THREAD_COUNT MSR,还支持在使用"-kernel"参数引导时将随机种子传递给 Linux 内核。 微型代码生成器 (TCG, Tiny Code Ge

2023-03-30

在 2010 年就推出了,这款诞生已经超过十年的硬件可以说性能已经有点落后了。在大家都在翘首期盼之时,近日 Arduino 正式发布了 Arduino Uno R3 的升级版 —— Arduino Uno R4,新产品在处理能力、内存、存储和连接等方面都带来了巨

2023-08-01

大语言模型,首先从数万亿数据和数千亿知识中融合学习得到预训练大模型,在此基础上采用有监督精调、人类反馈的强化学习和提示等技术,并具备知识增强、检索增强和对话增强等技术优势。 王海峰解读了文心大模型3.5

2022-02-10

一起看看从 Raspberry Pi OS 32 位转换到 64 位后的测试数据和性能表现。 为了测试公平起见,消除因处理器或内存不同引起的结果差异,本次测试使用的是 Raspberry Pi 400,该设备的硬件配置如下: CPU:博通 BCM2711 四核 Cortex-A7

2022-10-01

性 针对DenoAPI 的变更 改进 Deno.serve() API 提升性能 优化 module 下载 UI 改进开发者体验 升级 TypeScript 至 4.8 CacheWeb API 此版本添加了对CacheAPI 的支持。该 API 可用于缓存 Request/Response 对象,对于动态生成 r

2023-09-10

、测试框架等功能融合在一个工具中,提供开箱即用的高性能体验。 Bun兼容现有的Node.js生态,几乎所有Node程序可以无缝迁移。更令人振奋的是,Bun的启动速度可达Node的4倍,运行TypeScript的速度比esbuild+Node快5倍!原因在于其使

2023-07-15

创始人兼 CTO 黄东旭 无论技术世界如何变化,稳定性、性能、高可用、易用性与工具生态,一直都是用户对数据库的重要诉求。PingCAP 联合创始人兼 CTO 黄东旭在“面向未来的数据库”的主题演讲中指出,下一代数据库面临着新

2022-12-16

者 Zhen Lei 来自华为,他将 kallsyms_lookup_name() 的平均查找性能提高了 715 倍,从而使内核里面旧实现的时间复杂度从 O(n) 升级到 O(log(n)),大幅减少查找时间,同时还保留了 /proc/kallsyms 上旧的实现支持。 kallsyms_lookup_name() 函数用于