Cnbeta 04月01日 21:57
在索尼的帮助下 微软exFAT文件系统在Linux上的性能再次大幅提升
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

微软于2012年推出的exFAT文件系统,作为FAT32的继任者,在Linux上的性能优化持续进行。继2019年Linux开始支持exFAT后,2022年索尼工程师莫岳章曾通过减少目录条目重复遍历,使exFAT性能提升高达57%。最新的改进再次聚焦性能,修复了exfat_get_block()中的问题,优化了极端情况检查,并修复了自链接造成的无限循环等。此外,通过批量丢弃连续簇,显著提高了删除性能,在80GB文件的删除测试中,性能提升了172倍。

💾 2012年,微软发布64位exFAT文件系统,作为32位FAT32的后继者,旨在提供更好的文件系统支持。

💡 2019年,微软宣布在Linux中支持exFAT格式,标志着其在跨平台兼容性上的重要一步。

🚀 2022年,索尼工程师莫岳章的研究发现,减少目录条目的重复遍历可以使exFAT的性能提高高达57%,并在Linux内核版本6.2中得到应用。

🛠️ 最新拉取请求包含大量与exFAT相关的改进,修复了exfat_get_block()中的随机堆栈损坏和不正确的错误返回,并通过改进检查极端情况来优化exfat_get_block()。

✅ 此次更新还修复了exfat_find_last_cluster中自链接造成的无限循环,并删除了无效的EXFAT_CLUSTERS_UNTRACKED代码。

🗑️ 改进了删除性能,通过批量丢弃连续簇,性能提升高达172倍。在80GB文件的删除测试中,优化前需要4分46秒,优化后仅需2秒。

十多年前,即 2012 年,微软发布了 64 位 exFAT (扩展文件分配表)文件系统,作为 32 位 FAT32 的后继者。七年后的 2019 年,这家巨头宣布在 Linux 中支持 exFAT 格式,这是一个重大消息。快进十年,2022 年,索尼工程师莫岳章发现,减少目录条目的重复遍历可以使exFAT的性能提高高达 57%。 这在 Linux 内核版本 6.2 中被推动。

现在,莫再次回来帮助 exFAT,这一次,最新的拉取请求包含大量与 exFAT 相关的改进,性能提升就是其中之一。他写道:

此拉取请求的描述:

    修复 exfat_get_block() 中的随机堆栈损坏和不正确的错误返回。

    通过改进检查极端情况来优化 exfat_get_block()。

    修复 exfat_find_last_cluster 中自链接造成的无限循环。

    删除无效的 EXFAT_CLUSTERS_UNTRACKED 代码。

    添加缺失的关机检查。

    使用丢弃挂载选项提高删除性能。

对于那些想知道的人来说,“丢弃挂载”选项是指通知底层存储设备不再使用的块的操作。因此,当使用丢弃选项挂载文件系统时,它会启用实时丢弃操作。每当块从“已使用”转换为“空闲”时,这些操作都会自动通知存储设备。

补丁说明:

如果启用了丢弃挂载选项,则在释放簇时会丢弃文件的簇。逐个丢弃簇会显著降低性能。当释放大量簇时,性能不佳可能会导致软锁定。

此提交通过批量丢弃连续簇来提高性能。

性能改进是使用 80 GB 的文件来测量的,删除该文件需要 4 分 46 秒,即接近 287 秒。通过新的优化,任务在 2 秒内完成,相当于提高了 172 倍:

通过以下方式衡量绩效:

# truncate -s 80G /mnt/file

# time rm /mnt/file

如果没有这个提交:

    real 4m46.183s

    user 0m0.000s

    sys 0m12.863

通过此提交:

    real 0m1.661s

    user 0m0.000s

    sys 0m0.017s

您可以在此处的Linux 内核邮件列表 (LKML) 网站上查看拉取请求。

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

exFAT Linux 文件系统 性能优化 内核
相关文章