public inbox for linux-nfs@vger.kernel.org
 help / color / mirror / Atom feed
From: "Myklebust, Trond" <Trond.Myklebust@netapp.com>
To: "tigran.mkrtchyan@desy.de" <tigran.mkrtchyan@desy.de>
Cc: Jim Rees <rees@umich.edu>, linux-nfs <linux-nfs@vger.kernel.org>
Subject: Re: readdir vs. getattr
Date: Thu, 4 Apr 2013 15:48:01 +0000	[thread overview]
Message-ID: <1365090480.10726.22.camel@leira.trondhjem.org> (raw)
In-Reply-To: <CAGue13o6X5S3ppTX_fmMCTCX=7Mq_57YQEsb_hkOKwN9iOHwEQ@mail.gmail.com>

On Thu, 2013-04-04 at 17:38 +0200, Tigran Mkrtchyan wrote:
> On Thu, Apr 4, 2013 at 5:15 PM, Jim Rees <rees@umich.edu> wrote:
> > Tigran Mkrtchyan wrote:
> >
> >   we have a directory with 50K (number of )  files in it.
> >   The user does a 'ls' and I can see READDIR4. To
> >   get the complete listing a client need to send ~380 requests.
> >   Now user does yet another 'ls' in the same directory.
> >   The client sends a GETATTR  on directorie's FH
> >   (actually two of GETATTRS - why?!!) and discovers that a
> >   directory didn't change and re-uses existing listing, BUT!!!
> >   for each file in the directory it sends a GETATTR to discover
> >   is  the file's attributes are changed. For 50K files it's a 50K requests.
> >
> > So is this a "ls -l"? Because for "ls" it shouldn't stat all the files.
> 
> I believe it's 'ls -l'.  Well, you probably want to say that it's ls
> calling stat on each file. Nevertheless client still should re-use
> cached information.

What makes you think that it isn't using cached information? I'm
guessing you just need to adjust the values of acregmin and acregmax
upwards.

That said, we might be able to be a little more intelligent about how we
use the NFS_INO_ADVISE_RDPLUS hint, and have it blow out the readdir
cache when we find ourselves doing lots of lookup revalidates.

-- 
Trond Myklebust
Linux NFS client maintainer

NetApp
Trond.Myklebust@netapp.com
www.netapp.com

  reply	other threads:[~2013-04-04 15:48 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-04-04 14:47 readdir vs. getattr Tigran Mkrtchyan
2013-04-04 15:15 ` Jim Rees
2013-04-04 15:32   ` Chuck Lever
2013-04-04 16:01     ` Jim Rees
2013-04-04 16:15       ` Myklebust, Trond
2013-04-04 16:35         ` Jim Rees
2013-04-04 18:28           ` Tigran Mkrtchyan
2013-04-04 15:38   ` Tigran Mkrtchyan
2013-04-04 15:48     ` Myklebust, Trond [this message]
2013-04-04 15:52       ` Tigran Mkrtchyan
2014-01-29  7:10       ` NeilBrown
2014-01-29  7:25       ` NeilBrown
2014-01-29  9:21         ` Mkrtchyan, Tigran
2014-01-29 12:18           ` Jeff Layton
2014-02-06  2:45             ` NeilBrown
2014-02-06  2:51               ` NeilBrown
2014-02-06 18:08                 ` Jeff Layton
2014-02-06 19:53                 ` [PATCH] NFS: Do not set NFS_INO_INVALID_LABEL unless server supports labeled NFS Trond Myklebust
2014-02-07  4:21                   ` NeilBrown
2014-02-06 22:12                 ` readdir vs. getattr Trond Myklebust
2014-02-07  4:30                   ` NeilBrown
2014-02-07 19:47                     ` Trond Myklebust
2014-02-07 22:08                       ` Trond Myklebust
2014-02-10  0:16                         ` NeilBrown

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=1365090480.10726.22.camel@leira.trondhjem.org \
    --to=trond.myklebust@netapp.com \
    --cc=linux-nfs@vger.kernel.org \
    --cc=rees@umich.edu \
    --cc=tigran.mkrtchyan@desy.de \
    /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