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

栏目: 软件资讯 · 发布时间: 3年前

内容简介:Linux 内核 5.10.8 已经发布。作为 Linux LTS 5.10 系列的最新版本,此次更新解决了 Btrfs 文件系统的性能问题。 Btrfs 是一种支持写入时复制(COW)的文件系统,目标是取代Linux目前的ext3文件系统,改善ext3的限...

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

Linux 5.10.8 发布,最终解决了 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 中更明显。

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

因此,在 “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),结果如下:

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

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

详细内容请查看更新公告

延伸阅读

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

 


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Understanding Computation

Understanding Computation

Tom Stuart / O'Reilly Media / 2013-6-3 / USD 39.99

Finally, you can learn computation theory and programming language design in an engaging, practical way. Understanding Computation explains theoretical computer science in a context you'll recognize, ......一起来看看 《Understanding Computation》 这本书的介绍吧!

随机密码生成器
随机密码生成器

多种字符组合密码

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具