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