NFS optimization

Eric Anderson anderson at centtech.com
Tue Apr 18 11:40:41 UTC 2006


David Gilbert wrote:
>>>>>> "Francisco" == Francisco Reyes <lists at stringsutils.com> writes:
> 
> Francisco> What would be a good way to determine how many nfsd
> Francisco> proccesses one should have?  I erred in the side of caution
> Francisco> since had to literally through an NFS setup into production
> Francisco> without been able to do much testing. Set 35 processes.  My
> Francisco> busiest nfsd are: 250 hours 50 " 24 " 11 " 7 " 4 " 3 " 2 "
> Francisco> 1 "
> 
> Francisco> The rest are under 1 hour. Does that mean that I should be
> Francisco> ok with 10 processes?
> 
> Roughly, yes.  You'll see NFSd's normally decline exponentially with
> an inflection point.  If your machine is completely dedicated to NFS,
> you probably want to run lots.  The overhead of extra NFSd processes
> is fairly small.  If you rarely do NFS, the default of 4 may even be
> overkill.
> 
> Consider that if you are "out" of nfsd's, the penalty is increased
> latency for some small number of transactions that wait for an nfsd to
> become available..  Even if you have tonnes of NFSd processes, if disk
> is a limiting factor, more nfsd's won't speed the process.


I have found that having too little can easily cause clients to block on 
nfs under peak usage times, so I tend to bump the number way up. 
There's little to no harm in it.


> Something that most peoople don't consider is that the number of NFSd
> process can balance the concurrency of NFS clients against local disk
> requirements.  If, say, you run a busy database on the NFS server, you
> may want run fewer NFSd process to increase the disk bandwidth
> resources available to the database.
> 
> Francisco> To kill the least active ones, I just "kill" them? or is
> Francisco> there a better way to restart the whole nfs server side?
> 
> I rarely 'kill' an nfsd.  Always thought that was bad.  Killing any
> nfsd is equivalent.  If you kill one that is further up the queue, the
> ones later in the queue move up (AFAIK).  Still... I always change the
> boot parameters and leave the processes currently running when I tune
> the number of nfsd's.


I usually look at my nfsd's, and see what the distribution of run time 
is on them.  I like to see at minimum a few (maybe 5% or so) with 
0:00.00 runtime - which (to me) means that I had enough to service the 
queue, and a few extra that were bored.  For my setup, this means 
typically between 256 and 512 nfsd's (with one server at 1024).


Eric






-- 
------------------------------------------------------------------------
Eric Anderson        Sr. Systems Administrator        Centaur Technology
Anything that works is better than anything that doesn't.
------------------------------------------------------------------------


More information about the freebsd-isp mailing list