SUMMARY:nfs server daemons

From: Lau, Victoria H (vlau@msmail2.hac.com)
Date: Sat Feb 01 1997 - 18:23:56 CST


I sincerely thank the following Sun Managers who responded to my help
request even before I received my own copy:

- Karl E. Vogel
- paul@icx.com
- Kris Briscoe
- Reto Lichtensteiger
- Cathy Hargrave

Original question:
=================
I have an NFS server running Solaris 2.5.1 that exports a user home file
system to 120 clients. Lately I have a lot of buffer overflow problems which
prevent all users from these clients to log in as if the home file system
is not exported to these nodes. The NFS server is still up and running and
the user home file system is exported.

My current nfs daemons on the server is 16 biod and 16 nfsd. And on each
of my clients, 16 biod.

How many nfs daemons I should have on both the server and the clients to
avoid data buffer overflow?

CORRECTION: Most of our clients are running Solaris 2.5.1 but the
server is running SunOS 4.1.3.

==========================================================================
Solution:
========
We've set the nfsd to 512 and biod to 6 on the server and we lowered the
SunOS clients still with 6 biod as the initial test. We'll use netstat
and nfsstat to monitor the results and adjust these numbers if needed.
Thank you for every one's help.

==========================================================================
Responses:
=========
   I don't have the "biod" program; I haven't seen that since moving to
   Solaris.
   You can increase the number of nfsd's running without hurting your system
   because it's thread-based; it doesn't fork new processes for each nfsd
   started. Here's what we have running for a Sparc 1000 NFS server that
   handles about 400 clients:

       /usr/lib/nfs/nfsd -a 256
       /usr/lib/nfs/mountd
       /usr/lib/nfs/pcnfsd
       /usr/lib/nfs/statd
       /usr/lib/nfs/lockd

Karl Vogel vogelke@c17.wpafb.af.mil
ASC/YCOA, Wright-Patterson AFB, OH 45433 937-255-3688

On your Solaris server, I would configure 250 nfsd threads. Keep in mind
that number is a max hard limit and that you may never reach it, but will
not require any additional system resources.

As for your clients, run with 8 nfsd and 4 biod. Unless your clients are
also acting as 'servers', then increase the number of nfsd until 'netstat
-s | grep overflow' reports zero. I usaly increment by 2 on clients and
4 on servers. Setting the proper number of biods can be difficult, but
setting too many nfsd and biod can reduce system performance.

-Paul

This depends on the size of the box and the amount of memory available. If
possible I would recommend for an NFS server with this sort of load that you
increase your NFS threads (nfsd) to a minimum of 64 and if possible 128.

Kris

For tuning, look at netstat -s on the server, if the daemons are
overworked you'll see socket overflows ... Also use nfsstat to see what
the clients and server are doing. (nfsstat -s for server side and "-c"
for client side)

As a rule of thumb, under Solaris you can run a >lot< of daemons with no
performance hit, so it's not unreasonable to run 4 daemons per client:
500 nfsds ...

Reto

hal stern sent me this information on nfsd.

"in solaris, there's really no harm in having too many threads.
the limit is a high water mark, not a fixed resource allocation.

figure on 2000 for a big server, 1000 for a mid-range, 500 for
a low-end server and 250 for a desktop (ss2/ss10 flavor).

you'll see some improvement in performance by adding more threads
in terms of better response time, more throughput (more nfsops/sec
on the server), etc."
 
cathy



This archive was generated by hypermail 2.1.2 : Fri Sep 28 2001 - 23:11:44 CDT