Linux 5.12 的 exFAT 檔案系統更快刪除大檔案

語言: CN / TW / HK
近日, Linux 核心開發者提交了一個關於 exFAT 優化的補丁:當使用 “dirsync” 安裝選項時,叢集分配點陣圖不會在每個叢集位清除時都同步緩衝區,而是隻會在點陣圖緩衝區索引改變時才會更新。這一改進可以大幅優化刪除大檔案時的效能。

在 Linux 核心 5.12 版本中,使用 exFAT 檔案系統的使用者,在刪除帶有 “dirsync” 安裝選項集的大檔案時,將大幅提高速度。

Linux 5.12 的 exFAT 檔案系統更快刪除大檔案Linux 5.12 的 exFAT 檔案系統更快刪除大檔案

什麼是exFAT

exFAT(Extended File Allocation Table),是微軟公司(Microsoft)開發的一種較適合於快閃記憶體的檔案系統。最先從該公司的 Windows Embedded CE 6.0 作業系統引入這種檔案系統,後又延伸到 Windows Vista Service Pack 1 作業系統中。2019 年,微軟公開了 exFAT 技術文件,並表示想將 exFAT 功能整合到 Linux 核心中。同年,在 Linux 核心 5.4 版本中,初步支援 exFAT 檔案系統。

exFAT 檔案系統更快刪除大檔案

近日, Linux 核心開發者提交了一個關於 exFAT 優化的補丁:當使用 “dirsync” 安裝選項時,叢集分配點陣圖不會在每個叢集位清除時都同步緩衝區,而是隻會在點陣圖緩衝區索引改變時才會更新。這一改進可以大幅優化刪除大檔案時的效能。

There are stressful update of cluster allocation bitmap when using

dirsync mount option which is doing sync buffer on every cluster bit

clearing. This could result in performance degradation when deleting

big size file.

Fix to update only when the bitmap buffer index is changed would make

less disk access, improving performance especially for truncate operation

在使用 Samsung 256GB SD卡, dirsync 安裝選項測試時,刪除 4GB 的檔案時間由 39 秒縮短到 1秒。

Linux 5.12 的 exFAT 檔案系統更快刪除大檔案Linux 5.12 的 exFAT 檔案系統更快刪除大檔案
目前,該補丁已經打上了 dev 標籤,預計將於 Linux 核心 5.12 版本中釋出。