LinuxFAT文件系统预读缺陷:补丁提升7倍性能

Linux 内核现在已经增加了对 exFAT 的支持,同时它也没有放弃维护原有 FAT 文件系统驱动,甚至现在从邮件列表上看,FAT 性能方面可能会有大幅提升。

开发 Tux3 文件系统而闻名的 OGAWA Hirofumi 在邮件列表中提到了目前 Linux FAT 文件系统的预读取处理有瑕疵:“FAT 条目的当前预读非常简单,但是有一些缺陷,因此在某些环境下效果不佳。这个补丁或多或少可以提高预读能力。”

补丁改进的关键点在于:

通过 bdi->a_pages 使预读大小可调

关注 bdi->io_pages 以避免小型 I/O 请求

在完全耗尽之前更新预读窗口

OGAWA Hirofumi 测试结果表明,使用此补丁,在慢速 USB 连接的 2TB 硬盘上,此前需要 383 秒才能完成的传输测试现在只需 51 秒即可完成。

具体补丁代码可以查看:[PATCH resend] fat: Improve the readahead for FAT entries