From: Corrado Zoccolo <czoccolo@gmail.com>
To: Vivek Goyal <vgoyal@redhat.com>
Cc: "Alan D. Brunelle" <Alan.Brunelle@hp.com>,
linux-kernel@vger.kernel.org, jens.axboe@oracle.com
Subject: Re: [RFC] Block IO Controller V2 - some results
Date: Tue, 17 Nov 2009 17:17:53 +0100 [thread overview]
Message-ID: <4e5e476b0911170817s39286103g3796f25cba9f623c@mail.gmail.com> (raw)
In-Reply-To: <20091117141411.GA22462@redhat.com>
Hi Vivek,
the performance drop reported by Alan was my main concern about your
approach. Probably you should mention/document somewhere that when the
number of groups is too large, there is large decrease in random read
performance.
However, we can check few things:
* is this kernel built with HZ < 1000? The smallest idle CFQ will do
is given by 2/HZ, so running with a small HZ will increase the impact
of idling.
On Tue, Nov 17, 2009 at 3:14 PM, Vivek Goyal <vgoyal@redhat.com> wrote:
> Regarding the reduced throughput for random IO case, ideally we should not
> idle on sync-noidle group on this hardware as this seems to be a fast NCQ
> supporting hardware. But I guess we might not be detecting the queue depth
> properly which leads to idling on per group sync-noidle workload and
> forces the queue depth to be 1.
* This can be ruled out testing my NCQ detection fix patch
(http://groups.google.com/group/linux.kernel/browse_thread/thread/3b62f0665f0912b6/34ec9456c7da1bb7?lnk=raot)
However, my feeling is that the real problem is having multiple
separate sync-noidle trees.
Inter group idle is marginal, since each sync-noidle tree already has
its end-of-tree idle enabled for rotational devices (The difference in
the table is in fact small).
> ---- ---- - ----------- ----------- ----------- -----------
> Mode RdWr N base ioc off ioc no idle ioc idle
> ---- ---- - ----------- ----------- ----------- -----------
> rnd rd 2 17.3 17.1 9.4 9.1
> rnd rd 4 27.1 27.1 8.1 8.2
> rnd rd 8 37.1 37.1 6.8 7.1
2 random readers without groups have bw = 17.3 ; this means that a
single random reader will have bw > 8.6 (since the two readers go
usually in parallel when no groups are involved, unless two random
reads are actually queued to the same disk).
When the random readers are in separate groups, we give the full disk
to only one at a time, so the max aggregate bw achievable is the bw of
a single random reader less the overhead proportional to number of
groups. This is compatible with the numbers.
So, an other thing to mention in the docs is that having one process
per group is not a good idea (cfq already has I/O priorities to deal
with single processes). Groups are coarse grain entities, and they
should really be used when you need to get fairness between groups of
processes.
* An other thing to do is to try setting rotational = 0, since even
with NCQ correctly detected, if the device is rotational, we still
introduce some idle delays (that are good in the root group, but not
when you have multiple groups).
>
> I am also trying to setup a higher end system here and will do some
> experiments.
>
> Thanks
> Vivek
Thanks,
Corrado
next prev parent reply other threads:[~2009-11-17 16:17 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-11-16 20:51 Alan D. Brunelle
2009-11-16 21:14 ` Vivek Goyal
2009-11-16 21:32 ` Alan D. Brunelle
2009-11-16 21:37 ` Vivek Goyal
2009-11-16 22:18 ` Vivek Goyal
2009-11-17 12:38 ` Alan D. Brunelle
2009-11-17 14:14 ` Vivek Goyal
2009-11-17 16:17 ` Corrado Zoccolo [this message]
2009-11-17 16:40 ` Vivek Goyal
2009-11-17 17:30 ` Alan D. Brunelle
2009-11-17 17:44 ` Vivek Goyal
2009-11-17 20:59 ` Corrado Zoccolo
2009-11-17 22:38 ` Vivek Goyal
2009-11-17 23:11 ` Corrado Zoccolo
2009-11-19 0:04 ` Vivek Goyal
2009-11-19 20:12 ` Corrado Zoccolo
2009-11-17 16:45 ` Alan D. Brunelle
2009-11-18 15:32 ` Vivek Goyal
2009-11-18 16:20 ` Corrado Zoccolo
2009-11-18 22:56 ` Vivek Goyal
2009-11-18 23:35 ` Corrado Zoccolo
2009-11-20 14:18 ` Vivek Goyal
2009-11-20 14:28 ` Corrado Zoccolo
2009-11-20 15:04 ` Vivek Goyal
2009-11-20 18:32 ` Corrado Zoccolo
2009-11-20 18:42 ` Vivek Goyal
2009-11-20 19:50 ` Corrado Zoccolo
2009-11-21 17:57 ` Corrado Zoccolo
2009-11-23 15:19 ` Vivek Goyal
2009-11-23 16:22 ` Corrado Zoccolo
2009-11-17 20:38 ` Alan D. Brunelle
2009-11-19 16:57 ` Vivek Goyal
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=4e5e476b0911170817s39286103g3796f25cba9f623c@mail.gmail.com \
--to=czoccolo@gmail.com \
--cc=Alan.Brunelle@hp.com \
--cc=jens.axboe@oracle.com \
--cc=linux-kernel@vger.kernel.org \
--cc=vgoyal@redhat.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®