Linux 5.0 File-System Benchmarks: Btrfs vs. EXT4 vs. F2FS vs. XFS
With all of the major file-systems seeing clean-up work during the Linux 4.21 merge window (now known as Linux 5.0 and particularly with F2FS seeing fixes as a result of it being picked up by Google for support on Pixel devices, I was curious to see how the current popular mainline file-system choices compare for performance. Btrfs, EXT4, F2FS, and XFS were tested on a SATA 3.0 solid-state drive, USB SSD, and an NVMe SSD.
As of the Linux Git state from a few days ago following all of the file-system feature pull requests having been honored, I carried out some initial Linux 4.21/5.0 file-system tests using the three solid-state drive configurations with the four tested file-systems. A daily snapshot of Ubuntu 19.04 Disco Dingo was running on the Threadripper setup while using the Linux Git kernel from the mainline PPA. Btrfs, EXT4, F2FS, and XFS were tested in their out-of-the-box state / default mount options.
The SATA 3.0 SSD drive used was a 250GB Samsung 850 PRO solid-state drive connected both via SATA and then a SATA 3.0 to USB 3.0 adapter. For the NVMe SSD testing, an Intel Optane 900p 280GB was used. Via the Phoronix Test Suite a wide range of Linux storage benchmarks were carried out for this initial Linux 5.0 file-system benchmarking.