systems without pread?

James Peach jpeach at sgi.com
Tue Dec 16 22:30:22 GMT 2003


On Tue, 16 Dec 2003 10:15:05 -0800
Jeremy Allison <jra at samba.org> wrote:

> On Tue, Dec 16, 2003 at 01:19:48PM +1100, James Peach wrote:
> > Hi all,
> > 
> > I have been testing a patch which adds pread/pwrite oerations to the
> > Samba VFS layer and makes exclusive use of them in the file I/O path.
> > The current version emulates p{read,write} using
> > lseek/lseek/{read,write}/lseek if they are absent. So while it is a big
> > performance win for the lucky platforms_with_ those APIs, it does
> > introduce suckage for those without.
>
> Hmmmm. How have you tested this performance win ?

I have a smallish test setup using an Origin 3k server and 4 Origin 300
clients. I'm connecting each client to the server through a different gig-e
NIC and running multiple load generators on each client. I'm gathering
performance numbers using Performance Co-Pilot - these include NIC throughput,
CPU time, samba IOPs per second, and a bunch more stuff.

Despite my previous assurance, I'm not able to publish the full set of
numbers, but here is a small selection that shows the most significant
improvements:

    threads smbd.smb_count network.interface.bytes
                             (in) /  (out)
Without pread:
       12    9262.938       11.87 /  16.67 (netbench)
  8192 12    8902.365        1.56 /  73.63 (reads)
  8192 12    7814.518       64.90 /   1.22 (writes)
With pread:
       12   11563.115       14.82 /  20.93 (netbench)
  8192 12   16288.886        2.83 / 134.88 (reads)
  8192 12   16487.643      137.19 /   2.57 (writes)
 ----- --   ---------      ---------------
  ^    ^     ^             ^ 
  |    |     |             total avg. thoughput (MiB/s)
  |    |      - SMB count (from samba profiling counts)
  |     - # workloads per client
   - I/O block size

> I like the look of these changes but I'd want to make sure it really
> helped on significant platforms (Linux for example).

The basic effect of the patch is to reduce server latency, which has a big
effect. In my testing, the numbers for the pread patch are roughly equivalent
to those of using tdb spinlocks, so it should help anyone who finds spinlocks
helpful.

--
James Peach | jpeach at sgi.com | SGI Australian Software Group
I don't speak for SGI.


More information about the samba-technical mailing list