Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 23 Nov 1999 12:26:07 -0700
From:      "Juan Lorenzana" <lorenzaj@agcs.com>
To:        freebsd-questions@freebsd.org, hackers@freebsd.org
Subject:   NFS hangs/locks CPU
Message-ID:  <383AEA4F.ABE8D3DD@agcs.com>

next in thread | raw e-mail | index | archive | help
Hi, I'm running FreeBSD 2.2.8.  We have used 2.2.8 to build a telecom
application and have had great success deploying other telecom
applications on 2.2.8 until now.  We are using NFS to distribute
binaries and config files to others machines so that we can achieve
availability.  Here's our problem:
I have two machines one acting as a server and the other as a client.
The processes are started as follows

NFS Server (king-n1)
mountd
nfsd -u -t 10
rpc.statd

NFS Client (king-c1)
mount_nfs -T -w 1024 king-n1:/u /u

Both machines are Pentium II 450 mhz with 512 megs of ram and 1024 megs
of swap.  We use an Intel Ethernet Express Pro 100 cards with the fxp0
driver.  I turned on debug for the fxp0 driver and see nothing out of
the ordinary.

Please note that king-n1 is a dual homed.  That is why we use the -T
option.  Otherwise, we can not use NFS  to the virtual ip address
without installing the NFS_Security_Cookie workaround.  Since the
nfs_security_cookie workaround has not been tested on 2.2.8, we chose to
use the -T option (odd but it allows us to mount a directory from a
virtual ip address instead of the real ip address).  It is interesting
to note that this hang still occurs whether or not we use the real ip
address or a virtual ip address.  The problem is that under heavy load,
we see that the client does a lot of Getattr and Access (nfsstat -w 1).
We were able to compile the DDB option into the kernel and when the
machine hung,we entered into the debugger and saw that we were stuck in
a _write call.  The following is what we saw when we did a trace.

_boidone(f418d200,f418d200,f22bf000,f22dc600,3) at _boidone 0x2e6
_nfs_doio(f418d200,f22df000,f22dc600,1,f418d200) at _nfs_doio 0x4c5
_nfs_strategy(efbffddc) at _nfs_strategy 0x68
_nfs_writebp(f418d200,1,efbffec4,f0163000,efbffe50) at _nfs_writebp
0x125
_nfs_bwrite(efbff50) at _nfs_bwrite 0x10
_nfs_write(efbffee08,f02564e0,1,efbff94,2) at _nfs_write 0x648
_vn_write(f25d6f80,efbfff34,f22bf000,f02564e0,f22c600) at _vn_write 0x93

_write(f220c600,efbff94,efbff84,0,5167) at _write 0x97
_syscall

I am not sure what to do from here.  We can only run traffic for about 4
hours before our machine hangs.  I suspect that this might be related to
a GETATTR or ACCESS nfs problem or a possible tcp/ip bug under heavy
load.  Can anyone help or point me in the right direction.  Moving to
3.x is not possible because we are using a product that we purchased
from Sweden.  The Swedish product is the base of all our telecom
products here at AGCS and it only runs on 2.2.8. Any help is
appreciated. Thanks.

Regards,

--
Juan Lorenzana
AG Communication Systems
Phoenix, AZ

602-582-7442
lorenzaj@agcs.com




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




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