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