FUSE Getting Another Performance Boost In Linux 4.20~5.0
Separate from the recent FUSE performance work talked about for making FUSE faster with the eBPF in-kernel JIT that hasn't been staged for mainlined, "File-Systems in User-Space" are set to see better performance on the next kernel (Linux 4.20~5.0) thanks to other changes.
Already having been queued for this next kernel cycle is copy_file_range support for FUSE to yield more efficient copy operations.
And now is at least one other performance optimization queued for this kernel cycle that will kick off in October. Merged on Tuesday to the FUSE "for-next" tree is this patch:
fuse: Use hash table to link processing request
We noticed the performance bottleneck in FUSE running our Virtuozzo storage over rdma. On some types of workload we observe 20% of times spent in request_find() in profiler. This function is iterating over long requests list, and it scales bad.
The patch introduces hash table to reduce the number of iterations, we do in this function. Hash generating algorithm is taken from hash_add() function, while 256 lines table is used to store pending requests. This fixes problem and improves the performance.
This improvement comes thanks to the engineers at software provider Virtuozzo.
Add A Comment