[linux-cifs-client] cifs transferspeed breaks down during upload

James Roper u3205097 at anu.edu.au
Sun Oct 24 00:38:45 GMT 2004


> > When I upload a file it starts with a transferspeed at 3 Mbyte/s.
> > Then it loses the transfer speed slowly during the upload. With a 1
> > GByte file it end
> > up at 800 kByte/s or even less than that which is really slow.
Well, initially the ftp server may accept data at 3mb/s, as it may buffer it 
or something.  This would drop off quickly if the transfer to the smb server 
was slower, but if your ftp client is measuring upload speed using the 
average upload speed, it may take some time for it to appear to slow down.  I 
wouldn't imagine that it would take too long to slow down though.

> > With a smbfs mount the  transfer speed is constant at 4 Mbyte/s .
smbfs may use a larger write size than cifs, or maybe they're even using 
asynchronous message passing.  Currently, cifs can only write 16KB at a time, 
and it does this synchronously.  That means, if your network has a round trip 
time of 20ms, regardless of the bandwidth of the network (even if it was a 
gigabit network), the maximum possible speed you could get out of the cifs 
client is 16kb every 20ms, that is, 800kb/s.  This is going to change though.  
I've implemented an asynchronous read routine, and assuming no one else does 
it, i'll probably do a write one too.  Having implemented this, and some 
other optimisations, hopefully we'll be able to get 80-90% bandwidth 
utilisation, and the round trip time shouldn't have an effect.

Other than that, I have no idea what could be causing the problem.

If you'd like to try out the asynchronous read routine, let me know and I'll 
email you a patch.  I've tested it with 2.6.8, but it's still in it's early 
stages, so if you're in a mission critical environment, i strongly recommend 
you don't use it.

James


More information about the linux-cifs-client mailing list