BTRFS vs EXT3 vs EXT4 vs XFS performance on Fedora 17

Written by Gionatan Danti on . Posted in Linux & Unix

User Rating:  / 19

Bonnie++ file operations speed

Bonnie++ enable us to test not only raw read/write speed, but file operations performance also. So, what is the faster filesystem in managing large amount of small files?

 BTRFS EXT3 EXT4 XFS: Bonnie++ file creation deletion speed

In classical mode (using the page cache and without forced sync) we see that ext3 and ext4 are the leaders, with btrfs firmly at third place but using way more CPU than the others when dealing with file deletions. XFS is the slower here but, thank to the much-needed metadata handling optimizations that found their way into previous kernel releases, it retain adequate speed.

BTRFS EXT3 EXT4 XFS: Bonnie++ synchronized file creation deletion speed

Synching each operation led us to very different results: all filesystem had massive performance hit, and the faster is xfs now. Btrfs results are quite peculiar: it is the slower of the pack when creating files, but it is way faster in file deletion where it behaves as in no-sync mode. Evidently file deletion is a very fast operation on btrfs. What about creating/deleting file using direct mode (without host side page cache)?

 BTRFS EXT3 EXT4 XFS: Bonnie++ direct file creation deletion speed

The results closely mirror what we saw in the normal, cache-friendly mode.

BTRFS EXT3 EXT4 XFS: Bonnie++ synchronized direct file creation deletion speed

The same thing can be said for direct + synch files creation and deletion. Again, note the very high BTRFS deletion speed.

These similar results are somewhat expected: files creation and deletion are two metadata-intensive operations, only slightly affected by the access mode (direct vs cache-based).


#1 Roger 2012-06-20 00:40
Could you share with us the mount options used to mount the file systems for these benchmarks?
#2 Gionatan Danti 2012-06-20 08:00
Hi Roger,
apart the write barriers option (which was manually enabled on all filesystems, ext3 included) I left the default mount options at their default settings.

To tell the truth, Fedora enable barriers by default on ext3 also; however, this is a Fedora-specific change that not all distributions followed (apart SuSe, I think).

The rationale behind this decision to not mess with mount options is that, as default settings are the most used settings, they _must_ be adequate; the failure to set them to reasonable default will affect many users.

On the other hand, write barriers should really be enabled to do an apple-to-apple comparison, so it is the only option I wish to manually enable.

#3 Oliver 2012-07-15 14:57
From official fedora documentation, Fedora 17 features the 3.3.4 Linux kernel [1].

However, I read on the first page of this article [2] the use of Fedora 17 3.4.x kernel branch.

I may be wrong (I do not use Fedora) but please explain where have you find this Linux kernel version within Fedora 17.

PS: I like article of this high quality, thanks ;)


#4 Gionatan Danti 2012-07-15 16:39
Hi Oliver,
you are right: F17 base image ships with kernel version 3.3.x.

However, a yum update resulted in kernel 3.4.x being installed, so I tested with this updated kernel release.

See here also:

#5 Oliver 2012-07-15 22:44

OK I see "F16 and F17 will be rebased around the time 3.4.1 is released" on the bottom of the page.

You have no rights to post comments