【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
【编辑推荐】