Linux内核新补丁提升文件系统性能65%以上,如何实现?

linux

1个回答

写回答

嘟嘟头头

2026-01-24 18:20

+ 关注

linux
linux

近期,linux内核社区块层及IO_URING维护者Jens Axboe提交了一组名为Uncached buffered IO的补丁,可将文件系统性能提升65%以上。这组补丁延续了五年前的研究,旨在提出一种解决页缓存现有问题的新方法。Page cache虽能显著提升读写速度,但存在两大弊端:一是缓存回收会大幅提高CPU使用率;二是内存满载时,读写性能骤降,波动剧烈且难以预测。针对这些问题,Jens Axboe的补丁提供了有效解决方案,以下是相关commit message的内容:你或许会疑惑,为何要采用这种方式?原因在于,设备性能不断提升,但回收效率却未能同步提高。传统的缓冲IO操作不仅结果难以预测,还会在回收过程中耗费大量资源。因此,很多人转而使用O_DIRECT作为临时解决方案。然而,O_DIRECT对IO的大小、偏移量和长度有着严格限制,实际应用中存在诸多不便。读取性能参考补丁8,写入性能参考补丁10。总体来看,两项性能均提升了约65%,且IO响应时间十分稳定。同时,CPU使用率显著下降,在采用未缓存IO的情况下,kswapd回收活动已被彻底消除。读写性能差距如下:

采用这一系列补丁后,读写性能更加稳定且可预期。目前,该补丁已支持ext4、xfs和btrfs文件系统。作者表示,此补丁的目标版本为6.14。不过,有兴趣的用户可以手动应用该补丁提前体验。不得不承认,顶级程序员的能力确实远超普通程序员。之前我和同事也经常遇到类似问题:在大量IO操作后,读写性能变得极不稳定。我们的解决办法通常是使用O_DIRECT绕过这个问题,但这也带来了诸多限制,甚至从未想过这问题能被彻底解决。实际上,这个patch系列的思路非常清晰明了:在完成读写操作后,直接触发回写,并回收内存页,整个改动仅三百多行代码。这让我深刻意识到,技术学习的道路依然漫长,我们需要不断向高手学习,共同进步。这个方案展示了一种优雅的解决方式,真正体现了高手在处理复杂问题时的简洁与高效。链接中的讨论也值得细细研读:linux-fsdevel/20241114152743.2381672-2-axboe@kernel.dk/T/">https://lore.kernel.org/linux-fsdevel/20241114152743.2381672-2-axboe@kernel.dk/T/

举报有用(0分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号