All of lore.kernel.org
 help / color / mirror / Atom feed
From: Steve Kann <stevek@stevek.com>
To: linux-nfs@vger.kernel.org
Subject: question about serialization/queuing behavior in linux nfs client
Date: Fri, 01 Oct 2010 09:44:43 -0400	[thread overview]
Message-ID: <4CA5E5CB.7000204@stevek.com> (raw)


Hi, List,

     I'm trying to debug some performance problems I've been seeing in a 
particular application.  My main problem is the simple case of an 
overloaded server, but there's one aspect of the behavior I'm seeing in 
benchmarks that I don't quite understand.

Basics:
     I'm doing benchmarks from a CentOS4 (2.6.9-78.0.13), using NFSv3 
(over tcp) to connect to a NetApp filer.
     My benchmark application is a simple perl script which times 
directory operations (stat, mkdir, rmdir), and I typically am running 
between 20-200 parallel copies.

What I don't quite understand is that if I look on the wire, I see the 
"worst case" operation times taking up to about ~10 seconds, but from 
the application, it's reporting worst case times in the 30-60 (or 
higher!) second range.

At first, I thought that perhaps the system calls in the application 
were being mapped into multiple NFS operations, but that does not appear 
to be the case.

My second thought was that the kernel is somehow limiting the number of 
outstanding requests it's issuing to the server.  It seems that way back 
in kernel 2.4, there was a limit of 256 outstanding requests (as per 
nfs.sourceforge.net FAQ B7), but that hard limit was removed back in 2.5 
with this patch from Trond (http://lwn.net/Articles/15074/), and 
replaced with other mechanisms to limit memory usage.

The machine I'm testing from has 4GB, and a pretty low application 
memory footprint (there's nothing much else running on the machine other 
than my tests).

Any idea what causes the disparity between what I'm seeing on the wire, 
and what my test application is seeing?

Thanks for helping me understand,

-SteveK


                 reply	other threads:[~2010-10-01 13:44 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

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=4CA5E5CB.7000204@stevek.com \
    --to=stevek@stevek.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 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.