Filesystem performance of ext4, xfs, btrfs + raid 0

Four cases for testing

  • mdadm RAID0 + EXT4
  • mdadm RAID0 + XFS
  • mdadm RAID0 + BTRFS
  • native BTRFS RAID0

Setup

  • CPU: Intel i7 11700
  • MB: Asus Z590-F
  • RAM: 64GB 3733MHz
  • SSD: 2x Intel P4610
  • OS: Ubuntu 20.04

Plotting

MadMax (2a5f38c)
Number of Threads: 16
Number of Buckets P1:    2^9 (512)
Number of Buckets P3+P4: 2^9 (512)
Working Directory:   /temporary/temp1/
Working Directory 2: /temporary/temp2/
Final Directory: /temporary/

Testing

mdadm RAID0 + EXT4

Tune: journaling disabled
Mount additional options: lazytime

Phase 1 took 883.172 sec
Phase 2 took 499.953 sec
Phase 3 took 480.586 sec
Phase 4 took 44.6968 sec
Total plot creation time was 1908.46 sec (31.8076 min)

mdadm RAID0 + XFS

Tune: formatted with -m crc=0 (checksum disabled)
Mount additional options: noatime, nodiratime, discard

Phase 1 took 871.329 sec
Phase 2 took 493.869 sec
Phase 3 took 472.896 sec
Phase 4 took 44.6737 sec
Total plot creation time was 1882.8 sec (31.3801 min)

mdadm RAID0 + BTRFS

Mount additional options: nodatacow, nodatasum, discard, noatime, nodiratime

Phase 1 took 857.22 sec
Phase 2 took 464.217 sec
Phase 3 took 442.978 sec
Phase 4 took 36.8831 sec
Total plot creation time was 1801.33 sec (30.0222 min)

BTRFS native RAID0

Mount additional options: nodatacow, nodatasum, discard, noatime, nodiratime

Phase 1 took 858.373 sec
Phase 2 took 468.001 sec
Phase 3 took 444.035 sec
Phase 4 took 36.9981 sec
Total plot creation time was 1807.44 sec (30.124 min)

Conclusions

BTRFS wins the race!
And I would prefer mdadm + btrfs as much more transparent managing than btrfs native raid.

3 Likes

This is good info. Any thoughts on using tmpfs?

Thanks!

Yes. Need more ram :grimacing: