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