Btrfs Benchmarks: Btrfs Is Not Yet The Performance King
With the release this week of Fedora 11 Preview, which incorporates install-time support for the Btrfs file-system into Red Hat's Anaconda installer, we have now delivered our first set of benchmark results for this next-generation Linux file-system. Through a horde of disk tests we have looked at the Btrfs file-system performance and compared it to that of EXT3, EXT4, and XFS. While Btrfs does perform well in some areas, it is not yet the performance king for Linux file-systems. As our results show, in some tests it even has a hard time competing with the incremental EXT4 file-system.
While we have talked about the Btrfs file-system before, as a quick primer it was originally developed by Chris Mason at Oracle and was merged into the mainline kernel with Linux 2.6.29. Though present in the mainline kernel, the Btrfs file-system is still undergoing heavy development and its disk format has yet to be finalized. The Btrfs file-system supports writable snapshots, sub-volumes, object-level mirroring and stripping, data checksums, compression, online file-system checking support, and online defragmentation support. With solid-state drives also becoming increasingly common, there is also a SSD-optimized mode for Btrfs that should increase performance. Btrfs is considered a technological step-up from the EXT4 file-system and a competitor to Sun's ZFS file-system, which soon may actually be owned by Oracle.
For our Btrfs benchmarking we used an Intel Core i7 processor running at 3.60GHz, an ASRock X58 SuperComputer motherboard, 3GB of DDR3 memory, a NVIDIA GeForce 9800GTX graphics card, and a Seagate ST3320620AS SATA 2.0 hard drive. On the software side was Fedora 11 Preview with the Linux 2.6.29 kernel, GNOME 2.26.1, X Server 1.6.1, xf86-video-nouveau 0.0.10, Mesa 7.5, and GCC 4.4.0.
When benchmarking XFS, EXT3, EXT4, and Btrfs each time we did a clean DVD installation with a 200MB /boot partition formatted to EXT3, a 4.9GB SWAP partition, and the / partition occupied the remainder of the 320GB Serial ATA 2.0 disk and was formatted to the file-system being tested at the time. For those looking to try out the Btrfs file-system in Fedora, the icantbelieveitsnotbtr option needs to be passed to Anaconda at boot-time followed by manually partitioning the drive.
All testing was done through the Phoronix Test Suite with a Git snapshot of 2.0 Sandtorg as of 2009-04-29. During testing Fedora 11 Preview was left with its stock settings, including the file-systems with their standard mount options. The tests we ran on each of the file-systems included Parallel BZIP2 compression, LZMA compression, LAME MP3 encoding, FFmpeg encoding, GnuPG encryption, Bork file encryption, IOzone, and Dbench. We also looked at the boot performance with the different file-systems, with those results being available on the next page.