Btrfs Enjoys More Performance With Linux 6.3 - Including Some 3~10x Speedups
Btrfs with Linux 6.3 introduces block group allocation class heuristics to pack files by size for helping to avoid fragmentation in block groups. Btrfs with Linux 6.3 also has continued code clean-ups and refactoring around its native RAID5 and RAID6 handling. It was just with Linux 6.2 as well that Btrfs received RAID 5/6 reliability improvements while this code path continues to be enhanced with this follow-on cycle.
The latest Btrfs code also changes where it carries out its check-summing in the I/O path, takes care of a few fixes, and achieves yet more performance optimizations. Some of the performance work is quite juicy as outlined in today's pull request:
- send: cache directory utimes and only emit the command when necessary
- speedup up to 10x
- smaller final stream produced (no redundant utimes commands issued),
- compatibility not affected
- fiemap: skip backref checks for shared leaves
- speedup 3x on sample filesystem with all leaves shared (e.g. on snapshots)
- micro optimized b-tree key lookup, speedup in metadata operations (sample benchmark: fs_mark +10% of files/sec)
More details on all of the Btrfs feature work for Linux 6.3 via this pull request.