The EXT4 file-system enhancements for Linux 6.17 were merged on Thursday and bring better scalability to the block allocation code as well as fixing the file-system’s large folios support. The scalability work can show some wild gains in select areas.
Baokun Li of Huawei has been pursuing better scalability of the EXT4 block allocation code. With Linux servers continuing to have more CPU cores and more containers being loaded on each server, Huawei began noticing scalability issues within the EXT4 file-system driver code. Profiling showed that there was significant contention within EXT4’s block allocation/free code path leading to significant performance hits when running many containers atop an EXT4 file-system.
But with a set of 18 patches and after going through three rounds of review, the scalability enhancements to the EXT4 block allocation code are now in Linux 6.17. Simply put, the fallocate operations per container per second are able to come up significantly when looking at the upper percentiles:
In addition, there was a significant decrease in file fragmentation at the cost of a minor increase in free space fragmentation.
That block allocation scalability work is the most interesting changes with the EXT4 pull request now merged for Linux 6.17.