Bcachefs Linux File-System Benchmarks vs. Btrfs, EXT4, F2FS, XFS
With Bcachefs on its trek towards the mainline Linux kernel, this week I conducted some benchmarks using the very latest Bcachefs file-system code and compared its performance to the mainline Btrfs, EXT4, F2FS, and XFS file-system competitors on both rotating and solid-state storage.
Back when Bcachefs debuted in 2015 I ran some initial file-system benchmarks for this work spawn out of the Bcache block cache kernel code that aims to offer speedy performance while having ZFS/Btrfs-like features. Three years later, Bcachefs is being reviewed for inclusion into the mainline Linux kernel.
Among the features being worked on for Bcachefs include copy-on-write (CoW) functionality, multiple device support, caching, compression, encryption, snapshots, and various other modern file-system features with this project led by Kent Overstreet. Those wishing to learn more about Bcachefs can visit Bcachefs.org.
For this Bcachefs testing I was using the latest bcachefs.git and bcachefs-tools.git as of Monday, 28 May. Currently the work is based against the Linux 4.16.0 kernel. From that kernel deployed on an Ubuntu 18.04 LTS x86_64 server I also tested Btrfs, EXT4, XFS, and F2FS file-systems using out-of-the-box mount settings for each file-system. The I/O scheduler during testing was the default CFQ as with other settings being at their defaults to see how these file-systems compare without any tweaking.
The Bcachefs/Btrfs/EXT4/F2FS/XFS tests were done on both a HDD (well, sans F2FS in that case) and an SSD. The HDD used was a 2TB Seagate Barracuda ST2000DM006-2DM1 SATA 3.0 HDD and a 120GB SATA 3.0 TOSHIBA-TR150 SSD. All of these Linux disk benchmarks were carried out using the open-source Phoronix Test Suite benchmarking software.