Linux NFS development
 help / color / mirror / Atom feed
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.

  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