Subject: Re: Raising NFS parameters for higher bandwith or "long fat pipe"
To: Jonathan Stone <jonathan@DSG.Stanford.EDU>
From: Manuel Bouyer <bouyer@antioche.eu.org>
List: tech-net
Date: 12/07/2003 14:31:49
On Sat, Dec 06, 2003 at 11:18:38AM -0800, Jonathan Stone wrote:
> In message <C6A36295-245A-11D8-A3C9-000A957650EC@wasabisystems.com>,
> Jason Thorpe  writes:
> 
> [Jonathan proposes more NFS client-side readhead]
> 
> The real gotcha is that as far as I can tell, NetBSD's NFS client code
> does at most one read-ahead opeartion.  I tried an (old) iozone over
> an NfS mount from a NetBSD 1.6.1 client, a NetBSD-current 1.6GZF
> server. Both machines were 500MHz-class P3s with Tulip interfaces. For
> both TCP and UDP mounts, I observed about a 3:1 ratio of write:read
> throughput.  Using "top" on the server shows  only one or two  nfsd's busy.
> 
> Contrast sys/nfs/nfs_bio.c:nfs_bioread() between NetBSD and FreeBSD-4:
> the FreeBSD version has a loop that fires off up to nmp->nm_readahead
> extra reads. (The code fragment later in nfs_bioread() that fires of a
> single read-ahead, is common across NetBSD and FreeBSD 4.x).
> 
> The performance penalty leaves me very unhappy.  What's the collective
> opnion about incorporating a FreeBSD-style NFS read-ahead?

I'd like to see this. I suspect solaris is doing something similar.

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 reading
and even less writing (I didn't look if current is better in this area
recently).

-- 
Manuel Bouyer <bouyer@antioche.eu.org>
     NetBSD: 24 ans d'experience feront toujours la difference
--