From: Jeff Moyer <jmoyer@redhat.com>
To: Martin Sustrik <sustrik@fastmq.com>
Cc: Roger Heflin <rogerheflin@gmail.com>,
Martin Lucina <mato@kotelna.sk>,
linux-kernel@vger.kernel.org
Subject: Re: Higher than expected disk write(2) latency
Date: Wed, 02 Jul 2008 14:15:50 -0400 [thread overview]
Message-ID: <x49abh0p2y1.fsf@segfault.boston.devel.redhat.com> (raw)
In-Reply-To: <486BB14D.5060609@fastmq.com> (Martin Sustrik's message of "Wed, 02 Jul 2008 18:48:13 +0200")
Martin Sustrik <sustrik@fastmq.com> writes:
> Hi Roger,
>
>>> Fair enough. That exaplains the behaviour. Would AIO help here? If
>>> we are able to enqueue next write before the first one is finished,
>>> it can start writing it immediately without waiting for a
>>> revolution.
>>
>> If you could get them queued at the disk level, things that would
>> need to be watched were if the disk can queue things up (and all
>> controllers/drivers support it), and how many things the disk can
>> queue up, and how large each of those things can be, if they aren't
>> queued at the disk, there is the chance that the machine cannot get
>> the data to the disk faster enough for that next sector.
>>
>> I have always avoided fully sync operations as things *ALWAYS* got
>> really really slow because of all of the requirements need to make
>> sure that it always got the data to disk correctly on a unexpected
>> crash, and typically the type of applications I dealt with, if the
>> machine crashed the currently outputting data was known to be
>> incomplete and generally useless, so things were reran.
>>
>> Depending on your application you could always get a small fast
>> solid state device (no seek or RPM issues), and use it to keep a
>> journal that could be replayed on an unexpected crash...and then
>> just use various syncs to force things to disk at various points.
>
> We've tried AIO and the results are quite disappointing. If you open
> the file with O_SYNC, the latencies are the same as with sync I/O -
> each write takes 8.3ms (7500rpm disk).
I thought you were doing I/O to the underlying block device. If so,
there's no need to open with O_SYNC. You do, however, need to open the
device with O_DIRECT and align your buffers (and buffer lengths)
properly.
Which AIO interface are you using, libaio or librt? How many I/Os are
you queueing to the device? You may want to take a look at aio-stress.c
as a way to test your device (this uses libaio, the in-kernel AIO
interface).
Cheers,
Jeff
next prev parent reply other threads:[~2008-07-02 18:16 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-06-28 12:11 Martin Lucina
2008-06-28 13:11 ` Roger Heflin
2008-06-30 18:10 ` Martin Sustrik
2008-06-30 19:02 ` Roger Heflin
2008-06-30 22:20 ` Martin Sustrik
2008-07-01 0:11 ` Bernd Eckenfels
2008-07-02 16:48 ` Martin Sustrik
2008-07-02 18:15 ` Jeff Moyer [this message]
2008-07-02 18:20 ` Martin Sustrik
2008-07-04 3:16 ` David Dillow
2008-07-02 21:33 ` Roger Heflin
2008-06-28 14:47 ` David Newall
2008-06-29 11:34 ` Martin Sustrik
2008-07-10 5:27 ` Andrew Morton
2008-07-10 8:12 ` Martin Sustrik
2008-07-10 8:14 ` Andrew Morton
2008-07-10 13:29 ` Chris Mason
2008-07-10 13:41 ` Martin Lucina
2008-07-10 14:01 ` Arjan van de Ven
2008-07-10 14:18 ` Chris Mason
2008-07-10 8:31 ` Alan Cox
2008-07-10 13:17 ` Martin Sustrik
2008-07-10 13:18 ` Andrew Morton
2008-07-11 15:17 ` Martin Sustrik
[not found] <fa.OZMA74BZPX46rhnjz1am4hB786M@ifi.uio.no>
2008-06-30 6:41 ` Robert Hancock
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=x49abh0p2y1.fsf@segfault.boston.devel.redhat.com \
--to=jmoyer@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mato@kotelna.sk \
--cc=rogerheflin@gmail.com \
--cc=sustrik@fastmq.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
all inboxes | Powered by JetHome®