NFS Performance Tuning for HP-UX 11.0 and 11i Systems

nfs performance tuning for hp-ux 11.0 and 11i systems page 47
Notes:
Page 47July 22, 2002
Copyright 2002 Hewlett- Packard Company
nfsd
What happens when an NFS request
arrives on the server?
The kernel determines which per-CPU stream head to
queue the request on
A single nfsd is awoken to handle the request
CPUs can “task steal” if an nfsd is ready to execute but
the CPU it is bound to is busy, a different CPU may
“steal” the waiting nfsd and execute it
nfsds can “task steal” an nfsd may steal requests from
other CPU’s queues
When an NFS request arrives on a multi-CPU server, the kernel must first determine
which CPU’s stream head to queue the request on. Remember that the server
creates separate pools of nfsds for each CPU and allocates an equal number of
daemons to each queue. Once the kernel decides where to queue the request, a
single nfsd is awoken to process the request.
If an nfsd is ready to execute but the CPU it is associated with is busy, an available
CPU may “steal” the nfsd and execute it. In addition, once an nfsd finishes
processing a request, before returning to sleep it will check the queue of the CPU it
is bound to to see if any other requests are waiting to be processed. If it finds a
request waiting it will service it. If the nfsd doesn’t find a request in the CPU’s
queue, the nfsd will then check the queues of the other CPUs to see if any requests
are waiting in their queues. If it finds a request waiting to be serviced, the nfsd
may “steal” the request from the queue of a different CPU and execute it. This is
commonly referred to as “task stealing.”