From: Casper Bang <casper.bang@gmail.com>
To: linux-btrfs@vger.kernel.org
Subject: Re: Experiences: Why BTRFS had to yield for ZFS
Date: Mon, 8 Oct 2012 14:38:22 +0000 (UTC) [thread overview]
Message-ID: <loom.20121008T161833-517@post.gmane.org> (raw)
In-Reply-To: 20120919152550.GA15242@shiny.207.47.4.2
> Thanks for taking the time to write this up follow through the thread.
> It's always interesting to hear situations where btrfs doesn't work
> well.
>
> There are three basic problems with the database workloads on btrfs.
> First is that we have higher latencies on writes because we are feeding
> everything through helper threads for crcs. Usually the extra latencies
> don't show up because we have enough work in the pipeline to keep the
> drive busy.
>
> I don't believe the UEK kernels have the recent changes to do some of
> the crc work inline (without handing off) for smaller synchronous IOs.
>
> Second, on O_SYNC writes btrfs will write both the file metadata and
> data into a special tree so we can be crash safe. For big files this
> tends to spend a lot of time looking for the extents in the file that
> have changed.
>
> Josef fixed that up and it is queued for the next merge window.
>
> The third problem is that lots of random writes tend to make lots of
> metadata. If this doesn't fit in ram, we can end up doing many reads
> that slow things down. We're working on this now as well, but recent
> kernels change how we cache things and should improve the results.
I feel I should update my previous thread about performance issues using btrfs
in light of recent findings. We have discovered that, in all likelihood, what we
experienced and what was described, was not a problem with btrfs per se, but a
result of a more general issue which btrfs was just really good at exposing
(using threads more aggressively than zfs?!).
Various benchmarks in Java (thread-pool setup/shutdown) and C (pthreads creation
and joining), has shown that our Xeon/E5-2620 server with the latest Oracle
Unbreakable Linux has a very slow time serving up new threads (benchmarks
available upon request).
Java threading benchmark on Xeon/E5-2620 @ 2.0GHz:
Oracle Unbreakable Linux: 1m49s realtime, 3m17s sys-time
Ubuntu: 5s realtime, 3.9s sys-time.
We are not sure how to continue investigating why the Oracle Linux/Kernel
performs so poorly (scheduler, kernel config etc?), but it seems pretty obvious
that this issue should be raised with Oracle rather than the btrfs developers -
though we'll probably look into using another OS entirely. As such, apologies
for creating the noise, btrfs was not to blame!
If you do have a suspicion or insight on the matter (perhaps work for Oracle, or
know OUK?), of course we'd love a followup offline this list.
Kind regards,
Casper
next prev parent reply other threads:[~2012-10-08 14:38 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-09-17 8:45 Experiences: Why BTRFS had to yield for ZFS Casper Bang
2012-09-17 9:15 ` Ralf Hildebrandt
2012-09-17 9:55 ` Casper Bnag
2012-09-17 10:05 ` Avi Miller
2012-09-17 10:47 ` Casper Bnag
2012-09-17 10:58 ` Avi Miller
2012-09-18 16:48 ` Andrew McGlashan
2012-09-18 21:46 ` Avi Miller
2012-09-18 5:28 ` Anand Jain
2012-09-19 7:28 ` Casper Bang
2012-09-19 7:36 ` Fajar A. Nugraha
2012-09-19 8:09 ` Casper Bang
2012-09-18 23:08 ` Gregory Farnum
2012-09-19 15:25 ` Chris Mason
2012-09-19 19:43 ` Casper Bang
2012-10-08 14:38 ` Casper Bang [this message]
2012-10-08 20:59 ` Avi Miller
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=loom.20121008T161833-517@post.gmane.org \
--to=casper.bang@gmail.com \
--cc=linux-btrfs@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).