Bcachefs Boasts Hefty Optimization For Linux 6.8: 4k MT Random Writes Jump ~30%
Following the Bcachefs file-system having finally been upstreamed in the Linux 6.7 kernel, with the Linux 6.8 merge window now ticking the file-system's lead developer Kent Overstreet has submitted a set of feature additions and performance optimizations to this copy-on-write (CoW) file-system.
For the second kernel cycle with Bcachefs mainlined, this set of updates is rather heavy. Exciting me the most is a rewrite of the Btracee write buffer code. Overstreet explained that the rework lowers the number of atomic operations on shared cachelines in the transaction commit path. This has the potential of significantly improving the Bcachefs file-system performance in some workloads.
Kent noted in the pull request that the rewrite in his tests is yielding the multi-threaded 4K random write performance to jump from ~650k IOPS to around ~850k IOPS, or roughly 30% higher throughput. It will be fun to benchmark Bcachefs on Linux 6.8 to see how much the performance improves more broadly and now how Bcachefs compares to other Linux file-systems, compared to my earlier benchmark numbers.
Bcachefs for Linux 6.8 also delivers optimistic spinning for six locks, a new ioctl for new data types, an ioctl for running the kernel fsck implementation without mounting, a new ioctl for online fsck, and various other feature changes. Plus there are said to be numerous bug fixes.
See this pull request for all of the Bcachefs changes ready to go with Linux 6.8. I'll deliver some fresh Bcachefs benchmarks later this cycle.
For the second kernel cycle with Bcachefs mainlined, this set of updates is rather heavy. Exciting me the most is a rewrite of the Btracee write buffer code. Overstreet explained that the rework lowers the number of atomic operations on shared cachelines in the transaction commit path. This has the potential of significantly improving the Bcachefs file-system performance in some workloads.
Kent noted in the pull request that the rewrite in his tests is yielding the multi-threaded 4K random write performance to jump from ~650k IOPS to around ~850k IOPS, or roughly 30% higher throughput. It will be fun to benchmark Bcachefs on Linux 6.8 to see how much the performance improves more broadly and now how Bcachefs compares to other Linux file-systems, compared to my earlier benchmark numbers.
Bcachefs for Linux 6.8 also delivers optimistic spinning for six locks, a new ioctl for new data types, an ioctl for running the kernel fsck implementation without mounting, a new ioctl for online fsck, and various other feature changes. Plus there are said to be numerous bug fixes.
See this pull request for all of the Bcachefs changes ready to go with Linux 6.8. I'll deliver some fresh Bcachefs benchmarks later this cycle.
36 Comments