FUSE To Get Better Write Performance With Linux 3.15
![LINUX KERNEL](/assets/categories/linuxkernel.webp)
The FUSE pull request was just submitted a few minutes ago for Linux 3.15. The major change with the 3.15 updates for FUSE is cached writeback support, which will improve the write throughput for these file-systems implemented in user-space. Details can be found via the mailing list pull request.
Developers have been working on write-back cache support for quite some time and with earlier patches it was found that FUSE file-systems are noticeably faster when writing huge files on systems with limited amounts of RAM. Here's some more details on the work as explained by Maxim Patlasov at Parallels:
One of the problems with the existing FUSE implementation is that it uses the write-through cache policy which results in performance problems on certain workloads. E.g. when copying a big file into a FUSE file the cp pushes every 128k to the userspace synchronously. This becomes a problem when the userspace back-end uses networking for storing the data.
A good solution of this is switching the FUSE page cache into a write-back policy. With this file data are pushed to the userspace with big chunks (depending on the dirty memory limits, but this is much more than 128k) which lets the FUSE daemons handle the size updates in a more efficient manner.
...
We are currently exploring this with our own distributed storage implementation which is heavily oriented on storing big blobs of data with extremely rare meta-data updates (virtual machines' and containers' disk images). With the existing cache policy a typical usage scenario -- copying a big VM disk into a cloud -- takes way too much time to proceed, much longer than if it was simply scp-ed over the same network. The write-back policy (as I mentioned) noticeably improves this scenario.
1 Comment