From: "J. Bruce Fields" <bfields@fieldses.org>
To: Jeff Layton <jlayton@redhat.com>
Cc: Chuck Lever <chuck.lever@oracle.com>, linux-nfs@vger.kernel.org
Subject: Re: [PATCH RFC] nfsd: report length of the largest hash chain in reply cache stats
Date: Mon, 18 Feb 2013 09:30:02 -0500 [thread overview]
Message-ID: <20130218143002.GB22047@fieldses.org> (raw)
In-Reply-To: <20130218092134.0b312c78@tlielax.poochiereds.net>
On Mon, Feb 18, 2013 at 09:21:34AM -0500, Jeff Layton wrote:
> On Sun, 17 Feb 2013 11:00:56 -0500
> "J. Bruce Fields" <bfields@fieldses.org> wrote:
>
> > On Sat, Feb 16, 2013 at 12:18:18PM -0500, Chuck Lever wrote:
> > >
> > > On Feb 16, 2013, at 8:39 AM, J. Bruce Fields <bfields@fieldses.org> wrote:
> > > > With a per-client maximum number of entries, sizing the hash tables
> > > > should be easier.
> > > When a server has only one client, should that client be allowed to
> > > maximize the use of a server's resources (eg, use all of the DRC
> > > resource the server has available)?
> >
> > I've been assuming there's rapidly diminishing returns to caching a lot
> > of replies to a single client. But that might not be true--I guess a
> > busy UDP client with a long retry timeout might benefit from a large
> > cache?
> >
>
> Yes, or one with a massively parallel workload and poor slot-table
> implementation that just sprays tons of requests at the server?
I believe we pin cache entries while the request is in progress and
timestamp and insert into the lru when when we send the reply--so the
parallelism doesn't matter so much, in the sense that we're not going to
for example get a big slow write operation evicted by a bunch of quick
concurrent getattrs.
What matters is: from the time we send a reply, to the time the client
retries, how many more requests does the client send?
> > > How about when a server has one active client and multiple quiescent
> > > clients?
> >
> > I think there's a chance in that case that one of the quiescent clients
> > is experiencing a temporary network problem, in which case we may want
> > to preserve a few entries for them even if the active client's activity
> > would normally evict them.
> >
>
> Cache eviction policy is really orthogonal to how we organize it for
> efficient lookups. Currently, cache entries sit in a hash table for
> lookups, and on a LRU list for eviction.
>
> We can certainly change either or both. I think the trick here is to
> nail down what semantics you want for the cache and then look at how
> best to organize it to achieve that.
>
> OTOH, maybe we should see whether this is really a problem first before
> we go and try to fix anything.
Yeah.
--b.
next prev parent reply other threads:[~2013-02-18 14:30 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-02-15 17:23 [PATCH v2 0/3] nfsd: better stats gathering for DRC Jeff Layton
2013-02-15 17:23 ` [PATCH v2 1/3] nfsd: break out comparator into separate function Jeff Layton
2013-02-15 17:23 ` [PATCH v2 2/3] nfsd: track memory utilization in the DRC Jeff Layton
2013-02-15 17:23 ` [PATCH v2 3/3] nfsd: add new reply_cache_stats file in nfsdfs Jeff Layton
2013-02-15 17:29 ` Chuck Lever
2013-02-15 18:34 ` Jeff Layton
2013-02-15 20:04 ` [PATCH RFC] nfsd: report length of the largest hash chain in reply cache stats Jeff Layton
2013-02-15 21:14 ` Chuck Lever
2013-02-15 22:20 ` Jeff Layton
2013-02-16 13:39 ` J. Bruce Fields
2013-02-16 17:18 ` Chuck Lever
2013-02-17 16:00 ` J. Bruce Fields
2013-02-17 19:58 ` Chuck Lever
2013-02-18 14:21 ` Jeff Layton
2013-02-18 14:30 ` J. Bruce Fields [this message]
2013-02-18 14:39 ` Jeff Layton
2013-02-18 16:18 ` Chuck Lever
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20130218143002.GB22047@fieldses.org \
--to=bfields@fieldses.org \
--cc=chuck.lever@oracle.com \
--cc=jlayton@redhat.com \
--cc=linux-nfs@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox