Subject: Re: Raising NFS parameters for higher bandwith or "long fat pipe"
To: None <jonathan@DSG.Stanford.EDU>
From: YAMAMOTO Takashi <yamt@mwd.biglobe.ne.jp>
List: tech-net
Date: 12/14/2003 10:12:06
hi,

> Manuel confirms that NetBSD (-current and 1.6.2_RC2) has asymmmetric
> NFS client performance: with a NetBSD NFS server, Solaris NFS clients
> sustain 100Mbyte/sec.
> 
> For a NetBSD-current client, NFS reads throughput is about half of
> Solaris, and with writes throughput about 80% of solaris. (.1.6.2_RC2
> shows a similar spread, but is consistently slower than -current).
> 
> I found a FreeBSD 4.7 NFS client is somewhat better, and has roughly
> symmetric read/write performance. Some digging in the code suggests
> FreeBSD does better on reads becasue it issues explicit NFS read-ahead,
> in addition to the `read one ahead' we do (which FreeBSD does too).

"read one ahead" ?
i guess you're looking at wrong place.
see genfs_getpages, which issues read-ahead.
it isn't a very clever strategy, but i think it works fine
for dumb sequential reads like "dd if=..".

> Below is an untested, almost certinaly broken, patch showing how
> FreeBSD 4.x does NFS readahead. It' basically two chunks:

yes, i agree it's broken. :-)
we're not using traditional buffer cache interfaces for VREG's pages.

YAMAMOTO Takashi