Large HDD/SSD Linux 2.6.38 File-System Comparison: EXT3, EXT4, Btrfs, XFS, JFS, ReiserFS, NILFS2

Written by Michael Larabel in Software on 9 March 2011 at 10:55 AM EST. Page 1 of 5. 65 Comments.

Here are the results from our largest Linux file-system comparison to date. Using the soon-to-be-released Linux 2.6.38 kernel, on a SATA hard drive and solid-state drive, we benchmarked seven file-systems on each drive with the latest kernel code as of this past weekend. The tested file-systems include EXT3, EXT4, Btrfs, XFS, JFS, ReiserFS, and NILFS2.

The test system was an AMD Phenom 9500 quad-core clocked at 2.20GHz, ECS A790GXM-A motherboard, 4GB of DDR3 system memory, and a NVIDIA GeForce GT 220 graphics card. The operating system was Ubuntu 10.10 with the GNOME 2.32.0 desktop, X.Org Server 1.9.0, and GCC 4.4.5. This was a stock operating system configuration aside from upgrading to the Linux 2.6.38 kernel from the Ubuntu mainline PPA as of 2011-03-06.

The hard drive tested was a Seagate Barracuda ST3250310AS 7200.10 that has a 250GB storage capacity, Serial ATA 2.0 interface, 7200RPM, and 8MB of cache. The solid-state drive was a SATA 2.0 OCZ Agility 64GB drive.

The software was benchmarked at their defaults, including their default mount options. These mount options include:

Btrfs: rw,relatime [ssd is also added automatically for solid-state drives]
EXT3: rw,relatime,errors=continue,barrier=0,data=ordered
EXT4: rw,relatime,barrier=1,data=ordered
JFS: rw,relatime
NILFS2: rw,relatime
ReiserFS: rw,relatime
XFS: rw,relatime,attr2,noquota

While we have done various file-system comparisons like DragonflyBSD's HAMMER vs. Btrfs vs. ZFS, Btrfs and EXT4 on the Linux 2.6.37 kernel, and many other comparisons in the past, this is our largest file-system comparison to date looking at seven file-systems under a solid-state drive and hard disk drive. Reiser4 has been benchmarked before and ZFS on Linux has been benchmarked too (using the LLNL/KQ ZFS module), but ZFS and Reiser4 were left out of this article as neither are living in the mainline Linux kernel tree at this time and the file-system comparison had to be limited at some point. The file-systems to test were also based upon Twitter feedback (@MichaelLarabel for Phoronix test requests, but also follow @Phoronix).

Via Phoronix Test Suite 3.0-Iveland and OpenBenchmarking.org, the PostgreSQL, SQLite, PostMark, IOzone, Dbench, Flexible I/O Tester, Threaded I/O Tester, FS-Mark, and AIO-Stress test profiles were used.

Related Articles