From: Tejun Heo <tj@kernel.org>
To: Paolo Valente <paolo.valente@unimore.it>
Cc: Shaohua Li <shli@fb.com>, Vivek Goyal <vgoyal@redhat.com>,
linux-block@vger.kernel.org, linux-kernel@vger.kernel.org,
Jens Axboe <axboe@fb.com>,
Kernel-team@fb.com, jmoyer@redhat.com,
Mark Brown <broonie@kernel.org>,
Linus Walleij <linus.walleij@linaro.org>,
Ulf Hansson <ulf.hansson@linaro.org>
Subject: Re: [PATCH V3 00/11] block-throttle: add .high limit
Date: Tue, 4 Oct 2016 16:27:54 -0400 [thread overview]
Message-ID: <20161004202754.GJ4205@htj.duckdns.org> (raw)
In-Reply-To: <B8B66027-D652-46E2-A0C6-81F227817571@unimore.it>
Hello, Paolo.
On Tue, Oct 04, 2016 at 09:29:48PM +0200, Paolo Valente wrote:
> > Hmm... I think we already discussed this but here's a really simple
> > case. There are three unknown workloads A, B and C and we want to
> > give A certain best-effort guarantees (let's say around 80% of the
> > underlying device) whether A is sharing the device with B or C.
>
> That's the same example that you proposed me in our previous
> discussion. For this example I showed you, with many boring numbers,
> that with BFQ you get the most accurate distribution of the resource.
Yes, it is about the same example and what I understood was that
"accurate distribution of the resources" holds as long as the
randomness is incidental (ie. due to layout on the filesystem and so
on) with the slice expiration mechanism offsetting the actually random
workloads.
> If you have enough stamina, I can repeat them again. To save your
I'll go back to the thread and re-read them.
> patience, here is a very brief summary. In a concrete use case, the
> unknown workloads turn into something like this: there will be a first
> time interval during which A happens to be, say, sequential, B happens
> to be, say, random and C happens to be, say, quasi-sequential. Then
> there will be a next time interval during which their characteristics
> change, and so on. It is easy (but boring, I acknowledge it) to show
> that, for each of these time intervals BFQ provides the best possible
> service in terms of fairness, bandwidth distribution, stability and so
> on. Why? Because of the elastic bandwidth-time scheduling of BFQ
> that we already discussed, and because BFQ is naturally accurate in
> redistributing aggregate throughput proportionally, when needed.
Yeah, that's what I remember and for workload above certain level of
randomness its time consumption is mapped to bw, right?
> > I get that bfq can be a good compromise on most desktop workloads and
> > behave reasonably well for some server workloads with the slice
> > expiration mechanism but it really isn't an IO resource partitioning
> > mechanism.
>
> Right. My argument is that BFQ enables you to give to each client the
> bandwidth and low-latency guarantees you want. And this IMO is way
> better than partitioning a resource and then getting unavoidable
> unfairness and high latency.
But that statement only holds while bw is the main thing to guarantee,
no? The level of isolation that we're looking for here is fairly
strict adherence to sub/few-milliseconds in terms of high percentile
scheduling latency while within the configured bw/iops limits, not
"overall this device is being used pretty well".
Thanks.
--
tejun
next prev parent reply other threads:[~2016-10-04 20:27 UTC|newest]
Thread overview: 65+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-10-03 21:20 Shaohua Li
2016-10-03 21:20 ` [PATCH v3 01/11] block-throttle: prepare support multiple limits Shaohua Li
2016-10-03 21:20 ` [PATCH v3 02/11] block-throttle: add .high interface Shaohua Li
2016-10-03 21:20 ` [PATCH v3 03/11] block-throttle: configure bps/iops limit for cgroup in high limit Shaohua Li
2016-10-03 21:20 ` [PATCH v3 04/11] block-throttle: add upgrade logic for LIMIT_HIGH state Shaohua Li
2016-10-03 21:20 ` [PATCH v3 05/11] block-throttle: add downgrade logic Shaohua Li
2016-10-03 21:20 ` [PATCH v3 06/11] blk-throttle: make sure expire time isn't too big Shaohua Li
2016-10-03 21:20 ` [PATCH v3 07/11] blk-throttle: make throtl_slice tunable Shaohua Li
2016-10-03 21:20 ` [PATCH v3 08/11] blk-throttle: detect completed idle cgroup Shaohua Li
2016-10-03 21:20 ` [PATCH v3 09/11] block-throttle: make bandwidth change smooth Shaohua Li
2016-10-03 21:20 ` [PATCH v3 10/11] block-throttle: add a simple idle detection Shaohua Li
2016-10-03 21:20 ` [PATCH v3 11/11] blk-throttle: ignore idle cgroup limit Shaohua Li
2016-10-04 13:28 ` [PATCH V3 00/11] block-throttle: add .high limit Vivek Goyal
2016-10-04 15:56 ` Tejun Heo
2016-10-04 16:22 ` Paolo Valente
2016-10-04 16:27 ` Tejun Heo
2016-10-04 17:01 ` Paolo Valente
2016-10-04 17:28 ` Shaohua Li
2016-10-04 17:43 ` Paolo Valente
2016-10-04 18:28 ` Shaohua Li
2016-10-04 19:49 ` Paolo Valente
2016-10-04 18:54 ` Tejun Heo
2016-10-04 19:02 ` Paolo Valente
2016-10-04 19:14 ` Tejun Heo
2016-10-04 19:29 ` Paolo Valente
2016-10-04 20:27 ` Tejun Heo [this message]
2016-10-05 12:37 ` Paolo Valente
2016-10-05 13:12 ` Vivek Goyal
2016-10-05 14:04 ` Paolo Valente
2016-10-05 14:49 ` Tejun Heo
2016-10-05 18:30 ` Shaohua Li
2016-10-05 19:08 ` Shaohua Li
2016-10-05 19:57 ` Paolo Valente
2016-10-05 20:36 ` Shaohua Li
2016-10-06 7:22 ` Paolo Valente
2016-10-05 19:47 ` Paolo Valente
2016-10-05 20:07 ` Paolo Valente
2016-10-05 20:46 ` Shaohua Li
2016-10-06 7:58 ` Paolo Valente
2016-10-06 13:15 ` Paolo Valente
2016-10-06 17:49 ` Vivek Goyal
2016-10-06 18:01 ` Paolo Valente
2016-10-06 18:32 ` Vivek Goyal
2016-10-06 20:51 ` Paolo Valente
2016-10-06 19:44 ` Mark Brown
2016-10-06 19:57 ` Shaohua Li
2016-10-06 22:24 ` Paolo Valente
[not found] ` <CACsaVZ+AqSXHTRdpdrQQp6PuynEPeB-5YOyweWsenjvuKsD12w@mail.gmail.com>
2016-10-09 1:15 ` Fwd: " Kyle Sanderson
2016-10-14 16:40 ` Tejun Heo
2016-10-14 17:13 ` Paolo Valente
2016-10-14 18:35 ` Tejun Heo
2016-10-16 19:02 ` Paolo Valente
2016-10-18 5:15 ` Kyle Sanderson
2016-10-06 8:04 ` Linus Walleij
2016-10-06 11:03 ` Mark Brown
2016-10-06 11:57 ` Austin S. Hemmelgarn
2016-10-06 12:50 ` Paolo Valente
2016-10-06 13:52 ` Austin S. Hemmelgarn
2016-10-06 15:05 ` Paolo Valente
2016-10-06 15:10 ` Austin S. Hemmelgarn
2016-10-08 10:46 ` Heinz Diehl
2016-10-04 18:12 ` Vivek Goyal
2016-10-04 18:50 ` Tejun Heo
2016-10-04 18:56 ` Paolo Valente
2016-10-04 17:08 ` Shaohua Li
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=20161004202754.GJ4205@htj.duckdns.org \
--to=tj@kernel.org \
--cc=Kernel-team@fb.com \
--cc=axboe@fb.com \
--cc=broonie@kernel.org \
--cc=jmoyer@redhat.com \
--cc=linus.walleij@linaro.org \
--cc=linux-block@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=paolo.valente@unimore.it \
--cc=shli@fb.com \
--cc=ulf.hansson@linaro.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
Powered by JetHome