Linux 5.10.8 发布,最终解决了 Btrfs 的性能问题

老王Plus 2021-01-19 11:08:44 ⋅ 909 阅读

Linux 内核 5.10.8 已经发布。作为 Linux LTS 5.10 系列的最新版本,此次更新解决了 Btrfs 文件系统的性能问题。

Btrfs 是一种支持写入时复制(COW)的文件系统,目标是取代 Linux 当时的 ext3 文件系统,改善 ext3 的限制,特别是单个文件的大小,总文件系统大小或文件检查和加入ext3未支持的功能,像是可写快照(writable snapshots)、快照的快照(snapshots of snapshots)、内建磁盘阵列(RAID),以及子卷(subvolumes)。Btrfs也宣称专注在“容错、修复及易于管理”。

然而,去年 10 月份的提交 ”btrfs: use btrfs_start_delalloc_roots in shrink_delalloc”  引起了一个性能问题:此前在使用正常的写回路径来回收延迟分配空间时,我们会提供想要刷新的页面数,而此提交更改为刷新大量 inode,在某些情况下这个数量还会剧烈增加。这严重影响了性能。并且由于后续的 "btrfs: fix deadlock when cloning inline extent and low on free metadata space“ 提交使用到了上述更改导致无法还原。 经过测试,在 5.10 中解压 Firefox 的压缩文件(360MiB xz compressed/1.5GiB uncompressed)相比于在 5.9 中,要花费5到20倍的时间。这种现象在 SSD 中更明显。

因此,在 “btrfs: shrink delalloc pages instead of full inodes” 提交中,在 btrfs_start_delalloc_roots() 函数中提供要刷新的页面数,并通过  writeback_control 结构和  sync_inode() 函数来解决刷新问题。再次进行测试(256GiB of ram, 56 cores, 2TiB Intel NVMe drive),结果如下:

可以看见效果显著。此外,此次更新还包括修复使用较旧的 glibc 时 net.o 编译失败、修复硬件 TID 泄漏、使用 VMAP 堆栈修复 RTAS 机器检查、 修复恢复过程中的死锁、 修复 MTU 对于 XDP 太大时的错误消息等。

详细内容请查看更新公告

延伸阅读

Linux 5.10 出现 Btrfs 性能急剧下降的问题

 


全部评论: 0

    我有话说:

    Linux 5.10.9 发布,小幅更新持续优化

    前几天,Linux 5.10.8 发布最终解决 Btrfs 性能问题。仅仅短短几天,5.10.9 也正式推出,相比上个版本,此次更新幅度不大,主要聚焦于修复一些bug。 此次更新内容包含

    Linux 5.10 LTS 发布,支持到 2026 年

    Linus Torvalds 宣布 Linux 5.10 发布,这是当下最新主线内核更新,也是最新 "长期支持(LTS)"版本。内核开发人员计划一直维护 Linux 5

    Linux Kernel 5.10.10 正式发布

    Linux 5.10.10 版本正式发布,本次更新包含有 43 个补丁,更新内容主要以修复 bug,提升稳定性为主。 此次更新内容包含: 为 Cadence SPI 控制器添加驱动程序 修复

    Linux 5.10 第二批更新,ARM64 上功能优化

    10 月 22 日,Linux 5.10 发送该内核第二批更新,此次对 ARM64 一些功能做性能优化。当天拉取请求为 ARM64 上 Linux 5.10 启用 HAVE_MOVE

    2018 国产开源软件新秀Kooteam 0.1.2 发布解决低配服务器性能问题

    KooTeam是一款轻量级在线团队协作工具,提供各类文档工具、在线思维导图、在线流程图、项目管理、任务分发,知识库管理等工具。

    Linux Kernel 5.12 rc1 发布

    Linux Kernel 5.12 rc1 已经发布。在邮件中,Linus Torvalds 表示由于美国严寒天气,其在合并窗口开始后 6 天里是没有电,所以曾考虑过延长合并窗口,不过他最终没有

    JavaScript 引擎 V8 发布 8.3 版本,性能提升

    JavaScript 引擎 V8 发布 8.3 版本

    VirtualBox 6.1.20 发布,支持 Linux 5.11 & 5.12

    近日,VirtualBox 发布 6.1.20 版本,也是该软件 6.1 版本系列第十次更新。该版本增加Linux Kernel 5.115.12 支持。而且,对于 Linux

    Lutris 0.5.8.2 发布Linux游戏平台

    Lutris 0.5.8.2 已经发布。Lutris  是 Linux 环境下游戏平台,可通过游戏管理、安装以及为游戏提供最佳配置来提高 Linux 环境下游戏体验。 版本更新内容

    Apache Tomcat 8.5.59、9.0.39和10.0.0-M9发布

    Apache Tomcat 8.5.59, 9.0.39 和 10.0.0-M9 已发布8.5.x 已取代 8.0.x,并增加从 Tomcat 9.0.x 中吸收新功能。与 8.5.58

    RabbitMQ 3.8.10 发布

    RabbitMQ 3.8.10发布,RabbitMQ 是一个 Advanced Message Queuing Protocol(AMQP)开源实现,由以高性能、健壮以及可伸缩性出名

    Apache Tomcat 10.0.4、9.0.44 和 8.5.64 发布

    Apache Tomcat 三个分支发布更新,分别是 10.0.4、9.0.44 和 8.5.64。 Tomcat 10.0.x 系列目标平台是 Jakarta EE 9。官方表示,Tomcat

    密码管理工具:1Password for Linux Beta发布

    1Password for Linux 首个 Beta 测试版已发布,正式版计划在明年初推出。1Password 是一款流行密码管理软件,兼容 macOS、iOS、Windows 和

    大数据量下 MyBatis PageHelper 分页查询性能问题解决办法

    前因 项目一直使用是PageHelper实现分页功能,项目前期数据量较少一直没有什么问题。随着业务扩增,数据库扩增PageHelper出现明显性能问题。 几十万甚至上百万单表数据查询性能缓慢

    Redis 5.0.11、6.0.11、6.2 发布,修复 32 位系统上整数溢出

    Redis 同时发布 5.0.11、6.0.11 和 6.2 版本。对于使用 32 位 Redis 用户来说,此次更新解决一个重要安全问题,即 32 位系统上整数溢出((CVE-2021

    BlackArch Linux 2020.12.01 发布,渗透测试发行

    时隔半年,BlackArch Linux 发布2020年最后一次版本更新 2020.12.01,新版本增加超过 100 款工具,官方表示 BlackArch Linux

    Oracle Linux 8 Update 3 发布

    Oracle Linux 8 Update 3 发布。这是新 Oracle 企业级 Linux 发行版,由 Red Hat Enterprise Linux (RHEL) 源代码编译而成

    专业解决 MySQL 查询速度慢与性能

    什么影响数据库查询速度?关于数据库性能并不是DBA才关心事。