[SCM] Samba Shared Repository - branch v3-2-test updated - initial-v3-2-test-2626-g719527f

David Collier-Brown davecb at sun.com
Fri Feb 29 22:17:17 GMT 2008



Volker Lendecke wrote:
> On Fri, Feb 29, 2008 at 01:44:25PM -0500, David Collier-Brown wrote:
> 
>>No, Solaris does read ahead rather enthusiastically: I think three
>>sequential read requests of more than 4KB in total guarantees
>>read-ahead. 
>>
>>Sequential reads of large amounts of data causes larger amounts to
>>be read ahead in, as shown by the experiment, and I/O coalescence
>>seems to cut in around then and make things unexpectedly nice (;-))
>>
>>I *think* Linux around 2.6 shows a similar effect, but the data
>>I have was third-hand and I couldn't prove it. I suspect someone
>>on this list could discover it's speedup  with a similar experiment,
>>and therefor the good buffer-size numbers for it.
> 
> 
> Well, then I don't understand your point. If I get it right
> you first said it's necessary to use huge read syscalls to
> get decent performance. 

Yes, that's right.  When I said "no", I was was answering your 
question about Solaris not doing read-ahead.  That's wasn't
the case, it indeed does do read-ahead.

The experiment showed that the performance varies with the 
total amount of read-ahead, and less measurably, the degree of
coalescence.

>                          The current client/server code
> should be able to do streaming reads without the network
> round-trip overhead, even with, say, 16k pread sizes.

That should be pretty simple to test with the existing code,
just with one experiment: use a 4 MB file and go from 16 KB 
buffers until it stops improving, which used to be around 
4096 KB.  Of course, that will be the answer for the OS used.

> So, do I have to modify the code or not?

I'd say yes, and further that you should make it settable via an
option.  A good default value would be what gives you good 
performance on Linux, and if someone cares to do the experiment
for various OSs, we can simply report that on the wiki.

You can do a valid buffer-size experiment on almost anything that
isn't running another large program at the same time. I can get 
the same shape of curve on a SPARC laptop, with the same inflection
points and only the absolute values on the y-axis different.  Note
the similar curves for both a wide qfs array and a narrow ufs
one in the gifs.

--dave
-- 
David Collier-Brown            | Always do right. This will gratify
Sun Microsystems, Toronto      | some people and astonish the rest
davecb at sun.com                 |                      -- Mark Twain
(905) 943-1983, cell: (647) 833-9377, home off: (416) 223-5943 
(800) 555-9786 x56583, bridge: (877) 385-4099 code: 506 9191#


More information about the samba-technical mailing list