ext4 檔案系統的優化

2021-09-21 22:53:59 字數 1477 閱讀 7601

ext4作為ext3的下一代,是linux上的經典檔案系統,功能上雖不及zfs、btrfs那麼花哨,但是可靠實用,被廣泛部署在企業級的生產環境中。

ext4 作為乙個通用檔案系統,預設情況下已經工作良好。通過下面的調優,可以獲得額外的效能。

掛載選項

1、noatime

atime,它通常沒有用處,尤其對於日誌型的檔案系統而言,每次檔案讀操作都會改變元資料,形成寫操作,這變得不太合理,對於大多數日誌型檔案系統,noatime通常都是乙個更好的選擇。

2、data=writeback

writeback盡量滿足檔案內容的寫操作,檔案元資料寫入會推遲一點,這種模式可能會損害檔案儲存的安全性,意外斷電情況下,重啟後可能會讓你得到舊資料而不是新寫的資料。如果你正在使用硬體陣列卡,且上面有電池模組的話,那麼你就不用太擔心了。

3、delalloc

linux作業系統通常會慷慨的拿出大量記憶體作為檔案系統緩衝,讀寫效能因此大大受益,所謂延遲分配指的是檔案在記憶體中寫後才在檔案系統上分配block ,這樣可以提高block連續性,減少碎片。如果不急著把髒資料刷進檔案系統的話,延遲分配block也會增加ext4檔案系統的效能。

4、journal_dev

ext4 預設在自己所在的分區內維護日誌,如果把日誌寫入另外乙個分割槽或者硬碟的話,本地檔案系統就會變得更輕鬆。

5、barrier=0

為了寫安全,日誌檔案系統通常在寫操作完成時寫barrier,用於確認元資料完整性。如果應用以讀為主,禁用barrier可提高效能。

6、async

非同步io,在作業系統級別,盡可能的不直接從硬碟讀寫,對於以讀為主的應用可以使用非同步io來提高效能,寫操作使用非同步io會比較危險。

7、noacl、nouser_xattr、

減少檔案系統特性,給檔案系統減負

8、nodev、noexec、nosuid

這三個選項通常用於增加安全性,適合作為資料分割槽的掛載選項。

(nosuid是否更安全,暫且存疑。見man mount)

其他優化方法

deadline 通常是乙個更好的io排程器,使用方法

echo deadline >/sys/block/sdx/queue/scheduler

如果你打算使用4tb硬碟作為資料分割槽/data ,建立檔案系統時,缺省會保留5%,也就是200g給root專用,用下面的辦法改變它

mkfs.ext4 -m0 /dev/sdb1

總結

效能調優通常以犧牲安全為代價,極端的優化會拋棄安全,讓系統裸奔。因此,效能調優也要講究適度,把握好效能和安全的平衡。畢竟,資料無價。

效能調優也是乙個細活兒,需要經過大量調查考證,效能測試和事後跟蹤。一般來說,調優很難讓效能在整體上有大幅度的提公升。相比於更換硬體,後者的效能提公升更大更明顯一下,比如將普通硬碟替換成ssd硬碟。

本人才疏學淺,很多地方解釋可能不到位,不足之處,還望指教。

ext4檔案系統綜述

從本篇部落格起,我們開始研究現代檔案系統ext4,說其現代是因為其相比傳統檔案系統,有著更現代化的設計。這些先進的特性體現在本文所要敘述的以下方面。ext4是linux檔案系統的一次革命。在很多方面,ext4相對於ext3的進步要遠超過ext3相對於ext2的進步。ext3相對於 ext2的改進主要...

剖析ext4檔案系統

簡介 第 4 個擴充套件檔案系統,即 ext4 是下一代的日誌檔案系統,它與上一代檔案系統 ext3 是向後相容的。儘管 ext4 目前還不是標準檔案系統,但它將成為大部分下一代 linux 發行版的預設檔案系統。了解 ext4,以及它為什麼將成為您最喜歡的新檔案系統。linux 核心的每次發行都伴...

EXT4檔案組織 EXT4檔案系統詳解2

ext4 檔案系統是從 ext2 和 ext3 上發展而來的,這裡我們來分析它們是如何將乙個檔案的內容組織起來,從而在磁碟上 拼湊出乙個檔案 出於對ext4檔案系統相容性的考慮,我們嘗試在先從ext2檔案系統的檔案組織方式說起。ext2檔案節點定義 ext2 檔案節點變數有點多,我們需要關注i bl...