Re: Slow SMB performance over GVFS



On Tue 15 Oct 2013 18:09:52 EST, Ross Lagerwall wrote:
On Mon, Oct 07, 2013 at 08:44:27PM +1100, Will Rouesnel wrote:
Rsync -W over SSH manages a good 50 - 100 MB/s no problems (accounting
for things getting cached on successive runs). This is still the top
performer - once the cache is warmed, it'll saturate the line.

GVFS over Samba manages 20-50mb/s tops.

GVFS over SFTP manages 33 mb/s very consistently - probably being
limited by SSH interaction though based on the rsync result it should be
faster.

A CIFS mount with default settings seems odd: rsync -W manages about
50mb/s, copying with Nemo cuts that down to 1-2 MB/s somehow.

Conversely, rsync -W using the GVFS mount is also only about 1-2 MB/s.

Using dd if=file | pv -B 10485760 | dd of=mount on the CIFS mount seemed
to give the best performance with CIFS - 70-80mb/s, bursting up to 100
quite easily. The big buffer size in pv seemed to help a lot, since
performance wasn't great with a smaller buffer.

The same command on a GVFS share still chugged at 1.6 mb/s.

Looking at the numbers, there might just be an issue with Samba -> Samba
communication on my network since CIFS and GVFS seem to maintain about
the same maximum throughput with their own commands. Though why Windows
-> Linux can manage much higher speeds is still a mystery.

I guess that still makes the big problem that block level commands are
so slow on GVFS, since my initial usage and frustration was pointing a
block-level app at a GVFS share and getting only 7-8 mb/s performance,
whereas to my hard drive I got 25-30mb/s (in this case, ripping a blu-ray).

If you have time, you could try GVFS from git.  It has a patch to
improve the performance of writes to fuse mounts:

commit 8835238a5d0049e7639f792bf82d2105ad54cc11
Author: Ross Lagerwall <rosslagerwall gmail com>
Date:   Tue Oct 8 08:21:47 2013 +0200

    fuse: Use the big_writes option to speed up writes

    Without the big_writes option, fuse uses a block size of 4096 bytes
    which results in poor write performance.  So use the big_writes
    option to write blocks up to 64KiB in size.

    https://bugzilla.gnome.org/show_bug.cgi?id=652540


I'll get that installed - it might be the magic thing that's missing. 
Thanks!


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