Btrfs v0.19 Brings Some Gains, Some Losses
Since we began benchmarking Btrfs a few months ago we have found it to not deliver any spectacular file-system performance results on Linux. This next-generation Linux file-system that has often been compared to Sun's ZFS has not really performed that well, granted it's still very much under development. Btrfs is far from being the performance king and even its SSD mode has had little positive effect. Just weeks ago we delivered EXT4, Btrfs, and NILFS2 benchmarks, but now there is a new release of Btrfs available. Committed to the Linux 2.6.31 kernel was Btrfs v0.19. Does this release bring any performance improvements? Yes and no.
The Btrfs v0.19 notes mention, "In general, v0.19 is a dramatic speed improvement over v0.18 in almost every workload." One of the key changes in this new development release is the file-system has changed the way that extent back references are recorded, and this new way should be significantly more efficient. As a sign that this new file-system is still not yet stabilized, there is a forward-rolling format change where kernels using the older version of Btrfs will be unable to read partitions created under this newer version of Btrfs. Btrfs v0.19 is the first major update to this open-source file-system since January when Btrfs v0.18 was merged into the mainline kernel. This new version is available beginning with Linux 2.6.31-rc1. For our testing we were using Btrfs with the Linux 2.6.31-rc2 kernel, which was the latest release at the time of conducting these tests. With the new kernel we also used version 0.19 of the btrfs tools.
Our test system was made up of an Intel Core 2 Duo E8400 CPU running at 4.00GHz, an ASUS P5E64 WS Professional, 2GB of DDR3 memory, and a NVIDIA GeForce 9800GT graphics card. The primary hard drive in this system was a 160GB Western Digital WD1600JS-00M SATA HDD that was formatted to EXT4 and hosted the Ubuntu 9.10 development installation. The drive, however, where all of the tests were run from was a 16GB Super Talent STT_FTM16GL25H. A review on the Super Talent MasterDrive OX SATA 2.0 SSD is available at Phoronix.
On the software side we were using an Ubuntu 9.10 snapshot with GNOME 2.27.3, X Server 1.6.2 RC1, xf86-video-nv 2.1.13, and GCC 4.4.0. When testing out Btrfs v0.18 we were using the Linux 2.6.30 final kernel while during our Btrfs v0.19 testing we switched to using Linux 2.6.31-rc2.
All tests were managed through the Phoronix Test Suite and they consisted of Parallel BZIP2 Compression, Bork File Encrypter, IOzone, Threaded I/O Tester, and PostMark. During testing the OS and file-systems were left with their stock settings.