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

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

内容简介: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 性能急剧下降的问题

 


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

查看所有标签

猜你喜欢:

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

白帽子讲浏览器安全

白帽子讲浏览器安全

钱文祥 / 电子工业出版社 / 2016-3 / 79.00元

浏览器是重要的互联网入口,一旦受到漏洞攻击,将直接影响到用户的信息安全。作为攻击者有哪些攻击思路,作为用户有哪些应对手段?在《白帽子讲浏览器安全》中我们将给出解答,带你了解浏览器安全的方方面面。《白帽子讲浏览器安全》兼顾攻击者、研究者和使用者三个场景,对大部分攻击都提供了分析思路和防御方案。《白帽子讲浏览器安全》从攻击者常用技巧的“表象”深入介绍浏览器的具体实现方式,让你在知其然的情况下也知其所以......一起来看看 《白帽子讲浏览器安全》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

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

多种字符组合密码

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具