1.7 KiB
passthrough
In Linux 6.9
a feature was added the ability to do IO "passthrough." Typically
mergerfs
has to act as an active proxy for all read/write
requests. This results in, at times, significant overhead compared to
direct interaction with the underlying filesystems. Not because
mergerfs
is doing anything particularly slow but because the
additional communication and data transfers required. With the
passthrough feature mergerfs
is able to instruct
the kernel to perform reads and writes directly on the underlying
file. Bypassing mergerfs
entirely (for specifically reads and
writes) and thereby providing near native performance.
This performance does come at the cost of some functionality as
mergerfs
no longer has control over reads and writes which means all
features related to read/write are affected.
- moveonenospc: Does not work because errors are
not reported back to
mergerfs
. - nullrw: Since
mergerfs
no longer receives read/write requests there is no read or write to ignore. - readahead: Still affects the
readahead
values of underlying filesystems andmergerfs
itself but no longer relevant tomergerfs
in that it isn't servicing IO requests. - fuse_msg_size: The primary reason to increase
the FUSE message size is to allow transfering more data per request
which helps improve read and write performance. Without read/write
requests being sent to
mergerfs
there is little reason to have larger message sizes since directory reading currently has smaller fixed buffer requirements. - parallel-direct-writes:
- cache.files: