
exFAT パフォーマンスの向上: 10 年間のイノベーション
2012 年、Microsoft は、従来の 32 ビット FAT32 ファイル システムの現代的な代替として、Extended File Allocation Table (exFAT) の 64 ビット バージョンを導入しました。同社は 2019 年に Linux プラットフォームでの exFAT 形式のネイティブ サポートを発表し、ファイル システムの相互運用性の進化における重要な瞬間をマークすることで、さらに大きな一歩を踏み出しました。
最近の進歩は、特にソニーのエンジニアである Yuezhang Mo の貢献のおかげで現れました。2022 年に、Mo はディレクトリ エントリ トラバーサルを最適化すると exFAT のパフォーマンスが 57% も向上することを発見しました。この極めて重要な改善は Linux カーネル バージョン 6.2 に統合され、ファイル システム テクノロジーの継続的な進化を示しています。
exFAT 最適化の最新動向
Mo は、exFAT ファイル システムの改良を目的とした最近のプル リクエストで、さらなる機能強化を発表しました。提案された変更には、パフォーマンスを向上させるだけでなく、既存の問題を解決するいくつかの重要な改善が含まれています。この最新の提出に含まれる機能強化の概要は次のとおりです。
このプルリクエストの説明:
- ランダムなスタック破損に対処し、エラーを修正します
exfat_get_block()
。exfat_get_block()
エッジケースを最適化することで強化します。- の自己リンク チェーンに関連する無限ループの問題を修正しました
exfat_find_last_cluster
。- 古くなったコードを削除します
EXFAT_CLUSTERS_UNTRACKED
。- シャットダウン中に重要なチェックを追加します。
- 破棄マウント オプションを使用する場合の削除パフォーマンスを向上させます。
「マウント破棄」オプションは、パフォーマンスの向上に重要な役割を果たします。このオプションにより、ファイル システムはストレージ デバイスと通信して、不要になったブロックを示すことができます。このリアルタイム通知により、空き領域を効率的に管理できるため、操作が合理化され、ファイル システム全体の効率が向上します。
パッチでは次の点が明確になっています:
破棄マウント オプションが有効になっている場合、解放されたクラスターはすぐに破棄されます。クラスターを 1 つずつ処理するとパフォーマンスが低下し、多数のクラスターが解放されたときにソフト ロックアップが発生する可能性があります。この更新では、連続するクラスターの破棄操作をバッチ処理することでパフォーマンスが向上します。
パフォーマンス指標: 劇的な改善
これらの機能強化によるパフォーマンスの向上は目覚ましいものです。テストでは 80 GB の大きなファイルが使用されましたが、以前は削除に約 4 分 46 秒かかっていました。新しい最適化を実装した後は、削除時間が 2 秒未満にまで短縮され、172 倍という驚異的なパフォーマンスの向上が達成されました。
パフォーマンス測定により次のことが明らかになりました。
#
truncate -s 80G /mnt/file
#
time rm /mnt/file
このコミットがなければ:
- 実時間 4分46秒183
- ユーザー 0分0.000秒
- システム 0分12.863秒
このコミットでは:
- 実数 0分1.661秒
- ユーザー 0分0.000秒
- システム 0分0.017秒
このプルリクエストの詳細については、 Linux カーネル メーリング リスト (LKML)で確認できます。
これらのパフォーマンス強化に関する追加情報については、ソース記事をご覧ください。
コメントを残す