Testing Out The SSD Mode In Btrfs
One month ago we provided benchmarks of the Btrfs file-system and found that while it contained many features to make it a next-generation Linux file-system, its disk performance was rather displeasing. We had found the EXT4 file-system ran faster in a number of the tests and even EXT3 and XFS had their own advantages. Besides offering features like snapshots and online defragmentation, Btrfs has a mode that is optimized for solid-state drives. Will the Btrfs SSD mode cause this new Oracle-sponsored file-system to be the best for non-rotating media? We have benchmarks in this article, but the results may not be what one would expect.
In Btrfs there the solid-state drive mode can be enabled by using the -o ssd mount option or adding ssd to the /etc/fstab. Enabling this option will tune the Btrfs allocator for SSD usage, which is then designed to improve performance with this file-system still undergoing development. However, unless disabling the write cache for the drive, the SSD mode does not necessarily mean better performance. In fact, as our results are about to show, the quantitative disk performance can drop greatly in the SSD mode when the write cache remains enabled. However, not all write caches can be easily disabled right now under Linux. With the OCZ Vertex SATA 2.0 SSD, which we used for this testing today, had its write caching always enabled. When attempting to disable the write cache through hdparm it would remain enabled regardless and when using sdparm it would report change_mode_page: failed setting page: Caching (SBC).
The test system for this article included an Intel Core 2 Duo E8400 clocked at 4.00GHz, an ASUS P5E64 WS Professional motherboard, 2GB of OCZ DDR3-1333MHz system memory, an OCZ 64GB Vertex (v1.10 firmware) Serial ATA 2.0 SSD, and a NVIDIA GeForce 9500GT graphics card. On the software side was Fedora 11 with all Rawhide updates as of the 28th of May, 2009. The kernel was Linux 126.96.36.199, GNOME 2.26.1 was the desktop, the X Server was 1.6.2 RC1, xf86-video-nouveau display driver, GCC 4.4.0, and at installation time through Anaconda we setup the drive to using Btrfs.
We used the Phoronix Test Suite for running our filesystem test suite, which consisted of LZMA compression, GnuPG, Bork file encryption, SQLite, Apache Benchmark, IOzone, Flexible IO Tester, and the Threaded I/O Tester. Being unable to successfully disable the write cache on the OCZ Vertex SSD, for this brief look at the solid-state drive performance mode for Btrfs we simply compared the disk performance when btrfs was mounted with the defaults and then with the ssd option appended. We will be back soon with results from other drives where the write cache can be properly disabled.