Subject: Re: Raising NFS parameters for higher bandwith or "long fat pipe"
To: Jonathan Stone <jonathan@DSG.Stanford.EDU>
From: Manuel Bouyer <bouyer@antioche.lip6.fr>
List: tech-net
Date: 12/09/2003 15:21:18
On Sun, Dec 07, 2003 at 05:17:33PM -0800, Jonathan Stone wrote:
> 
> In message <20031207133149.GA1640@antioche.eu.org>Manuel Bouyer writes
> 
> >I'd like to see this. I suspect solaris is doing something similar.
> 
> I havent measured Solaris. I know Linux can fire up off to 1Mbyte
> (256k*4k pages) of writes before it blocks waiting for the server
> to respond.
> 
> 
> >An Ultra/5 running solaris7 can read/write at full 100Mb/s to a NetBSD NFS
> >server. NetBSD 1.6.x boxes (i386 and sparc64) can't do more than 70Mb/s readin
> >g
> >and even less writing (I didn't look if current is better in this area
> >recently).
> 
> If the clients do large I/Os, and you have enough nfsio threads on the
> clients, I would expect write throughput to be higher than read
> throughput.  Were your read results for the first read of a file after

Yes, I got it backward. write is faster than read, but not up to the point
of solaris, though.

> a mount, or for a re-read? I'm sure you know client-side caching means
> a re-read often doesn't touch the server, but its easy to miss.  I

I use large (1GB files), so they don't fit in the client and server memory.
I also get values close to what I measure on the client with iostat on the
server, and network traffic graphs on the switches.


I did a test with solaris and NetBSD:
the test was
time dd if=/dev/zero of=toto bs=128k count=10000
time dd if=toto bs=128k of=/dev/null
I ran these 5 times, and did an average of the time returned, excluding
times clearly too high (the server is in production, and the 100Mb/s
link is shared with other systems).
The server is a NetBSD/alpha 1.6.1_STABLE, with an array of 6 SCSI disks on 2
SCSI busses for the partition I ran the tests on, and a gigabit network
interface. It has 20 nfsds running.

The solaris client is running solaris9 on a UltraSPARC-IIi 333MHz with 256MB
RAM. Default mount options (remote/read/write/nosuid/hard/intr/xattr).
The NetBSD client is running current as of today, on a UltraSPARC-IIi
400Mhz with 256MB RAM. Also using amd's default mount options
(nfs (nosuid, nodev)).
                          read             write
Solaris               11.27MB/s         10.91MB/s
NetBSD (4 nfsiod)      5.63MB/s          8.49MB/s
NetBSD (20 nfsiod)     5.60MB/s          7.21MB/s
NetBSD (10 nfsiod)     5.54MB/s          8.12MB/s

So the number of nfsiod doens't seem to make a difference for large single
writes, exept maybe that when there is more nfsiod than nfsds on the server,
this gets worse for writes.
But there are still much root for improvements here.

--
Manuel Bouyer, LIP6, Universite Paris VI.           Manuel.Bouyer@lip6.fr
     NetBSD: 24 ans d'experience feront toujours la difference
--