Btrfs v0.19 Brings Some Gains, Some Losses
Our next set of tests was carried out with the Threaded I/O Tester under the Phoronix Test Suite. When carrying out 32 threads of 64MB writes, the latency was less under Btrfs v0.19 -- 4280 vs. 4853 microseconds.
Similar to witnessing performance drops when switching from write performance to read performance in IOzone, with the Threaded I/O Tester there was a similar encounter. When changing over to 32 threads of 64MB reads, there was a dramatic drop in performance. The latency was at 258 microseconds in Btrfs v0.18, but this skyrocketed to 798.33 microseconds using the newest Btrfs code.
Lastly, with NetApp's PostMark, there were approximately 24% more transactions per second under Btrfs v0.19 with the Linux 2.6.31-rc2 kernel over Btrfs v0.18 with the Linux 2.6.30 kernel.
As we shared early on in this article, the Btrfs v0.19 notes mention, "In general, v0.19 is a dramatic speed improvement over v0.18 in almost every workload." From our Btrfs file-system tests today, this is partially true. We encountered several tests where there were indeed hefty speed-ups in performance with the Serial ATA 2.0 SSD being tested, but in other tests, there was a very evident drop in performance. Specifically, the write performance always seemed to be better, but that was not always the case for the read performance. There was generally a 14~16% drop in performance when this problem occurred. Granted, due to the differing kernels and just not the Btrfs difference, this could be attributed to something else within the Linux kernel, but nevertheless this does show some signs of problems with the newest Linux code.
We will be back with more Linux file-system tests shortly, but in the meantime be sure to try out the Phoronix Test Suite.
If you enjoyed this article consider joining Phoronix Premium to view this site ad-free, multi-page articles on a single page, and other benefits. PayPal or Stripe tips are also graciously accepted. Thanks for your support.