Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 15 Dec 1999 09:11:01 -0800 (PST)
From:      Matthew Dillon <dillon@apollo.backplane.com>
To:        Andrew Gallatin <gallatin@cs.duke.edu>
Cc:        freebsd-current@FreeBSD.ORG
Subject:   Re: Serious server-side NFS problem
Message-ID:  <199912151711.JAA32205@apollo.backplane.com>
References:   <14423.46117.353932.473968@grasshopper.cs.duke.edu>

next in thread | previous in thread | raw e-mail | index | archive | help
:However, I'm seeing a showstopping problem when running newer kernels:
:When writing a large file via TCP, a Solaris 2.7 client pauses when
:closing the file, and appears to become stuck in an infinate loop.
:Eg:
:
:dd if=/dev/zero of=zot bs=64k count=8192
:8192+0 records in
:8192+0 records out
:^C	<------------- wedge
:
:The process does not exit, and there is a flurry of activity between
:the client & server:
:
:solaris -> freebsd NFS C WRITE3 FH=F5CB at 369655808 for 32768 (ASYNC)
:________________________________
:freebsd -> solaris TCP D=843 S=2049     Ack=1906313520 Seq=94979688 Len=164 Win=33176
:freebsd -> solaris RPC R (#5146) XID=299504169 Success
:freebsd -> solaris NFS R WRITE3 OK 32768 (ASYNC)
:________________________________

    This is very odd.  Does it lockup with UDP or only with TCP?   And only
    with a solaris client?

    It's possible that the problem may be related to changes in the TCP
    stack rather then related to NFS.  Looking at your trace output
    I don't see anything wrong beyond the solaris client apparently repeating
    write requests.  Another possibility is that we somehow nixed the
    commit rpc.  All the repeated writes occur after the commit rpc.  In
    the protocol trace, though, the commit rpc succeeds.  Very odd!

:I would think that this is not our fault, except things work just dandy
:with a kernel from July.  In fact, the only way out of this situation
:is to reboot the FreeBSD NFS server into an older kernel.
:
:In the trace (about 30 seconds or so of the activity after dd
:finished, but before it exited) there are ~21,000 packets.  There is a
:grand total of:
:
:NFS C WRITE3:		11024
:NFS R WRITE3 OK:	10499
:NFS C COMMIT3:		    1
:NFS R COMMIT3 OK:	    1
:
:In case more details are needed, I've left the complete trace in
:~gallatin/nfs-trace.gz on freefall.

    I've looked at it -- it looks normal except for the repeated writes.

:Also, while read performance has improved by 44%, write performance
:has degraded by between 50 - 70% (FreeBSD clients)!  Here are some
:quick benchmarks.  Note that the file size of 512MB is larger than
:memory on both the server and client.  Also note that the disk array
:on the server will read at 50MB/sec and write at 40MB/sec, so we are
:not disk bound ;-)
:
:- UDP NFS write performance from a FreeBSD client:

    Ok, I'll take a look at it.  I get 9 MBytes/sec writing over UDP links
    but only with fast (400MHz class) clients.  With a 200 MHz class client
    I am only getting 4-5 MBytes/sec.  Frankly, I should be getting 9 MB/sec
    even with the slower client!

:UDP NFS Read performance has gotten better:
:
:July's kernel:
:% dd if=zot of=/dev/null bs=64k
:8192+0 records in
:8192+0 records out
:536870912 bytes transferred in 84.621477 secs (6344381 bytes/sec)
:
:Today's kernel:
:dd if=zot of=/dev/null bs=64k
:8192+0 records in
:8192+0 records out
:536870912 bytes transferred in 58.544409 secs (9170319 bytes/sec)
:
:Cheers,
:
:Drew

    Yes, read performance has been improved in just the last few days
    simply by adding a read heuristic to the server side for transfers off
    the physical media.

					-Matt
					Matthew Dillon 
					<dillon@backplane.com>

:------------------------------------------------------------------------------
:Andrew Gallatin, Sr Systems Programmer	http://www.cs.duke.edu/~gallatin
:Duke University				Email: gallatin@cs.duke.edu
:Department of Computer Science		Phone: (919) 660-6590
:
:
:
:To Unsubscribe: send mail to majordomo@FreeBSD.org
:with "unsubscribe freebsd-current" in the body of the message
:



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199912151711.JAA32205>