Linux 7.0 重磅改动:EXT4 并发 I/O 性能飙升,数据库写入不再卡顿?
大家好,今天正好是周六。在大家欢度周末的时候,Linux 内核社区却依然忙碌。
就在前两天,Linux 7.0 的合并窗口传来了一个让存储发烧友和运维人员兴奋的消息:那个即使在今天依然被广泛使用的老牌文件系统 EXT4,又迎来了一次硬核的性能升级。
根据 Phoronix 的最新报道,Linux 7.0 内核已经正式合并了 EXT4 文件系统的多项更新。这次更新中最引人注目的,是针对并发直接 I/O(Direct I/O)写入性能的显著优化。
我们知道,EXT4 作为 Linux 系统的默认选择,一直以稳定著称,但在极高并发的写入场景下,偶尔也会显得力不从心。
这次的补丁正是为了解决这个问题。根据内核邮件列表中的提交信息,新的优化通过将未写入范围的分割操作推迟到 I/O 完成时进行,从而大幅减少了锁的竞争。
简单来说,在以往的版本中,当多个线程同时对文件进行直接 I/O 写入时,文件系统需要频繁地处理空间分配和状态更新,这往往会导致线程之间互相打架,争抢锁资源,从而降低了整体的吞吐量。
而 Linux 7.0 的这一改动,让这些操作变得更加从容,特别是在处理大量并发写入请求时,性能提升将非常明显。这对于运行数据库、高性能计算等对磁盘 I/O 要求极高的应用场景来说,无疑是一个巨大的利好消息。
除了并发写入性能的提升,这次更新还带来了一些细腻的优化。例如,新版本避免了在范围状态缓存中进行不必要的缓存失效操作,同时还修正了在延迟分配模式下追加文件时产生的不必要的强制有序写入。
这些改动虽然听起来很底层,但它们能实实在在地降低系统的开销,让文件系统运行得更加顺滑。
对于系统管理员来说,这次还有一个非常实用的新功能。Linux 7.0 为 EXT4 引入了一个名为 err_report_sec 的 sysfs 属性。
在过去,如果文件系统检测到不一致的错误,它默认会每隔 24 小时记录一次警告信息,这个频率是固定的。而现在,通过调整这个属性,管理员可以自定义这个错误报告的时间间隔。
如果你觉得报警太烦或者太慢,都可以自己说了算,甚至可以将其设置为 0 来完全禁用这个计时器。
虽然现在 Btrfs 和 XFS 等文件系统在很多高级特性上表现抢眼,但 EXT4 凭借其无可比拟的稳定性和持续的性能优化,依然是很多生产环境的首选。
Linux 7.0 的这次更新再次证明,这个经典的文件系统依然宝刀未老,完全有能力适应未来的高负载需求。
目前 Linux 7.0 已经进入了合并窗口的尾声,预计将在不久后发布正式版。如果你的业务场景严重依赖磁盘 I/O 性能,不妨关注一下这个版本的后续动态。
信息来源:
- • https://lore.kernel.org/lkml/20260212154721.GA2430983@mit.edu/
- • https://www.phoronix.com/news/Linux-7.0-EXT4