All of lore.kernel.org
 help / color / mirror / Atom feed
* readdirplus/getattr
@ 2011-03-31 22:24 Andrew Klaassen
  2011-03-31 22:58 ` readdirplus/getattr Steven Procter
  0 siblings, 1 reply; 4+ messages in thread
From: Andrew Klaassen @ 2011-03-31 22:24 UTC (permalink / raw)
  To: linux-nfs

Hi,

I've been trying to get my Linux NFS clients to be a little snappier about listing large directories from heavily-loaded servers.  I found the following fascinating behaviour (this is with 2.6.31.14-0.6-desktop, x86_64, from openSUSE 11.3, Solaris Express 11 NFS server):

With "ls -l --color=none" on a directory with 2500 files:

             |      rdirplus   |    nordirplus   |
             |1st  |2nd  |1st  |1st  |2nd  |1st  |
             |run  |run  |run  |run  |run  |run  |
             |light|light|heavy|light|light|heavy|
             |load |load |load |load |load |load |
--------------------------------------------------
readdir      |   0 |   0 |   0 |  25 |   0 |  25 |
readdirplus  | 209 |   0 | 276 |   0 |   0 |   0 |
lookup       |  16 |   0 |  10 |2316 |   0 |2473 |
getattr      |   1 |2501 |2452 |   1 |2465 |   1 |

The most interesting case is with rdirplus specified as a mount option to a heavily loaded server.  The NFS client keeps switching back and forth between readdirplus and getattr:

 ~10 seconds doing ~70 readdirplus calls, followed by
 ~150 seconds doing ~800 gettattr calls, followed by
 ~12 seconds doing ~70 readdirplus calls, followed by
 ~200 seconds doing ~800 gettattr calls, followed by
 ~20 seconds doing ~130 readdirplus calls, followed by
 ~220 seconds doing ~800 gettattr calls

All the calls appear to get reasonably prompt replies (never more than a second or so), which makes me wonder why it keeps switching back and forth between the strategies.  (Especially since I've specified rdirplus as a mount option.)

Is it supposed to do that?

I'd really like to see how it does with readdirplus ~only~, no getattr calls, since it's spending only 40 seconds in total on readdirplus calls compared to 570 seconds in total on (redundant, I think, based on the lightly-loaded case) getattr calls.

It'd also be nice to be able to force readdirplus calls instead of getattr calls for second and subsequent listings of a directory.

I saw a recent thread talking about readdirplus changes in 2.6.37, so I'll give that a try when I get a chance to see how it behaves.

Andrew



^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2011-04-01  2:37 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-03-31 22:24 readdirplus/getattr Andrew Klaassen
2011-03-31 22:58 ` readdirplus/getattr Steven Procter
2011-04-01  0:42   ` readdirplus/getattr Andrew Klaassen
2011-04-01  2:37     ` readdirplus/getattr Andrew Klaassen

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.