From: Martin Sustrik <sustrik@fastmq.com>
To: Roger Heflin <rogerheflin@gmail.com>
Cc: Martin Lucina <mato@kotelna.sk>, linux-kernel@vger.kernel.org
Subject: Re: Higher than expected disk write(2) latency
Date: Wed, 02 Jul 2008 18:48:13 +0200 [thread overview]
Message-ID: <486BB14D.5060609@fastmq.com> (raw)
In-Reply-To: <48692DC0.6060904@gmail.com>
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).
If you use O_ASYNC the latencies are nice (160us mean), however, the
first one is ~900us meaning that the data were not physically written to
the disk before AIO confirmation is sent. (Moving head to right position
would take much more than 900us.)
Still, my feeling is that our use case is pretty straightforward, i.e.
write data to the disk with any optimisations you are able to do and
notify me when the data are physically written to the medium.
Isn't there a way to achieve this kind of behaviour?
Martin
next prev parent reply other threads:[~2008-07-02 16:48 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-06-28 12:11 Higher than expected disk write(2) latency 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 [this message]
2008-07-02 18:15 ` Jeff Moyer
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=486BB14D.5060609@fastmq.com \
--to=sustrik@fastmq.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mato@kotelna.sk \
--cc=rogerheflin@gmail.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