較大的資料夾大小是否會降低 IO 效能?

較大的資料夾大小是否會降低 IO 效能?

我們有一個 Linux 伺服器進程,它將數千個文件寫入一個目錄,刪除這些文件,然後再將數千個文件寫入同一目錄而不刪除該目錄。我開始發現寫作的過程變得越來越慢。

我的問題是這樣的:如 ls -l 的輸出所示,資料夾的目錄大小已從 4096 成長到超過 200000。

root@ad57rs0b# ls -l 15000PN5AIA3I6_B 總計 232 drwxr-xr-x 2 Chef Chef 233472 5月30日 21:35 條碼

在 ext3 上,這些大目錄會降低效能嗎?

謝謝。

亞倫

答案1

是的,大目錄可能是一個問題。通常最好透過將檔案散列到子目錄中來避免它們。如果這不是一個選項,有一個 ext3 功能可以顯著提高大型目錄中的查找效能:

tune2fs -O dir_index /dev/$DEVICE
e2fsck -D /dev/$DEVICE

這支援目錄索引資料的 B 樹哈希,從而顯著縮短查找時間。當然,您的安裝可能已經啟用了此功能。您可以透過執行此命令並dir_index在輸出中查找來進行檢查:

tune2fs -l /dev/$DEVICE | grep 'features:'

編輯: 另外,您可能需要考慮設定noatime為安裝選項。它不是針對大型目錄的特定調整,但在發生大量檔案系統活動時可以提供相當大的效能改進。

相關內容