EXT3 vs EXT4 vs XFS vs BTRFS filesystem comparison on Fedora 18
Sysbench file tests
Benchmark profile: - sequential test: 1 thread / 16 files 64 MB each / 2 MB block size - random test: 1 thread / 16 files 64 MB each / 4 KB block size
Its now the turn of another synthetic benchmark: sysbench. It enable us to measure filesystem performance with sequential and random patterns and with normal (cached) or direct (not-cached) operations.
In sequential tests all filesytems behave more or less the same: this is expected, as these values depend primarily on the disk hardware subsystem. However, we can see that with synchronized writes (using fsync) BTRFS is somewhat slower then EXT3/4 and XFS.
Random I/O sysbench results always puzzled me a bit: it is clearly impossible to obtain over 13 MB/s with a mechanical disk and a truly randomic pattern. Anyway, we must score a point for XFS and BTRFS random read performance. Even their (much more realistic) random write speed is higher then EXT3 and EXT4.
Let see something about direct I/O performances. Sequential first...
… and then random:
If in the sequential direct I/O benchmark we don't see many differences relative to normal, cached I/O, in the random direct I/O test we see some variance. In detail, BTRFS is the fastest when reading, while XFS is the write champion.
Comments
It would be very interesting for future tests, how ZFS on Linux performs. Especially, after it has become "productive" some weeks ago.
this is surely a good idea ;)
I will investigate this possibility for the next review.
Regards.
You don't need to set the entire filesystem to be non COW, only the directory and files that need it (chattr -C flag).
Hi Ivan,
you are right. Anyway, I benchmarked BTRFS even with disabled CoW and found that, for virtual machines at least, it performs noticeably worse than a traditional filesystem as EXT4.
You can read more here:
http://www.ilsistemista.net/index.php/linux-a-unix/36-btrfs-mount-options-and-virtual-machines-an-in-depth-look.html
The only catch is that both tests are somewhat old now, being performed on Fedora 17 and 18. I should really see if with newer kernels BTRFS performances are better now.
But I have so little time ;)
RSS feed for comments to this post