public inbox for linux-nfs@vger.kernel.org
 help / color / mirror / Atom feed
From: Peter Staubach <staubach@redhat.com>
To: Chuck Lever <chuck.lever@oracle.com>
Cc: Brian R Cowan <brcowan@us.ibm.com>, linux-nfs@vger.kernel.org
Subject: Re: Read/Write NFS I/O performance degraded by FLUSH_STABLE page flushing
Date: Thu, 30 Apr 2009 16:41:12 -0400	[thread overview]
Message-ID: <49FA0CE8.9090706@redhat.com> (raw)
In-Reply-To: <5ECD2205-4DC9-41F1-AC5C-ADFA984745D3@oracle.com>

Chuck Lever wrote:
>
> On Apr 30, 2009, at 4:12 PM, Brian R Cowan wrote:
>
>> Hello all,
>>
>> This is my first post, so please be gentle.... I have been working
>> with a
>> customer who is attempting to build their product in ClearCase dynamic
>> views on Linux. When they went from Red hat Enterprise Linux 4
>> (update 5)
>> to Red Hat Enterprise Linux 5 (Update 2), their build performance
>> degraded
>> dramatically. When troubleshooting the issue, we noticed that links on
>> RHEL 5 caused an incredible number of "STABLE" 4kb nfs writes even
>> though
>> the storage we were writing to was EXPLICITLY mounted async. (This made
>> RHEL 5 nearly 5x slower than RHEL 4.5 in this area...)
>>
>> On consultation with some internal resources, we found this change in
>> the
>> 2.6 kernel:
>>
>> http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=ab0a3dbedc51037f3d2e22ef67717a987b3d15e2
>>
>>
>> In here it looks like the NFS client is forcing sync writes any time a
>> write of less than the NFS write size occurs. We tested this
>> hypothesis by
>> setting the write size to 2KB. The "STABLE" writes went away and link
>> times came back down out of the stratosphere. We built a modified kernel
>> based on the RHEL 5.2 kernel (that ONLY backed out of this change)
>> and we
>> got a 33% improvement in overall build speeds. In my case, I see almost
>> identical build times between the 2 OS's when we use this modified
>> kernel
>> on RHEL 5.
>>
>> Now, why am I posing this to the list? I need to understand *why* that
>> change was made. On the face of it, simply backing out that patch
>> would be
>> perfect. I'm paranoid. I want to make sure that this is the ONLY reason:
>> "/* For single writes, FLUSH_STABLE is more efficient */ "
>>
>> It seems more accurate to say that they *aren't* more efficient, but
>> rather are "safer, but slower."
>
> They are more efficient from the point of view that only a single RPC
> is needed for a complete write.  The WRITE and COMMIT are done in a
> single request.
>
> I don't think the issue here is whether the write is stable, but it is
> whether the NFS client has to block the application for it.  A stable
> write that is asynchronous to the application is faster than
> WRITE+COMMIT.
>
> So it's not "stable" that is holding you up, it's "synchronous." 
> Those are orthogonal concepts.
>

Actually, the "stable" part can be a killer.  It depends upon
why and when nfs_flush_inode() is invoked.

I did quite a bit of work on this aspect of RHEL-5 and discovered
that this particular code was leading to some serious slowdowns.
The server would end up doing a very slow FILE_SYNC write when
all that was really required was an UNSTABLE write at the time.

Did anyone actually measure this optimization and if so, what
were the numbers?

    Thanx...

       ps

  reply	other threads:[~2009-04-30 20:41 UTC|newest]

Thread overview: 94+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-04-30 20:12 Read/Write NFS I/O performance degraded by FLUSH_STABLE page flushing Brian R Cowan
2009-04-30 20:25 ` Christoph Hellwig
2009-04-30 20:28 ` Chuck Lever
2009-04-30 20:41   ` Peter Staubach [this message]
2009-04-30 21:13     ` Chuck Lever
2009-04-30 21:23     ` Trond Myklebust
2009-05-01 16:39       ` Brian R Cowan
     [not found]       ` <1241126587.15476.62.camel-rJ7iovZKK19ZJLDQqaL3InhyD016LWXt@public.gmane.org>
2009-05-29 15:55         ` Brian R Cowan
2009-05-29 16:46           ` Trond Myklebust
     [not found]             ` <1243615595.7155.48.camel-rJ7iovZKK19ZJLDQqaL3InhyD016LWXt@public.gmane.org>
2009-05-29 17:25               ` Brian R Cowan
2009-05-29 17:35                 ` Trond Myklebust
     [not found]                   ` <1243618500.7155.56.camel-rJ7iovZKK19ZJLDQqaL3InhyD016LWXt@public.gmane.org>
2009-05-30  0:22                     ` Greg Banks
     [not found]                       ` <ac442c870905291722x1ec811b2sda997d464898fcda-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2009-05-30  7:57                         ` Christoph Hellwig
2009-06-01 22:30                           ` J. Bruce Fields
2009-06-05 14:54                             ` Christoph Hellwig
2009-06-05 16:01                               ` J. Bruce Fields
2009-06-05 16:12                               ` Trond Myklebust
     [not found]                                 ` <1244218328.5410.38.camel-rJ7iovZKK19ZJLDQqaL3InhyD016LWXt@public.gmane.org>
2009-06-05 19:54                                   ` J. Bruce Fields
2009-06-05 21:21                                     ` Trond Myklebust
2009-05-30 12:26                         ` Trond Myklebust
     [not found]                           ` <1243686363.5209.16.camel-rJ7iovZKK19ZJLDQqaL3InhyD016LWXt@public.gmane.org>
2009-05-30 12:43                             ` Trond Myklebust
2009-05-30 13:02                             ` Greg Banks
     [not found]                               ` <ac442c870905300602v6950ec42y5195d2d6ea7dd4c-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2009-06-01 22:30                                 ` J. Bruce Fields
2009-06-02 15:00                                 ` Chuck Lever
2009-06-02 17:27                                   ` Trond Myklebust
     [not found]                                     ` <1243963631.4868.124.camel-rJ7iovZKK19ZJLDQqaL3InhyD016LWXt@public.gmane.org>
2009-06-02 18:15                                       ` Chuck Lever
2009-06-03 16:22                                       ` Carlos Carvalho
2009-06-03 17:10                                         ` Trond Myklebust
     [not found]                                           ` <OFB53BFCCB.0CEC7A7E-ON852575C <1244138698.5203.59.camel@heimdal.trondhjem.org>
2009-06-03 21:28                                           ` Dean Hildebrand
2009-06-04  2:16                                             ` Carlos Carvalho
2009-06-04 17:42                                           ` Brian R Cowan
2009-06-04 18:04                                             ` Trond Myklebust
2009-06-04 20:43                                               ` Link performance over NFS degraded in RHEL5. -- was : " Brian R Cowan
2009-06-04 20:57                                                 ` Trond Myklebust
2009-06-04 21:30                                                   ` Brian R Cowan
2009-06-04 21:48                                                     ` Trond Myklebust
2009-06-04 21:07                                                 ` Peter Staubach
2009-06-04 21:39                                                   ` Brian R Cowan
2009-06-05 11:35                                                 ` Steve Dickson
2009-06-05 12:46                                                   ` Trond Myklebust
2009-06-05 13:03                                                     ` Brian R Cowan
2009-06-05 13:05                                                   ` Tom Talpey
     [not found]                                                   ` <4A29144A.6030405@gmail.com>
2009-06-05 13:30                                                     ` Steve Dickson
2009-06-05 13:52                                                       ` Trond Myklebust
     [not found]                                                         ` <1244209956.5410.33.camel-rJ7iovZKK19ZJLDQqaL3InhyD016LWXt@public.gmane.org>
2009-06-05 13:57                                                           ` Steve Dickson
     [not found]                                                             ` <4A29243F.8080008-AfCzQyP5zfLQT0dZR+AlfA@public.gmane.org>
2009-06-05 16:05                                                               ` J. Bruce Fields
2009-06-05 16:35                                                                 ` Trond Myklebust
     [not found]                                                                   ` <1244219715.5410.40.camel-rJ7iovZKK19ZJLDQqaL3InhyD016LWXt@public.gmane.org>
2009-06-15 23:08                                                                     ` J. Bruce Fields
2009-06-16  0:21                                                                       ` NeilBrown
     [not found]                                                                         ` <99d4545537613ce76040d3655b78bdb7.squirrel-eq65iwfR9nKIECXXMXunQA@public.gmane.org>
2009-06-16  0:33                                                                           ` J. Bruce Fields
2009-06-16  0:50                                                                             ` NeilBrown
     [not found]                                                                               ` <02ada87c636e1088e9365a3cbea301e7.squirrel-eq65iwfR9nKIECXXMXunQA@public.gmane.org>
2009-06-16  0:55                                                                                 ` J. Bruce Fields
2009-06-17 16:54                                                                                   ` J. Bruce Fields
2009-06-17 16:59                                                                                     ` [PATCH 1/3] nfsd: track last inode only in use_wgather case J. Bruce Fields
2009-06-17 16:59                                                                                       ` [PATCH 2/3] nfsd: Pull write-gathering code out of nfsd_vfs_write J. Bruce Fields
2009-06-17 16:59                                                                                         ` [PATCH 3/3] nfsd: minor nfsd_vfs_write cleanup J. Bruce Fields
2009-06-16  0:32                                                                       ` Link performance over NFS degraded in RHEL5. -- was : Read/Write NFS I/O performance degraded by FLUSH_STABLE page flushing Trond Myklebust
     [not found]                                                                         ` <1245112324.7470.7.camel-rJ7iovZKK19ZJLDQqaL3InhyD016LWXt@public.gmane.org>
2009-06-16  2:02                                                                           ` J. Bruce Fields
     [not found]                                                     ` <4A291D83.1000508@RedHat.com>
2009-06-05 13:50                                                       ` Tom Talpey
2009-06-05 13:54                                                         ` Trond Myklebust
2009-06-05 13:58                                                           ` Tom Talpey
2009-06-05 13:56                                                   ` Brian R Cowan
2009-06-24 19:54                                               ` [PATCH] read-modify-write page updating Peter Staubach
2009-06-25 17:13                                                 ` Trond Myklebust
     [not found]                                                   ` <1245950029.4913.17.camel-rJ7iovZKK19ZJLDQqaL3InhyD016LWXt@public.gmane.org>
2009-07-09 13:59                                                     ` Peter Staubach
2009-07-09 14:12                                                 ` [PATCH v2] " Peter Staubach
2009-07-09 15:39                                                   ` Trond Myklebust
     [not found]                                                     ` <1247153972.5766.15.camel-rJ7iovZKK19ZJLDQqaL3InhyD016LWXt@public.gmane.org>
2009-07-10 15:57                                                       ` Peter Staubach
2009-07-10 17:22                                                         ` J. Bruce Fields
2009-08-04 17:52                                                   ` [PATCH v3] " Peter Staubach
2009-08-05  0:50                                                     ` Trond Myklebust
2009-05-29 17:48               ` Read/Write NFS I/O performance degraded by FLUSH_STABLE page flushing Peter Staubach
2009-05-29 18:21                 ` Trond Myklebust
2009-05-29 17:01           ` Chuck Lever
2009-05-29 17:38             ` Brian R Cowan
2009-05-29 17:42               ` Trond Myklebust
     [not found]                 ` <1243618968.7155.60.camel-rJ7iovZKK19ZJLDQqaL3InhyD016LWXt@public.gmane.org>
2009-05-29 17:47                   ` Chuck Lever
2009-05-29 18:15                     ` Trond Myklebust
2009-05-29 17:51                   ` Peter Staubach
2009-05-29 18:25                     ` Brian R Cowan
2009-05-29 18:43                     ` Trond Myklebust
2009-05-29 17:55                   ` Brian R Cowan
2009-05-29 18:07                     ` Trond Myklebust
     [not found]                       ` <1243620455.7155.80.camel-rJ7iovZKK19ZJLDQqaL3InhyD016LWXt@public.gmane.org>
2009-05-29 18:18                         ` Brian R Cowan
2009-05-29 18:29                           ` Trond Myklebust
     [not found]                             ` <1243621769.7155.97.camel-rJ7iovZKK19ZJLDQqaL3InhyD016LWXt@public.gmane.org>
2009-05-29 20:09                               ` Brian R Cowan
2009-05-29 20:21                                 ` Trond Myklebust
     [not found]                                   ` <1243628519.7155.150.camel-rJ7iovZKK19ZJLDQqaL3InhyD016LWXt@public.gmane.org>
2009-05-29 21:55                                     ` Brian R Cowan
2009-05-29 22:03                                       ` Trond Myklebust
     [not found]                                   ` <OFBB9B2C07.CC3D028B-ON852575C5. <1243634634.7155.160.camel@heimdal.trondhjem.org>
     [not found]                                     ` <1243634634.7155.160.camel-rJ7iovZKK19ZJLDQqaL3InhyD016LWXt@public.gmane.org>
2009-05-29 22:20                                       ` Brian R Cowan
2009-05-29 22:36                                         ` Trond Myklebust
     [not found]                                     ` <OF061E0258.9581352B-ON852575C <1243636593.7155.188.camel@heimdal.trondhjem.org>
     [not found]                                       ` <1243636593.7155.188.camel-rJ7iovZKK19ZJLDQqaL3InhyD016LWXt@public.gmane.org>
2009-05-29 23:02                                         ` Brian R Cowan
2009-05-29 23:13                                           ` Trond Myklebust
2009-05-29 17:57                   ` Trond Myklebust

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=49FA0CE8.9090706@redhat.com \
    --to=staubach@redhat.com \
    --cc=brcowan@us.ibm.com \
    --cc=chuck.lever@oracle.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