You’ve probably noticed it. You migrate your NAS to ZFS or Btrfs because the internet says it’s the gold standard for data integrity. You set up your pools, take your first snapshot, and feel the warm glow of ultimate resilience. Then, you actually start using it. The system feels sluggish. File transfers stutter. You run a quick benchmark, see the low numbers, and sigh. “I guess ZFS is just slow.”
What if I told you that the benchmark you just ran is fundamentally lying to you? What if the sluggishness you’re feeling isn’t the filesystem’s fault at all?
For years, we’ve been fed a steady diet of classic storage benchmarks. They test sequential reads, sequential writes, and maybe a bit of random I/O if they’re feeling adventurous. But modern copy-on-write (CoW) filesystems like Btrfs, ZFS, and the up-and-coming bcachefs don’t operate in that simple universe. They trade raw speed for data integrity, checksums, and snapshots.
Synthetic benchmarks tell you how fast your disks can spin in a vacuum, not how fast your data survives a server crash.
Bartosz Fenski recently ran a massive benchmark that skips the fluff and tests these filesystems under the brutal, mixed-I/O, snapshot-laden conditions we actually use in production. The results are a massive twist. The biggest performance gap wasn’t between ZFS and Btrfs. It was between md-raid10 and lvm-raid10.
That means the storage stack layer below the filesystem mattered just as much—if not more—than the filesystem itself.
We’ve been prosecuting the wrong suspect for a decade. The filesystem is just the getaway driver; the RAID layer is the one holding the smoking gun.
If you’re one of the thousands of admins who have stuck with ZFS for 15 years because of its peace of mind, but always felt slightly underwhelmed by its performance, you are finally vindicated. Your experience wasn’t a placebo. The benchmarks were just measuring the wrong thing. And if you’ve been watching bcachefs from the sidelines, thinking it looked surprisingly promising—you’re right. Under real-world stress, it’s holding its own beautifully.
Your real-world frustration isn’t a glitch in the matrix; it’s the inevitable result of measuring a battleship with a stopwatch.
Neutrality is death, so let me be clear: Stop trusting simple benchmarks to make your storage decisions. If you’re choosing a filesystem for a server, NAS, or workstation, you need to evaluate performance based on your actual workload. If you run a backup server with heavy snapshots, a synthetic sequential read test is actively dangerous to your decision-making process.
The next time someone tells you ZFS is too slow, or Btrfs is too risky, ask them what layer they’re actually testing. Chances are, they don’t even know.
FAQ
Q: Why do classic benchmarks fail for modern filesystems?
A: Classic benchmarks test simple, sequential workloads in a vacuum. Modern CoW filesystems like ZFS and Btrfs are designed for data integrity, checksums, and snapshots under mixed-I/O conditions—things sequential tests completely ignore.
Q: If ZFS isn't the main bottleneck, what is?
A: Often, it's the RAID layer below the filesystem. The gap between md-raid10 and lvm-raid10 shows that device-mapper behavior can throttle performance just as much as the filesystem's copy-on-write mechanics.
Q: Is bcachefs actually ready to compete with ZFS?
A: Under real-world, metadata-heavy workloads, bcachefs is showing serious promise. While ZFS still wins for absolute peace of mind, bcachefs is proving the synthetic benchmarks that dismissed it were fundamentally flawed.