Btrfs Did Regress Hard In The Linux 2.6.35 Kernel

Written by Michael Larabel in Linux Storage on 9 August 2010 at 07:49 AM EDT. 17 Comments
LINUX STORAGE
This morning we published benchmarks of ZFS, EXT4, and Btrfs when running these three popular file-systems off a high-performance OCZ Vertex 2 solid-state drive and also a 7200RPM notebook hard drive. To a fair amount of surprise, the EXT4 file-system ended up beating out Btrfs on the SSD in a number of tests, which was a change from our tests when using the EXT4/Btrfs modules on previous kernels. It was even more surprising since Btrfs has an SSD-optimized mode where as EXT4 does not. However, it turns out this is part of a major performance regression for this file-system in the Linux 2.6.35 kernel.

Over the weekend, another Btrfs tester reported in on regressions that he found where the affect of using the Linux 2.6.35 kernel with this file-system resulted in as much as a 10x performance hit under write-heavy workloads. This 2.6.35 regression was tracked down to this Git commit that was described as "Shrink delayed allocation space in a synchronized manner is more controllable than flushing all delay allocated space in an async thread."

Chris Mason, the Btrfs lead developer, quickly responded that Btrfs is not being aggressive enough in allocating chunks of data, which is making the flusher come in and start data I/O. Chris is now working to reproduce and address this issue. No fix has yet been committed, but it's expected that it will land within the Linux 2.6.36 kernel.

Other users that have been trying Btrfs on Ubuntu 10.10, which adds Btrfs installation support and is using the Linux 2.6.35 kernel, have also been having some troubles. Here's an open bug on Launchpad where carrying out a Btrfs Ubuntu installation takes about two hours to install with the root Btrfs file-system where as on the same system with an EXT4 file-system it takes just about 15 minutes. We can confirm this problem too with Ubuntu 10.10 at present.

It's a pity that our daily Linux kernel performance tracker hadn't caught this regression on the day it was pulled into the Linux kernel, but the Btrfs test system running daily benchmarks of the Linux kernel happened to crash and it's not yet back online. Needless to say, we will have new Btrfs benchmarks once this regression is worked out.
Related News
About The Author
Michael Larabel

Michael Larabel is the principal author of Phoronix.com and founded the site in 2004 with a focus on enriching the Linux hardware experience. Michael has written more than 20,000 articles covering the state of Linux hardware support, Linux performance, graphics drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated benchmarking software. He can be followed via Twitter, LinkedIn, or contacted via MichaelLarabel.com.

Popular News This Week