ソニーのおかげで、Microsoft の Linux 上の exFAT パフォーマンスが向上

ソニーのおかげで、Microsoft の Linux 上の exFAT パフォーマンスが向上

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)で確認できます。

これらのパフォーマンス強化に関する追加情報については、ソース記事をご覧ください

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です