On Oct 29, 2007, at 12:43 PM, Matthew C Aycock wrote:

> I have an HA cluster running into some hangs. It apears that it is
> haning someplace in nfsauth portion. I have two questions:
>
> 1) In looking at the source code it appears that the cache size is
> just 32 for this. From what I am hearing from support every time I
> create a file for example it will have to go through this code
> path. If this is so, does it not seem that 32 is small? Also,
> it appears to be hard coeded in the source.

without a reference point to the code you are looking at (which would  
have
been helpful) -- I'm assuming you are looking at [1], which if we
look here [2] we can see that the size is used in the hash calculation.
So 32 is the number of our hash 'buckets'... looking at the
nfsauth_cache_get() [3], we see that the inbound client address is
hashed (to locate the correct 'bucket') then we loop through the
entries looking for a potentially matching cached entry.

In the event that we do not have a cached entry we will 'upcall'
to mountd here [4].

>
> 2) Also, is there a way to find out what where nfsauth is spending
> its time? I am not familar with this code stack enough to know what
> to probe. I would think dtrace would be useful here but I am not
> familiar enough to know what to probe.

Googles number one hit for 'nfsauth dtrace' returns Peter Harvey's
blog entry [5] that touches on the mountd code;  He talks about
a different problem, but the other side of that 'upcall' at [4] will
eventually lead us to nfsauth_access() [6]; peter has some dtrace
examples that could be adapted to track time spend doing lookups.
(which could be the problem you are seeing)...

Robert.

--
[1]: http://src.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/ 
uts/common/nfs/export.h#221
[2]: http://src.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/ 
uts/common/fs/nfs/nfs_auth.c#119
[3}: http://src.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/ 
uts/common/fs/nfs/nfs_auth.c#209
[4}: http://src.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/ 
uts/common/fs/nfs/nfs_auth.c#344
[5]: http://blogs.sun.com/peteh/entry/ 
dereferencing_user_space_pointers_in
[6]: http://src.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/ 
cmd/fs.d/nfs/mountd/nfsauth.c#53

Reply via email to