nfs and dropped udp datagrams

Rick Macklem rmacklem at uoguelph.ca
Thu Jan 13 13:26:10 UTC 2011


> > I wonder how big kern.ipc.maxsockbuf shall be tuned on a busy
> > NFS-Server. In the last time, I often see clients loosing connection
> > to
> > their mounted directories. Furthermore, I see increasing counts for
> > upd datagrams "dropped due to full socket buffers" in netstat -s -p
> > udp.
> >
> > The mbuf situation does not seem to be the reason for the lost
> > connections, vmstat -z shows 0 failures in the mbuf section.
> >
> > Are there any other tunables which could prevent loss of connection
> > to
> > the server? What is a reasonable value for maxsockbuf?
> >
> Prior to r213756 the kernel rpc didn't check for the return value from
> soreserve() so, if maxsockbuf wasn't large enough or the rsize/wsize
> was
> greater than 8K, it failed and the krpc didn't notice. However, if it
> fails, then sesend() drops messages and that causes grief.
> 
> I'd just double it on all systems (clients and server), then double it
> again if you still see problems.
> 
Oh, and for a change to kern.ipc.maxsockbuf to take effect for udp on a
server, you need to kill off/restart the nfsds. (The soreserver() is done
when the socket is added for servicing and that happens on startup for UDP.)

And I think you want to crank up the value on the clients as well, especiallly
if your client(s) are pre-r213756 FreeBSD8 ones.

rick


More information about the freebsd-fs mailing list