svn commit: r188833 - in head/sys: kern nfsclient sys
John Baldwin
jhb at freebsd.org
Mon Feb 23 07:34:41 PST 2009
On Thursday 19 February 2009 7:26:02 pm Scott Long wrote:
> John Baldwin wrote:
> > On Thursday 19 February 2009 5:28:49 pm John Baldwin wrote:
> >> Author: jhb
> >> Date: Thu Feb 19 22:28:48 2009
> >> New Revision: 188833
> >> URL: http://svn.freebsd.org/changeset/base/188833
> >>
> >> Log:
> >> Enable caching of negative pathname lookups in the NFS client. To
avoid
> >> stale entries, we save a copy of the directory's modification time when
> >> the first negative cache entry was added in the directory's NFS node.
> >> When a negative cache entry is hit during a pathname lookup, the parent
> >> directory's modification time is checked. If it has changed, all of
the
> >> negative cache entries for that parent are purged and the lookup falls
> >> back to using the RPC. This required adding a new
cache_purge_negative()
> >> method to the name cache to purge only negative cache entries for a
given
> >> directory.
> >>
> >> Submitted by: mohans, Rick Macklem, Ricardo Labiaga @ NetApp
> >> Reviewed by: mohans
> >
> > Together with the previous two changes I measured a 30% drop in the number
of
> > RPCs for a kernel build (no modules):
>
> These graphs are fun, but are useless without more information on the
> characteristics of the server and the NFS connections.
In this case the server was an Isilon. Other folks using similar patches have
reported similar results against NetApp filers. My testing was more to do a
final sanity check of my tweaking of others patches so they could be
integrated into the tree. Note that the primary purpose of the graphs was to
show that the difference in RPC counts was statistically meaningful across a
run of several tests. Also, note that the graphs are not measuring
differences in wall-time, etc. (which could certainly be very sensitive to
the server and other factors such as load on the network) but are merely
changes in the counts of RPC requests submitted by the client. Since NFS is
largely "stateless" without server-to-client callbacks, I presume that the
mix of RPC requests submitted by a client are determined mostly by the NFS
client rather than the server.
--
John Baldwin
More information about the svn-src-all
mailing list