[1730] in linux-net channel archive

home help back first fref pref prev next nref lref last post

Re: Performance Enhancements to NFS client.

daemon@ATHENA.MIT.EDU (Alan Cox)
Mon Jan 29 10:38:29 1996

From: Alan Cox <alan@cymru.net>
To: dplatt@jumble.3do.com (Dave Platt)
Date: 	Mon, 29 Jan 1996 11:29:33 +0000 (GMT)
Cc: linux-net@vger.rutgers.edu
In-Reply-To: <9601281959.AA13994@rhett.3do.com> from "Dave Platt" at Jan 28, 96 12:00:34 pm

> When NFS runs over UDP (as it usually does) it becomes exquisitely (I'll say
> "excruciatingly") sensitive to the loss of any packets.  If you lose even
> one of the packets in an RPC reply, the entire RPC times out, the other
> packets are discarded, and the whole RPC must be retried.

No. The only problem is that Sun persisted in doing stupidly large NFS block
request sizes that exceed the MTU of the network link. If you are doing
Linux<->Sensible NFS each RPC fits into one packet and no problems occur.

> [1] Continue to use RPC-over-UDP, do send multiple requests, but keep the
>     number and size of these requests relatively small.  For example, send
>     two 4k-byte requests instead of one 8k-byte request.  When you get the
>     last packet back for the first request, you can request the next 4k.

The Sun derived NFS server is very slow unless you do page sized I/O. You
definitely _do_ need to keep windows on request queues to a given host, have
a look at the 4.4BSD NFS client for a nice example which also does rtt
estimation and the like.

Alan



home help back first fref pref prev next nref lref last post