From: Austin S Hemmelgarn <ahferroin7@gmail.com>
To: Kai Krakow <hurikhan77@gmail.com>, linux-btrfs@vger.kernel.org
Subject: Re: btrfs performance, sudden drop to 0 IOPs
Date: Thu, 12 Feb 2015 07:21:13 -0500 [thread overview]
Message-ID: <54DC9AB9.7030505@gmail.com> (raw)
In-Reply-To: <62ntqb-o2r.ln1@hurikhan77.spdns.de>
On 2015-02-11 23:33, Kai Krakow wrote:
> Duncan <1i5t5.duncan@cox.net> schrieb:
>
>> P. Remek posted on Tue, 10 Feb 2015 18:44:33 +0100 as excerpted:
>>
>>> In the test, I use --direct=1 parameter for fio which basically does
>>> O_DIRECT on target file. The O_DIRECT should guarantee that the
>>> filesystem cache is bypassed and IO is sent directly to the underlaying
>>> storage. Are you saying that btrfs buffers writes despite of O_DIRECT?
>>
>> I'm out of my (admin, no claims at developer) league on that. I see
>> someone else replied, and would defer to them on this.
>
> I don't think that O_DIRECT can work efficiently on COW filesystems. It
> probably has a negative effect and cannot be faster as normal access. Linus
> itself said one time that O_DIRECT is broken and should go away, and instead
> cache hinting should be used.
>
> Think of this: For the _unbuffered_ direct-io request to be fulfilled the
> file system has to go through its COW logic first which it otherwise had
> buffered and done in background. Bypassing the cache is probably only a
> side-effect of O_DIRECT, not its purpose.
IIUC, the original purpose of O_DIRECT was to allow the application to
handle caching itself, instead of having the kernel do it. The issue is
that it is (again, IIUC) a hard requirement for AIO, which is a
performance booster for many use cases.
>
> At least I'd try with a nocow-file for the benchmark if you still have to
> use O_DIRECT.
>
I'd definitely suggest using NOCOW for any file you are doing O_DIRECT
with, as you should see _much_ better performance that way, and also
don't run the (theoretical) risk of some of the same types of corruption
that swapfiles on BTRFS can cause.
next prev parent reply other threads:[~2015-02-12 12:21 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-02-09 17:26 btrfs performance, sudden drop to 0 IOPs P. Remek
2015-02-09 19:56 ` Kai Krakow
2015-02-09 22:21 ` P. Remek
2015-02-10 6:58 ` Kai Krakow
2015-02-10 4:42 ` Duncan
2015-02-10 17:44 ` P. Remek
2015-02-12 2:10 ` Duncan
2015-02-12 4:33 ` Kai Krakow
2015-02-12 12:21 ` Austin S Hemmelgarn [this message]
2015-02-12 19:42 ` Kai Krakow
2015-02-13 13:16 ` P. Remek
2015-02-13 18:26 ` Kai Krakow
2015-02-13 13:08 ` P. Remek
2015-02-13 2:46 ` Liu Bo
2015-02-13 3:55 ` Wang Shilong
2015-02-13 13:18 ` P. Remek
2015-02-11 12:40 ` Austin S Hemmelgarn
2015-02-12 4:59 ` Liu Bo
2015-02-13 13:06 ` P. Remek
2015-02-13 14:08 ` Liu Bo
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=54DC9AB9.7030505@gmail.com \
--to=ahferroin7@gmail.com \
--cc=hurikhan77@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.