From: Jens Axboe <axboe@suse.de>
To: Rik van Riel <riel@conectiva.com.br>
Cc: Andrea Arcangeli <andrea@suse.de>, Andrew Morton <akpm@digeo.com>,
Con Kolivas <conman@kolivas.net>,
linux kernel mailing list <linux-kernel@vger.kernel.org>,
marcelo@conectiva.com.br
Subject: Re: [BENCHMARK] 2.4.{18,19{-ck9},20rc1{-aa1}} with contest
Date: Mon, 11 Nov 2002 15:09:20 +0100 [thread overview]
Message-ID: <20021111140920.GA838@suse.de> (raw)
In-Reply-To: <Pine.LNX.4.44L.0211111139450.30221-100000@imladris.surriel.com>
On Mon, Nov 11 2002, Rik van Riel wrote:
> > Infact I today think the max_bomb_segment I researched some year back
> > was so beneficial in terms of read-latency just because it effectively
>
> That must be why it was backed out ;)
Warning, incredibly bad quote snip above.
Rik, you basically deleted the interesting part there. The
max_bomb_segment logic was pretty uninteresting if you looked at it
from the POV that says that we must limit the size of a request to
prevent starvation. This is what the name implies, and this is flawed.
However, Andrea goes on to say that it sort-of worked anyways, just
not for the reaon he originally thought it would. It worked because it
limited the total size of pending writes in the queue. And this is
indeed the key factor to read latency in the 2.4 elevator, because reads
tend to get pushed in the back all the time because the queue looks like
R1-W1-W2-W3-....W127
service R1, queue is now
W1-W2-W3....-W127
application got R1 serviced, issue a new read. Queue is now:
W1-W2-W3....-W127-R2
So even with 0 read passover value, an application typically has to wait
for the total sum of writes in the queue. And this is what causes the
starvation. max_bomb_segments wasn't too good anyways, because in order
to get good latency you have to limit the sum of W1-W127 way too much
and then it starts to hurt write throughput really badly.
This is why the 2.4 io scheduler is fundamentally flawed from the read
latency view point. This is also why the 2.5 deadline io scheduler is
far superior in this area.
>> But when each request is large 512k it is pointless to allow the same
>> number of requests that we allow when the requests are 4k.
> A request of 512 kB will take about twice the time to service as a 4 kB
> request would take, assuming the disk does around 50 MB/s throughput.
> If you take one of those really modern disks Andre Hedrick has in his
> lab the difference gets even smaller.
I'll mention that for 2.5 the number of bytes that equals a full seek in
service time if called a stream_unit and is tweakable. Typically you are
looking at plain 40MiB/s and 8ms seek, so ~256-300KiB is more in the
normal range that 512KiB.
--
Jens Axboe
next prev parent reply other threads:[~2002-11-11 14:02 UTC|newest]
Thread overview: 47+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-11-09 2:00 [BENCHMARK] 2.4.{18,19{-ck9},20rc1{-aa1}} with contest Con Kolivas
2002-11-09 2:36 ` Andrew Morton
2002-11-09 3:26 ` Con Kolivas
2002-11-09 4:15 ` Andrew Morton
2002-11-09 5:12 ` Con Kolivas
2002-11-09 11:21 ` Jens Axboe
2002-11-09 13:09 ` Con Kolivas
2002-11-09 13:35 ` Stephen Lord
2002-11-09 13:54 ` Jens Axboe
2002-11-09 21:12 ` Arador
2002-11-10 2:26 ` Andrea Arcangeli
2002-11-09 21:53 ` Con Kolivas
2002-11-10 10:09 ` Jens Axboe
2002-11-10 16:23 ` Andrea Arcangeli
2002-11-11 4:26 ` Con Kolivas
2002-11-10 10:12 ` Kjartan Maraas
2002-11-10 10:17 ` Jens Axboe
2002-11-10 16:27 ` Andrea Arcangeli
2002-11-09 11:20 ` Jens Axboe
2002-11-10 2:44 ` Andrea Arcangeli
2002-11-10 3:56 ` Matt Reppert
2002-11-10 9:58 ` Con Kolivas
2002-11-10 10:06 ` Jens Axboe
2002-11-10 16:21 ` Andrea Arcangeli
2002-11-10 16:20 ` Andrea Arcangeli
2002-11-10 19:32 ` Rik van Riel
2002-11-10 20:10 ` Andrea Arcangeli
2002-11-10 20:52 ` Andrew Morton
2002-11-10 21:05 ` Rik van Riel
2002-11-11 1:54 ` Andrea Arcangeli
2002-11-11 4:03 ` Andrew Morton
2002-11-11 4:06 ` Andrea Arcangeli
2002-11-11 4:22 ` Andrew Morton
2002-11-11 4:39 ` Andrea Arcangeli
2002-11-11 5:10 ` Andrew Morton
2002-11-11 5:23 ` Andrea Arcangeli
2002-11-11 7:58 ` William Lee Irwin III
2002-11-11 13:56 ` Rik van Riel
2002-11-11 13:45 ` Rik van Riel
2002-11-11 14:09 ` Jens Axboe [this message]
2002-11-11 15:48 ` Andrea Arcangeli
2002-11-11 15:43 ` Andrea Arcangeli
2002-11-10 20:56 ` Andrew Morton
2002-11-11 1:08 ` Andrea Arcangeli
-- strict thread matches above, loose matches on Subject: below --
2002-11-09 3:44 Dieter Nützel
2002-11-09 3:54 ` Con Kolivas
2002-11-09 4:02 ` Dieter Nützel
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=20021111140920.GA838@suse.de \
--to=axboe@suse.de \
--cc=akpm@digeo.com \
--cc=andrea@suse.de \
--cc=conman@kolivas.net \
--cc=linux-kernel@vger.kernel.org \
--cc=marcelo@conectiva.com.br \
--cc=riel@conectiva.com.br \
/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