BTRFS vs EXT3 vs EXT4 vs XFS performance on Fedora 17

Written by Gionatan Danti on . Posted in Linux & Unix

User Rating:  / 19

Mysql performance

Ok, it is now time to test some real-world applications. The first on the list is the mysql database system, benchmarked using Sysbench mysql test module.

Lets see how much time each filesystem requires to create a 100K rows test database:

BTRFS EXT3 EXT4 XFS: Sysbench mysql prepare time

All filesystems perform similarly here. What happen if we begin to hammer the database with thousand of read (select) requests?

BTRFS EXT3 EXT4 XFS: Sysbench mysql simple benchmark

Again, all filesystems perform more or less the same. What about the much more intensive, read-write transactional test?

BTRFS EXT3 EXT4 XFS: Sysbench mysql complex benchmark

BTRFS is quite slow here.

From Sysbench tests, it seems that, apart btrfs, all filesystems will be valid choices for mysql workloads. Will the integrated mysql-bench benchmark confirm this statement?

BTRFS EXT3 EXT4 XFS: Mysql-bench

Yes: while XFS seems a little slower then ext3/4, the difference is quite narrow. On the other side, BTRFS is considerably slower then the others.

So, in the end, the real lesson here is that btrfs should be avoided in write-intensive mysql workloads.


#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