Terrible NFS performance under 9.2-RELEASE?

Rick Macklem rmacklem at uoguelph.ca
Mon Feb 10 00:50:42 UTC 2014


aurfalien wrote:
> On Feb 9, 2014, at 10:03 AM, Christian Weisgerber
> <naddy at mips.inka.de> wrote:
> 
> > Rick Macklem <rmacklem at uoguelph.ca> wrote:
> > 
> >> I have a "hunch" that might explain why 64K NFS reads/writes
> >> perform
> >> poorly for some network environments.
> >> A 64K NFS read reply/write request consists of a list of 34 mbufs
> >> when
> >> passed to TCP via sosend() and a total data length of around
> >> 65680bytes.
> >> Looking at a couple of drivers (virtio and ixgbe), they seem to
> >> expect
> >> no more than 32-33 mbufs in a list for a 65535 byte TSO xmit. I
> >> think
> >> (I don't have anything that does TSO to confirm this) that NFS
> >> will pass
> >> a list that is longer (34 plus a TCP/IP header).
> > 
> > This may or may not be the same problem:
> > 
> > When I switched my desktop box from FreeBSD 7 to 9, NFS read
> > performance from my media server (running OpenBSD) became extremely
> > poor.  I couldn't even stream a movie any longer.  Disabling TSO
> > on the nfe(4) interface had no effect.  My workaround was to switch
> > from a TCP mount to a UDP one.  The problem has persisted to
> > FreeBSD 10.
> > 
> > I can now report that switching to [rw]size=32768 with a TCP mount
> 
> So either UDP or TCP w/rw sizes of 32K work the same?
> 
Nope. The client limits UDP rsize/wsize to 16K, so you were actually
using rsize=16384,wsize=16384 when using UDP. You can "nfsstat -m" on
the client to see what the actual "negotiated" mount options are.

rick

> - aurf
> _______________________________________________
> freebsd-net at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-net
> To unsubscribe, send any mail to
> "freebsd-net-unsubscribe at freebsd.org"
> 


More information about the freebsd-net mailing list