From: Trond Myklebust <trond.myklebust@fys.uio.no>
To: Peter Staubach <staubach@redhat.com>
Cc: "J. Bruce Fields" <bfields@fieldses.org>,
NFS list <linux-nfs@vger.kernel.org>
Subject: Re: [PATCH v2] flow control for WRITE requests
Date: Mon, 01 Jun 2009 17:48:06 -0400 [thread overview]
Message-ID: <1243892886.4868.74.camel@heimdal.trondhjem.org> (raw)
In-Reply-To: <4A1EB09A.8030809@redhat.com>
On Thu, 2009-05-28 at 11:41 -0400, Peter Staubach wrote:
> -----
>
> I am trying to do accomplish two things here. The first thing
> was to smooth the WRITE traffic so that the client would perform
> better. Caching a few gigabytes of data and then flushing it to
> the server using a firehose doesn't seem to work very well. In
> a customer situation, I really had a server which could not keep
> up with the client. Something was needed to better match the
> client and server bandwidths.
>
> Second, I noticed that the architecture to smooth the WRITE
> traffic and do the flow control could be used very nicely to
> solve the stat() problem too. The smoothing of the WRITE
> traffic results in fewer dirty cached pages which need to get
> flushed to the server during the stat() processing. This helps
> to reduce the latency of the stat() call. Next, the flow control
> aspect can be used to block the application which is writing to
> the file while the application. It happens without adding any
> more code to the writing path.
>
> I have spent quite a bit of time trying to measure the performance
> impact. As far as I can see, it varies from significantly better
> to no affect. Some things like dd run much better in my test
> network. Other things like rpmbuild don't appear to be affected.
> Compilations tend to be random access to files and are generally
> more cpu limited than i/o bound.
So, how about doing this by modifying balance_dirty_pages() instead?
Limiting pages on a per-inode basis isn't going to solve the common
problem of 'ls -l' performance, where you have to stat a whole bunch of
files, all of which may be dirty. To deal with that case, you really
need an absolute limit on the number of dirty pages.
Currently, we have only relative limits: a given bdi is allowed a
maximum percentage value of the total write back cache size... We could
add a 'max_pages' field, that specifies an absolute limit at which the
vfs should start writeback.
Cheers
Trond
next prev parent reply other threads:[~2009-06-01 21:48 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-03-24 19:31 [PATCH v2] flow control for WRITE requests Peter Staubach
2009-03-24 21:19 ` J. Bruce Fields
2009-03-25 13:15 ` Peter Staubach
2009-05-27 19:18 ` Peter Staubach
2009-05-27 20:45 ` Trond Myklebust
[not found] ` <1243457149.8522.68.camel-rJ7iovZKK19ZJLDQqaL3InhyD016LWXt@public.gmane.org>
2009-05-28 15:41 ` Peter Staubach
2009-05-28 15:48 ` Chuck Lever
2009-06-01 21:48 ` Trond Myklebust [this message]
[not found] ` <1243892886.4868.74.camel-rJ7iovZKK19ZJLDQqaL3InhyD016LWXt@public.gmane.org>
2009-06-02 18:37 ` Peter Staubach
2009-06-02 22:12 ` Trond Myklebust
[not found] ` <1243980736.4868.314.camel-rJ7iovZKK19ZJLDQqaL3InhyD016LWXt@public.gmane.org>
2009-06-03 14:17 ` Peter Staubach
2009-06-09 22:32 ` Peter Staubach
2009-06-09 23:05 ` Trond Myklebust
[not found] ` <1244588719.24750.20.camel-rJ7iovZKK19ZJLDQqaL3InhyD016LWXt@public.gmane.org>
2009-06-10 19:43 ` Peter Staubach
2009-07-06 0:48 ` Neil Brown
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=1243892886.4868.74.camel@heimdal.trondhjem.org \
--to=trond.myklebust@fys.uio.no \
--cc=bfields@fieldses.org \
--cc=linux-nfs@vger.kernel.org \
--cc=staubach@redhat.com \
/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