On Thu, Jul 07, 2011 at 05:20:24PM -0700, Jorgen Lundman wrote:
> 
> >
> > A DTrace script that measures the number of requests queued due to
> > unavailability of NFSD threads would be nice.  You'd want to combine
> > that with measures of CPU and I/O utilization.
> >
> 
> We use 1024 as well, and occasionally (every ~15 days or so) have trouble 
> where 
> the NFS server needs to be rebooted. I started to graph the output of:
> 
> echo "::svc_pool nfs" | mdb -k
> SVCPOOL = ffffffffba2b8380 -> POOL ID = NFS(1)
> Non detached threads    = 940
> Detached threads        = 0
> Max threads             = 1024
> `redline'               = 1
> Reserved threads        = 0
> Thread lock     = mutex not held
> Asleep threads          = 917
> Request lock    = mutex not held
> Pending requests        = 0
> Walking threads         = 0
> Max requests from xprt  = 8
> Stack size for svc_run  = 0
> Creator lock    = mutex not held
> No of Master xprt's     = 14
> rwlock for the mxprtlist= owner 0
> master xprt list ptr    = ffffff1174778cc0
> 
> Which shows number of active threads, number of sleeping, and pending 
> requests.
> 
> Looking for the last two weeks, my Non-detached threads have been in ~950 
> range, 
> the sleeping threads have never gone below 900. Pending thread has never gone 
> over 2.
> 
> For me, I do not think increasing the max will help. It seems we are 
> experiencing a kernel bug every 15 or so days. Trying to track that down now.
> 
> 
> Another interesting mdb macro is:
> 
> echo "::svc_pool -v nfs" | mdb -k
> 
> Which will give you number of threads per NFS client:
> 
> 172.20.12.38:19970
>    = 174
> 172.20.12.18:4610
>    = 71
> 172.20.12.8:64771
>    = 127
> 172.20.12.40:64514
>    = 38
> 
> That is also interesting, but has not led to anything yet.
> 
> Lund

Hmmm:

# echo "::svc_pool nfs" | mdb -k
SVCPOOL = fffffe83d1511d20 -> POOL ID = NFS(1)
Non detached threads    = 16
Detached threads        = 0
Max threads             = 16
`redline'               = 1
Reserved threads        = 0
Thread lock     = mutex not held
Asleep threads          = 16
Request lock    = mutex not held
Pending requests        = 0
Walking threads         = 0
Max requests from xprt  = 8
Stack size for svc_run  = 0
Creator lock    = mutex not held
No of Master xprt's     = 29
rwlock for the mxprtlist= owner 0   
master xprt list ptr    = fffffe8433baa780

And also

# echo "::pgrep nfsd | ::walk thread" | mdb -k | wc -l
       18

Max threads = 16 ???  Something's wonky there!  Perhaps time to bounce
nfsd (unless there's a way to update Max Threads via mdb without
restarting).

Ray
_______________________________________________
nfs-discuss mailing list
[email protected]

Reply via email to