四大Linux文件系統在2.6.34內核下的基準測試
原創【51CTO精選譯文】業內知名評測網站Phoronix近日在Linux 2.6.34內核上針對一系列Linux文件系統進行了基準測試。現在大多數使用中的Linux文件系統正在以EXT4逐步取代EXT3,不過BTRFS也常常與EXT4相提并論。此外,由SGI開發并引進到Linux中的XFS高級日志文件系統也以良好的伸縮性和健壯程度廣受歡迎。下面是評測的詳細情況:
我們對以前的Linux文件系統測試結果進行觀察后發現,在不同版本的Linux內核上的測試結果存在差異,有時甚至出現了很大的波動,因此我們打算在最新的Linux內核上,針對更多的Linux文件系統做一次全面的測試。
本次測試使用的內核是2.6.34-RC4 Git快照版本,參與測試的文件系統包括EXT3,EXT4,Btrfs和XFS,使用的測試工具包括Phoronix Test Suite中的Compile Bench,FS-Mark,Dbench, IOzone,PostMark,PostgreSQL,SQLite,Unpack-Linux和Threaded I/O Tester。
測試所用的機器配置:
處理器:AMD四核上海 Opteron 2384
主頻:2.70GHz
主板:泰安S2927 n3600B
硬盤:64GB OCZ Agility EX SSD
顯卡:ATI Radeon HD 4870
操作系統:Ubuntu 10.04 Beta(64位)
軟件環境:2.6.34內核,X.Org Server 1.7.6,xf86-video-radeon 6.13.0,GCC 4.4.3
每個文件系統都使用的是它們的默認掛載選項。
編譯基準測試Compile Bench

圖 1 Compile Bench測試結果
在Compile Bench測試結果中,Btrfs勝出,它比第二名EXT3快出23%,EXT3比EXT4又快出22%,排在最后的是XFS,它的速度只有10.83MB/s,與Btrfs的64.47MB/s相比,懸殊非常大。
#p#
文件系統性能測試FS-Mark

圖 2 FS-Mark測試1000個1MB大小的文件
在FS-Mark測試1000個1MB大小的文件時,EXT3在OCZ Agility EX SSD硬盤上意外勝出,EXT4明顯落后于EXT3,事實上EXT4是所有文件系統中最慢的,這一輪Btrfs排在了第二名。

圖 3 FS-Mark禁用Sync/FSync測試1000個1MB大小的文件
同樣是測試1000個1MB大小的文件,但這次禁用了sync,測試結果讓人難以置信,Btrfs以絕對優勢勝出,它的成績相當于EXT3和EXT4的4.5倍,EXT3仍然快于EXT4,但優勢不是很明顯,這一次XFS再次排在末尾,倒數第二名的EXT4也比它快2.5倍。

圖 4 FS-Mark 4個線程測試5000個1MB大小的文件
這一次我們將文件數量增大到5000個,開啟了4個線程,Btrfs再次勝出,但這次EXT4上升到了第二名,不過Btrfs比它仍然要快出24%,排在最后的仍然是XFS。

圖 5 FS-Mark測試4000個1MB大小的文件,32個子目錄
我們最后的FS-Mark測試中,將4000個1MB大小的文件放入32個子目錄,這次EXT3勝出,而EXT4則墊底,XFS這次則一反頹勢,上升到了第二,一向表現優秀的Btrfs這次只落得個第三的名次。
#p#
文檔服務器性能測試Dbench

圖 6 Dbench測試結果
接下來我們執行了Dbench測試,客戶端數量從1,6,12,48到128個,當只有1個客戶端時,XFS的速度是最快的,但客戶端達到128個時,XFS變成最慢的了,而Btrfs則完全相反,一開始是最慢的,客戶端數量越多越快,到128個客戶端時,Btrfs僅僅次于EXT4,排在第二位,排在第一位的EXT4也是剛開始客戶端數量少時速度慢,客戶端升至6個時,就超過了其它文件系統,到48個客戶端時,達到峰值,雖然到128個客戶端性能有所下降,但仍然保持著第一的位置。
讀寫性能測試IOzone

圖 7 IOzone寫入測試結果
在IOzone測試中,我們先從8GB寫入測試開始,我們使用了4Kb,64Kb和1MB記錄大小的測試結果加以對比,當記錄大小為4Kb時,XFS最快,在64Kb時,XFS接近EXT4的速度,但到了1MB時,EXT4就全面超越了XFS,在這一輪測試中一直墊底的是Btrfs。

圖 8 IOzone讀取測試結果
接下來我們執行了IOzone讀取測試,這次EXT4勝出,排在其后分別是XFS,Btrfs,EXT3,在磁盤讀取速度方面EXT4比Btrfs快將近20%。
#p#
文件創建和刪除測試PostMark

圖 9 PostMark測試結果
執行PostMark測試的結果表明,EXT4仍然是最快的,每秒處理2881個事務請求,Btrfs的成績是2467,緊隨其后的XFS,排名墊底的則是EXT3,僅僅只有954。
并發數據庫會話性能測試

圖 10 PostgreSQL pgbench測試結果
在PostgreSQL測試中,EXT4再次勝出,XFS和EXT3都表現不錯,唯獨Btrfs太讓人失望,每秒只能處理69個事務請求,與排名第一的EXT4 881個事務請求形成了巨大的差距。

圖 11 SQLite測試結果
在SQLite測試中,Btrfs再次墊底(注意測試結果越小越好),在上一個數據庫測試中,表現不錯的EXT3超過了EXT4,速度幾乎相差3倍,而XFS和EXT4則基本相當。
解壓性能測試

圖 12 Unpacking測試結果
接下來的測試是解壓linux-2.6.32.tar.bz2源代碼包,EXT4的解壓時間最短,緊隨其后的是Btrfs和EXT3,XFS再次墊底。
線程IO測試

圖 13 Threaded I/O Tester測試結果
我們最后一個測試是Threaded I/O Tester,我們開啟了16個線程執行隨機寫入測試,每線程寫入64MB數據,在這一輪測試中,Btrfs再次以絕對優勢奪得桂冠,幾乎是排名第二的EXT4的速度的10倍。
結論
在這些測試中,EXT4的表現最為突出,但Btrfs在諸如Compile Bench,FS-Mark等測試中表現也不賴,雖然EXT3風頭不再,但在某些測試中仍然表現得非常優秀。在選擇文件系統時,速度不應該是決策的唯一因素。
原文:File-System Benchmarks With The Linux 2.6.34 Kernel 作者:Michael Larabel
【編輯推薦】




















