如何調節Ext4文件系統來獲得優化性能?
作者:Mark
在普通的Ext4文件系統創建中會用到默認設置。對于默認的工作負載,這些設置正常工作。但是如果你的服務器顯示一個非普通的性能模式時,你可能會從調節Ext4文件系統的性能中受益。本篇文章中,我們就來看看如何將Ext4推動到性能的最大值。
在普通的Ext4文件系統創建中會用到默認設置。對于默認的工作負載,這些設置正常工作。但是如果你的服務器顯示一個非普通的性能模式時,你可能會從調節Ext4文件系統的性能中受益。本篇文章中,我們就來看看如何將Ext4推動到性能的最大值。
調查你的系統
優化一個Ext4文件系統不受到要調整這個文件系統的限制。第一步要確保主機服務器可以處理一個快速的文件系統,通過分派足夠大量的RAM開始。一個調整好但內存不足的文件系統不能提供優化的性能,因為沒有足夠的空間來恰當地緩存這個文件系統元數據表。
要知道你的服務器是否有足夠的內存,就使用免費命令。如果緩存器和緩存使用的總內存超過了RAM總量的20%,它就會工作。但是越多就越好。理想來說,你需要大概40%的服務器內存用在緩存器和緩存上。
下一步,檢查你的磁盤。為了獲得盡可能好的性能,你將需要用到盡可能好的磁盤。這不是說你只需要SSD磁盤。但是如果你需要速度,不要使用7200 RPM SATA,要使用15000 RPM串列SCSI(SAS)代替。
還要將磁盤域控制器參數納入考慮。確保啟用了電池備份的緩存。為了增加寫入性能,將寫入配置為延遲。如果你更注重讀取性能,配置預讀取來增加機會,讓你下一步需要的數據更可能在你需要時已經在內存中負載了。
優化Ext4文件系統
服務器也檢查過了,現在我們就來優化Ext4文件系統。你需要考慮兩個東西,然后你就可以檢查更具體的性能參數了。
幾乎在所有情況下都有所幫助的一個參數是關閉文件系統訪問時間,使用/etc/fstab中的“一次都不(noatime)”安裝選項。沒有這個選項,每次文件被訪問(包括讀取)時,這個文件的元數據都會變更。大部分服務器沒有對這些信息做處理,所以關閉它就行了。
另一個有意思的安裝選項是dealloc選項,它打開了延遲的塊配置功能。這個功能在最后時刻決定寫入文件發生時使用哪個塊,優化這個寫入程序。
另一個重要的安裝選項調整文件系統日志。有三種日志模式:data=journal、data=ordered和data=writeback。默認設置data=ordered提供性能和防護之間的最佳平衡。但是如果你的服務器需要寫入大量數據,它可以長期凍結你的服務器。如果是這種情況,使用iotop等工具,你會看到kjournald程序的高負載。如果你的服務器遇到了這種行為,使用data=writeback選項來獲得更好的寫入性能。但是使用這個選項增加了風險,最新修改的數據會在宕機事件中崩潰。
創建文件系統來獲取更好性能時,可以用到多個選項。第一個是inode大小。inode用來存儲元數據,如果擴展屬性或訪問控制列表(ACL)用在一個文件系統上,默認的inode不足以存儲所有數據并且配置了二級的inode。這也就是說,所有的文件訪問你都需要用兩個操作來代替一個。使用有-I 256選項的mkfs,將inode大小從128設置成256。完全關閉用戶擴展屬性和ACL不是一個好方法,因為你需要它們來使用Ext4擴展。
雖然默認的Ext4文件系統優化得很好,轉向你的文件系統可能會歸結到創建一個理想的服務器硬件配置。noatime的安裝選項在多數情況下提供性能優勢。接著優化取決于你的服務器正在做什么。文件系統性能不佳的大部分服務器都是因為不能以高效的方式寫入數據。
【編輯推薦】
責任編輯:趙寧寧