From: Chris Mason <chris.mason@oracle.com>
To: "Florian D." <flockmock@gmail.com>
Cc: linux-fsdevel@vger.kernel.org
Subject: Re: [ANNOUNCE] Btrfs: a copy on write, snapshotting FS
Date: Mon, 18 Jun 2007 10:29:47 -0400 [thread overview]
Message-ID: <20070618142947.GC2061@think.oraclecorp.com> (raw)
In-Reply-To: <4673AE03.4000308@gmail.com>
On Sat, Jun 16, 2007 at 11:31:47AM +0200, Florian D. wrote:
> Chris Mason wrote:
>
> > Strange, these numbers are not quite what I was expecting ;) Could you
> > please post your fio job files? Also, how much ram does the machine
> > have? Only writing doesn't seem like enough to fill the ram.
> >
> > -chris
> >
> >
>
> Sure:
> > [global]
> > directory=/mnt/temp/default
> > filename=testfile
> > size=300m
> > randrepeat=1
> > overwrite=1
> > end_fsync=1
[ very bad results on btrfs with these parameters ]
Ok, the numbers make more sense now. Basically what is happening
is that during the random IO phase, fio is hitting every single block
in the file. Btrfs will allocate new blocks in a sequential fashion,
but the fsync does writeback in page order. So, the fsync sees
completely random block ordering, and then we see it again on the reads.
In ext3 even though the writes are random, the fsync uses the original
(sequential) ordering of the blocks, and everything works nicely.
The fix is either delayed allocation or defrag-on-writeback. Another
option (which I'll have to do for O_SYNC performance) is to leave space
in the blocks allocated to the file for COWs (basically strides of
allocated blocks).
I'll do the defrag-on-writeback right after enospc.
-chris
next prev parent reply other threads:[~2007-06-18 14:33 UTC|newest]
Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-06-12 16:10 [ANNOUNCE] Btrfs: a copy on write, snapshotting FS Chris Mason
2007-06-12 19:53 ` Mike Snitzer
2007-06-12 20:14 ` Chris Mason
2007-06-13 3:08 ` Christoph Hellwig
2007-06-13 10:17 ` Chris Mason
2007-06-13 3:46 ` John Stoffel
2007-06-13 10:35 ` Chris Mason
2007-06-13 14:00 ` John Stoffel
2007-06-13 14:54 ` Chris Mason
2007-06-13 16:12 ` John Stoffel
2007-06-13 16:34 ` Chris Mason
2007-06-13 16:25 ` Grzegorz Kulewski
2007-06-14 18:20 ` Chuck Lever
2007-06-14 18:48 ` Chris Mason
2007-06-15 17:17 ` Chuck Lever
2007-06-14 18:29 ` Florian D.
2007-06-14 19:13 ` Chris Mason
2007-06-15 19:08 ` Florian D.
2007-06-15 19:11 ` Chris Mason
2007-06-15 20:46 ` Florian D.
2007-06-15 20:51 ` Chris Mason
2007-06-15 22:03 ` Florian D.
2007-06-16 0:54 ` Chris Mason
2007-06-16 9:31 ` Florian D.
2007-06-18 14:29 ` Chris Mason [this message]
2007-06-18 14:41 ` Chris Mason
2007-06-18 17:37 ` Vladislav Bolkhovitin
2007-06-18 20:08 ` John Stoffel
2007-06-19 9:11 ` Pádraig Brady
2007-06-19 10:01 ` Vladislav Bolkhovitin
2007-06-19 18:20 ` david
2007-06-20 8:41 ` Vladislav Bolkhovitin
2007-06-19 12:04 ` Chris Mason
2007-06-19 14:00 ` Vladislav Bolkhovitin
2007-06-19 18:24 ` david
2007-06-19 18:28 ` Philipp Matthias Hahn
2007-06-20 8:44 ` Vladislav Bolkhovitin
2007-06-20 9:18 ` Ph. Marek
-- strict thread matches above, loose matches on Subject: below --
2007-06-13 5:45 Albert Cahalan
2007-06-13 12:00 ` Chris Mason
2007-06-13 16:14 ` Albert Cahalan
2007-06-13 16:57 ` Chris Mason
2007-06-14 6:59 ` Albert Cahalan
2007-06-14 12:30 ` Chris Mason
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=20070618142947.GC2061@think.oraclecorp.com \
--to=chris.mason@oracle.com \
--cc=flockmock@gmail.com \
--cc=linux-fsdevel@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;
as well as URLs for NNTP newsgroup(s).