From: Ric Wheeler <rwheeler@redhat.com>
To: djwong@us.ibm.com
Cc: Andreas Dilger <adilger.kernel@dilger.ca>,
"Ted Ts'o" <tytso@mit.edu>, Mingming Cao <cmm@us.ibm.com>,
linux-ext4 <linux-ext4@vger.kernel.org>,
linux-kernel <linux-kernel@vger.kernel.org>,
Keith Mannthey <kmannth@us.ibm.com>,
Mingming Cao <mcao@us.ibm.com>, Tejun Heo <tj@kernel.org>,
hch@lst.de, Josef Bacik <josef@redhat.com>,
Mike Snitzer <snitzer@redhat.com>
Subject: Re: Performance testing of various barrier reduction patches [was: Re: [RFC v4] ext4: Coordinate fsync requests]
Date: Fri, 08 Oct 2010 17:56:12 -0400 [thread overview]
Message-ID: <4CAF937C.4020500@redhat.com> (raw)
In-Reply-To: <20101008212606.GE25624@tux1.beaverton.ibm.com>
On 10/08/2010 05:26 PM, Darrick J. Wong wrote:
> On Mon, Sep 27, 2010 at 04:01:11PM -0700, Darrick J. Wong wrote:
>> Other than those regressions, the jbd2 fsync coordination is about as fast as
>> sending the flush directly from ext4. Unfortunately, where there _are_
>> regressions they seem rather large, which makes this approach (as implemented,
>> anyway) less attractive. Perhaps there is a better way to do it?
> Hmm, not much chatter for two weeks. Either I've confused everyone with the
> humongous spreadsheet, or ... something?
>
> I've performed some more extensive performance and safety testing with the
> fsync coordination patch. The results have been merged into the spreadsheet
> that I linked to in the last email, though in general the results have not
> really changed much at all.
>
> I see two trends happening here with regards to comparing the use of jbd2 to
> coordinate the flushes vs. measuring and coodinating flushes directly in ext4.
> The first is that for loads that most benefit from having any kind of fsync
> coordination (i.e. storage with slow flushes), the jbd2 approach provides the
> same or slightly better performance than the direct approach. However, for
> storage with fast flushes, the jbd2 approach seems to cause major slowdowns
> even compared to not changing any code at all. To me this would suggest that
> ext4 needs to coordinate the fsyncs directly, even at a higher code maintenance
> cost, because a huge performance regression isn't good.
>
> Other people in my group have been running their own performance comparisons
> between no-coordination, jbd2-coordination, and direct-coordination, and what
> I'm hearing is tha the direct-coordination mode is slightly faster than jbd2
> coordination, though either are better than no coordination at all. Happily, I
> haven't seen an increase in fsck complaints in my poweroff testing.
>
> Given the nearness of the merge window, perhaps we ought to discuss this on
> Monday's ext4 call? In the meantime I'll clean up the fsync coordination patch
> so that it doesn't have so many debugging knobs and whistles.
>
> Thanks,
>
> --D
Hi Darrick,
We have been busily testing various combinations at Red Hat (we being not me
:)), but here is one test that we used a long time back to validate the batching
impact.
You need a slow, poky S-ATA drive - the slower it spins, the better.
A single fs_mark run against that drive should drive some modest number of
files/sec with 1 thread:
[root@tunkums /]# fs_mark -s 20480 -n 500 -L 5 -d /test/foo
On my disk, I see:
5 500 20480 31.8 6213
Now run with 4 threads to give the code a chance to coalesce.
On my box, I see it jump up:
5 2000 20480 113.0 25092
And at 8 threads it jumps again:
5 4000 20480 179.0 49480
This work load is very device specific. On a very low latency device (arrays,
high performance SSD), the coalescing "wait" time could be slower than just
dispatching the command. Ext3/4 work done by Josef a few years back was meant to
use high res timers to dynamically adjust that wait to avoid slowing down.
Have we tested the combined patchset with this?
Thanks!
Ric
next prev parent reply other threads:[~2010-10-08 21:55 UTC|newest]
Thread overview: 55+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-04-29 23:51 [RFC] ext4: Don't send extra barrier during fsync if there are no dirty pages Darrick J. Wong
2010-05-04 0:57 ` Mingming Cao
2010-05-04 14:16 ` Ric Wheeler
2010-05-04 15:45 ` Christoph Hellwig
2010-06-30 12:48 ` tytso
2010-06-30 13:21 ` Ric Wheeler
2010-06-30 13:44 ` tytso
2010-06-30 13:54 ` Ric Wheeler
2010-06-30 19:05 ` Andreas Dilger
2010-07-21 17:16 ` Jan Kara
2010-08-03 0:09 ` Darrick J. Wong
2010-08-03 9:01 ` Christoph Hellwig
2010-08-04 18:16 ` Darrick J. Wong
2010-08-03 13:21 ` Jan Kara
2010-08-03 13:24 ` Avi Kivity
2010-08-04 23:32 ` Ted Ts'o
2010-08-05 2:20 ` Avi Kivity
2010-08-05 16:17 ` Ted Ts'o
2010-08-05 19:13 ` Jeff Moyer
2010-08-05 20:39 ` Ted Ts'o
2010-08-05 20:44 ` Jeff Moyer
2010-05-04 19:49 ` Mingming Cao
2010-06-29 20:51 ` [RFC v2] " Darrick J. Wong
2010-08-05 16:40 ` Ted Ts'o
2010-08-05 16:45 ` Ted Ts'o
2010-08-06 7:04 ` Darrick J. Wong
2010-08-06 10:17 ` Ric Wheeler
2010-08-09 19:53 ` [RFC v3] ext4: Combine barrier requests coming from fsync Darrick J. Wong
2010-08-09 21:07 ` Christoph Hellwig
2010-08-16 16:14 ` Darrick J. Wong
2010-08-19 2:07 ` Darrick J. Wong
2010-08-19 8:53 ` Christoph Hellwig
2010-08-19 9:17 ` Tejun Heo
2010-08-19 15:48 ` Tejun Heo
2010-08-09 21:19 ` Andreas Dilger
2010-08-09 23:38 ` Darrick J. Wong
2010-08-19 2:14 ` [RFC v4] ext4: Coordinate fsync requests Darrick J. Wong
2010-08-23 18:31 ` Performance testing of various barrier reduction patches [was: Re: [RFC v4] ext4: Coordinate fsync requests] Darrick J. Wong
2010-09-23 23:25 ` Darrick J. Wong
2010-09-24 6:24 ` Andreas Dilger
2010-09-24 11:44 ` Ric Wheeler
2010-09-27 23:01 ` Darrick J. Wong
2010-10-08 21:26 ` Darrick J. Wong
2010-10-08 21:56 ` Ric Wheeler [this message]
2010-10-11 20:20 ` Darrick J. Wong
2010-10-12 14:14 ` Christoph Hellwig
2010-10-15 23:39 ` Darrick J. Wong
2010-10-15 23:40 ` Christoph Hellwig
2010-10-16 0:02 ` Darrick J. Wong
2010-10-11 14:33 ` Ted Ts'o
2010-10-18 22:49 ` Darrick J. Wong
2010-10-19 18:28 ` Christoph Hellwig
2010-08-06 7:13 ` [RFC v2] ext4: Don't send extra barrier during fsync if there are no dirty pages Darrick J. Wong
2010-08-06 18:04 ` Ted Ts'o
2010-08-09 19:36 ` Darrick J. Wong
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=4CAF937C.4020500@redhat.com \
--to=rwheeler@redhat.com \
--cc=adilger.kernel@dilger.ca \
--cc=cmm@us.ibm.com \
--cc=djwong@us.ibm.com \
--cc=hch@lst.de \
--cc=josef@redhat.com \
--cc=kmannth@us.ibm.com \
--cc=linux-ext4@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mcao@us.ibm.com \
--cc=snitzer@redhat.com \
--cc=tj@kernel.org \
--cc=tytso@mit.edu \
/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;
as well as URLs for NNTP newsgroup(s).