Benchmarking ZFS On FreeBSD vs. EXT4 & Btrfs On Linux

Written by Michael Larabel in Software on 27 July 2010 at 07:00 AM EDT. Page 1 of 4. 237 Comments.

ZFS is often looked upon as an advanced, superior file-system and one of the strong points of the Solaris/OpenSolaris platform while most feel that only recently has Linux been able to catch-up on the file-system front with EXT4 and the still-experimental Btrfs. ZFS is copy-on-write, self-healing with 256-bit checksums, supports compression, online pool growth, scales much better than the UFS file-system commonly used on BSD operating systems, supports snapshots, supports deduplication, and the list goes on for the features of this file-system developed by Sun Microsystems. In this article we are seeing how well the performance of the ZFS file-system under PC-BSD/FreeBSD 8.1 stacks up to UFS (including UFS+J and UFS+S) and on the Linux side with EXT4 and Btrfs.

The first bits of the Sun ZFS benchmarks were shared yesterday when publishing the ZFS on FreeBSD's new CAM-based ATA infrastructure results (all of these test results in this article are also using CAM-ATA to take advantage of modern Serial ATA drive features). Again, the test system was a Lenovo ThinkPad T61 notebook with an Intel Core 2 Duo T9300 (Penryn) processor, 4GB of system memory, a 100GB Hitachi HTS72201 7200RPM Serial ATA 2.0 hard drive, and a NVIDIA Quadro NVS 140M graphics processor. The ZFS support within FreeBSD had improved greatly with FreeBSD 8.0 and then further matured with the FreeBSD 8.1 kernel. The FreeBSD installer does not support installing to a root ZFS file-system (other manual steps need to be taken to install to ZFS) at this time, but fortunately the PC-BSD installer does and with PC-BSD 8.1 doing ZFS installations works out quite well. The software stack being tested consists of the FreeBSD 8.1-RELEASE x86_64 kernel, KDE 4.4.5, X.Org Server 1.7.5, and GCC 4.2.1.

The root ZFS file-system was installed using a basic pool and UFS+J and UFS+S (the PC-BSD default file-system) were all tested with their stock settings when performing a clean installation. After testing the three file-systems on PC-BSD 8.1, an Ubuntu 10.10 development snapshot was installed, which supports installing to Btrfs, so we tested EXT4 and Btrfs root file-systems atop the Linux 2.6.35 kernel.

Our tests that were run via the Phoronix Test Suite included Gzip compression, Compile Bench, PostMark, Unpack-Linux, and the Threaded I/O Tester.

ZFS vs. EXT4, Btrfs Linux Benchmarks

Starting with the Gzip compression test, both EXT4 and Btrfs were noticeably faster than UFS+J and UFS+S. The two tested UFS configurations both took 27 seconds to compress a 2GB file while EXT4 and Btrfs both took just 18 seconds atop the same hardware. Meanwhile, the ZFS file-system was actually the slowest with a time of 34 seconds.

With the initial create test in the compile benchmark, the performance of ZFS was over 3.5x faster than the common BSD UFS+J/UFS+S file-systems. However, the performance of ZFS on FreeBSD/PC-BSD 8.1 fell slightly short of the Linux file-system performance. EXT4 had the best speed at 58MB/s while Btrfs came in slightly behind that at 52MB/s and then ZFS came in at 46MB/s.

When running PostMark, ZFS came out far ahead of the UFS file-systems being more than ten times faster than UFS+S and more than four times faster than UFS+J. However, EXT4 on Linux was four times faster than ZFS v14 on BSD. Btrfs was three times faster than ZFS.


Related Articles