[jcifs] Speed please..

Christopher R. Hertel crh at ubiqx.mn.org
Tue Oct 3 17:39:43 GMT 2006


Michael B Allen wrote:
> Buffer sizes can have a great impact here. If the buffer size is such that
> you read a full buffer and then another with 10 bytes, you're basically
> doing two round trips for one buffer full. By default use big buffers
> (16K looks fine though). Otherwise break out Ethereal and use the
> different time display and sorting options to see where the latency is.

Absolutely.  Smaller buffers multiply the latency effect for exactly the
reasons you describe.

> Mike
> 
> On Tue, 03 Oct 2006 11:12:03 -0500
> "Christopher R. Hertel" <crh at ubiqx.mn.org> wrote:
> 
>> Patrick,
>>
>> Mike will have the real-world answers; I'm mostly the theory guy.  What I
>> can add to this discussion, however, is provide some background based on
>> some work I've done on CIFS over WAN links.
>>
>> There are a few key factors that limit CIFS I/O speed over WAN links.  The
>> one that is probably impacting you is that CIFS is basically a
>> request/response protocol.  The client sends a request, and the server
>> processes the request and sends a response.  Because of this highly serial
>> behavior, CIFS is very sensitive to network latency and jitter.
>>
>> I'd suggest grabbing two packet captures, transferring the same file via the
>> local LAN and via the I'net.  Compare the size of the I/O messages and the
>> round trip times of each client request.  My *guess* is:
>>
>> - The round-trip times will be much longer for the Internet messages.
>> - The message sizes will be the same (since jCIFS is nicely consistent).
>>
>> Let us know what you find.  I'd be surprised and interested if my guesses
>> are wrong... but it won't be the first time.  :)
>>
>> Chris -)-----
>>
>> Patrick Cerri wrote:
>>> Hi Mike,
>>>  
>>> Just downloaded latest version and Socket Bind issue resolved.. cool.
>>>  
>>> Please can you now help me find out why the most I can download of an
>>> online samba server is 1Mbps - 3Mbps ?
>>>  
>>> On the internal work network I get ridiculously fast speeds using JCIFS,
>>> it's only when going over the internet.
>>>  
>>> It's basically 10% of the overall speed of the line..
>>>  
>>> I have played with the settings at both the client and server ends.
>>>  
>>> I have setup an example - the username and password are valid for now...
>>>  
>>> You can test this file - its 10MB.
>>>  
>>> The most I can get is 3.2 Mbps, but my actual connection is 24Mbps...
>>>  
>>> I can download at those speeds over HTTP on the same server.
>>>  
>>> public static void main( String[] argv ) {
>>>         try {
>>>             SmbFile sb                  = new
>>> SmbFile("smb://yoyo:yoyoyoyo@88.208.201.61/homes/home/wrong.mov");
>>>             SmbFileInputStream in = new SmbFileInputStream(sb);
>>>
>>>             int c;
>>>             long counter = 0;
>>>             byte[] buf = new byte[16384];
>>>             long timenow = System.currentTimeMillis();
>>>             while ((c = in.read(buf)) > 0){
>>>                 counter     += c;
>>>                 long time   = System.currentTimeMillis()+1;
>>>                 int tsecs   = (int)(time - timenow) / 1000;
>>>                 float speed = ((float)counter / 100000) / tsecs;
>>>                 System.out.println("Read : "+counter+" in "+tsecs+" secs
>>> @ ~"+speed+" Mbps");
>>>             }
>>>         } catch (MalformedURLException ex) {
>>>             ex.printStackTrace();
>>>         } catch (SmbException ex) {
>>>             ex.printStackTrace();
>>>         } catch (UnknownHostException ex) {
>>>             ex.printStackTrace();
>>>         } catch (IOException ex) {
>>>             ex.printStackTrace();
>>>         }  
>>>     }
>>>  
>>>  
>>> Please - any help appreciated.
>>>  
>>> paddy.
>>>  
>>>  
>>>  
>>>  
>> -- 
>> "Implementing CIFS - the Common Internet FileSystem" ISBN: 013047116X
>> Samba Team -- http://www.samba.org/     -)-----   Christopher R. Hertel
>> jCIFS Team -- http://jcifs.samba.org/   -)-----   ubiqx development, uninq.
>> ubiqx Team -- http://www.ubiqx.org/     -)-----   crh at ubiqx.mn.org
>> OnLineBook -- http://ubiqx.org/cifs/    -)-----   crh at ubiqx.org
>>
> 
> 

-- 
"Implementing CIFS - the Common Internet FileSystem" ISBN: 013047116X
Samba Team -- http://www.samba.org/     -)-----   Christopher R. Hertel
jCIFS Team -- http://jcifs.samba.org/   -)-----   ubiqx development, uninq.
ubiqx Team -- http://www.ubiqx.org/     -)-----   crh at ubiqx.mn.org
OnLineBook -- http://ubiqx.org/cifs/    -)-----   crh at ubiqx.org


More information about the jcifs mailing list