fuse: slow cp performance with writeback cache enabled

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I have a fuse filesystem with writeback cache enabled. We noticed a slow down
when copying files to the fuse filesystem using cp. The slowdown seems to
consistently trigger for the first copy but not later ones.

Using passthrough_ll from https://github.com/libfuse/libfuse I was able to
reproduce the issue.

# start the fuse filesystem
$ git clone https://github.com/libfuse/libfuse
$ git checkout fuse-3.16.2
$ meson build && cd build && ninja
$ mkdir /tmp/passthrough
$ ./example/passthrough_ll -o writeback -o debug -f /tmp/passthrough

In another terminal
$ dd if=/dev/urandom of=/tmp/foo bs=1M count=4
# run this multiple times
$ time cp /tmp/foo /tmp/passthrough/tmp/foo2

On my machine the first cp call takes between 0.4s and 1s. Repeated cp calls
take 0.05s. If you wait long enough between attempts cp becomes slow again

The debug logs for the slow runs say that the write size is 32k (or smaller).
The fast runs have write sizes of 1M. strace says cp is doing writes in 128k
blocks.

I think I'm running a kernel based on 6.6.15.

Is this a known issue? Is there any fix for this?




[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [NTFS 3]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [NTFS 3]     [Samba]     [Device Mapper]     [CEPH Development]

  Powered by Linux