From: "Satoshi UCHIDA" <s-uchida@ap.jp.nec.com>
To: <righi.andrea@gmail.com>
Cc: "'Ryo Tsuruta'" <ryov@valinux.co.jp>, <ngupta@google.com>,
<vtaras@openvz.org>, "'Dave Hansen'" <dave@linux.vnet.ibm.com>,
<linux-kernel@vger.kernel.org>, <dm-devel@redhat.com>,
<containers@lists.linux-foundation.org>,
<virtualization@lists.linux-foundation.org>,
<xen-devel@lists.xensource.com>, <agk@sourceware.org>
Subject: RE: Too many I/O controller patches
Date: Tue, 5 Aug 2008 11:50:17 +0900 [thread overview]
Message-ID: <000901c8f6a5$fe64ba30$fb2e2e90$@jp.nec.com> (raw)
In-Reply-To: <489748E6.5080106@gmail.com>
Hi, Andrea.
I participated in Containers Mini-summit.
And, I talked with Mr. Andrew Morton in The Linux Foundation Japan
Symposium BoF, Japan, July 10th.
Currently, in ML, some I/O controller patches is sent and the respective
patch keeps sending the improvement version.
We and maintainers wouldn't like this situation.
We wanted to solve this situation by the Mini-summit, but unfortunately,
no other developers participated.
(I couldn't give an opinion, because my English skill is low)
Mr. Naveen present his way in Linux Symposium, and we discussed about
I/O control at a few time after this presentation.
Mr. Andrew gave a advice "Should discuss about design more and more"
to me.
And, in Containers Mini-summit (and Linux Symposium 2008 in Ottawa),
Paul said that a necessary to us is to decide a requirement first.
So, we must discuss requirement and design.
My requirement is
* to be able to distribute performance moderately.
(* to be able to isolate each group(environment)).
I guess (it may be wrong)
Naveen's requirement is
* to be able to handle latency.
(high priority is always precede in handling I/O)
(Only share isn't just given priority to, like CFQ.)
* to be able to distribute performance moderately.
Andrea's requirement is
* to be able to set and control by absolute(direct) performance.
Ryo's requirement is
* to be able to distribute performance moderately.
* to be able to set and control I/Os at flexible range
(multi device such as LVM).
I think that most solutions controls I/O performance moderately
(by using weight/priority/percentage/etc. and by not using absolute)
because disk I/O performance is inconstant and is affected by
situation (such as application, file(data) balance, and so on).
So, it is difficult to guarantee performance which is set by
absolute bandwidth.
If devices have constant performance, it will good to control by
absolute bandwidth.
And, when guaranteeing it by the low ability, it'll be possible.
However, no one likes to make the resources wasteful.
And, he gave a advice "Can't a framework which organized each way,
such as I/O elevator, be made?".
I try to consider such framework (in elevator layer or block layer).
Now, I look at the other methods, again.
I think that OOM problems caused by memory/cache systems.
So, it will be better that I/O controller created out of these problems
first, although a lateness of the I/O device would be related.
If these problem can be resolved, its technique should be applied into
normal I/O control as well as cgroups.
Buffered write I/O is also related with cache system.
We must consider this problem as I/O control.
I don't have a good way which can resolve this problems.
> I did some experiments trying to implement minimum bandwidth requirements
> for my io-throttle controller, mapping the requirements to CFQ prio and
> using the Satoshi's controller. But this needs additional work and
> testing right now, so I've not posted anything yet, just informed
> Satoshi about this.
I'm very interested in this results.
Thanks,
Satoshi Uchida.
> -----Original Message-----
> From: Andrea Righi [mailto:righi.andrea@gmail.com]
> Sent: Tuesday, August 05, 2008 3:23 AM
> To: Dave Hansen
> Cc: Ryo Tsuruta; linux-kernel@vger.kernel.org; dm-devel@redhat.com;
> containers@lists.linux-foundation.org;
> virtualization@lists.linux-foundation.org;
> xen-devel@lists.xensource.com; agk@sourceware.org; Satoshi UCHIDA
> Subject: Re: Too many I/O controller patches
>
> Dave Hansen wrote:
> > On Mon, 2008-08-04 at 17:51 +0900, Ryo Tsuruta wrote:
> >> This series of patches of dm-ioband now includes "The bio tracking
> mechanism,"
> >> which has been posted individually to this mailing list.
> >> This makes it easy for anybody to control the I/O bandwidth even when
> >> the I/O is one of delayed-write requests.
> >
> > During the Containers mini-summit at OLS, it was mentioned that there
> > are at least *FOUR* of these I/O controllers floating around. Have you
> > talked to the other authors? (I've cc'd at least one of them).
> >
> > We obviously can't come to any kind of real consensus with people just
> > tossing the same patches back and forth.
> >
> > -- Dave
> >
>
> Dave,
>
> thanks for this email first of all. I've talked with Satoshi (cc-ed)
> about his solution "Yet another I/O bandwidth controlling subsystem for
> CGroups based on CFQ".
>
> I did some experiments trying to implement minimum bandwidth requirements
> for my io-throttle controller, mapping the requirements to CFQ prio and
> using the Satoshi's controller. But this needs additional work and
> testing right now, so I've not posted anything yet, just informed
> Satoshi about this.
>
> Unfortunately I've not talked to Ryo yet. I've continued my work using a
> quite different approach, because the dm-ioband solution didn't work
> with delayed-write requests. Now the bio tracking feature seems really
> prosiming and I would like to do some tests ASAP, and review the patch
> as well.
>
> But I'm not yet convinced that limiting the IO writes at the device
> mapper layer is the best solution. IMHO it would be better to throttle
> applications' writes when they're dirtying pages in the page cache (the
> io-throttle way), because when the IO requests arrive to the device
> mapper it's too late (we would only have a lot of dirty pages that are
> waiting to be flushed to the limited block devices, and maybe this could
> lead to OOM conditions). IOW dm-ioband is doing this at the wrong level
> (at least for my requirements). Ryo, correct me if I'm wrong or if I've
> not understood the dm-ioband approach.
>
> Another thing I prefer is to directly define bandwidth limiting rules,
> instead of using priorities/weights (i.e. 10MiB/s for /dev/sda), but
> this seems to be in the dm-ioband TODO list, so maybe we can merge the
> work I did in io-throttle to define such rules.
>
> Anyway, I still need to look at the dm-ioband and bio-cgroup code in
> details, so probably all I said above is totally wrong...
>
> -Andrea
next prev parent reply other threads:[~2008-08-05 2:53 UTC|newest]
Thread overview: 79+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-08-04 8:51 [PATCH 0/7] I/O bandwidth controller and BIO tracking Ryo Tsuruta
2008-08-04 8:52 ` [PATCH 1/7] dm-ioband: Patch of device-mapper driver Ryo Tsuruta
2008-08-04 8:52 ` [PATCH 2/7] dm-ioband: Documentation of design overview, installation, command reference and examples Ryo Tsuruta
2008-08-04 8:57 ` [PATCH 3/7] bio-cgroup: Introduction Ryo Tsuruta
2008-08-04 8:57 ` [PATCH 4/7] bio-cgroup: Split the cgroup memory subsystem into two parts Ryo Tsuruta
2008-08-04 8:59 ` [PATCH 5/7] bio-cgroup: Remove a lot of ifdefs Ryo Tsuruta
2008-08-04 9:00 ` [PATCH 6/7] bio-cgroup: Implement the bio-cgroup Ryo Tsuruta
2008-08-04 9:01 ` [PATCH 7/7] bio-cgroup: Add a cgroup support to dm-ioband Ryo Tsuruta
2008-08-08 7:10 ` [PATCH 6/7] bio-cgroup: Implement the bio-cgroup Takuya Yoshikawa
2008-08-08 8:30 ` Ryo Tsuruta
2008-08-08 9:42 ` Takuya Yoshikawa
2008-08-08 11:41 ` Ryo Tsuruta
2008-08-05 10:25 ` [PATCH 4/7] bio-cgroup: Split the cgroup memory subsystem into two parts Andrea Righi
2008-08-05 10:35 ` Hirokazu Takahashi
2008-08-06 7:54 ` KAMEZAWA Hiroyuki
2008-08-06 11:43 ` Hirokazu Takahashi
2008-08-06 13:45 ` kamezawa.hiroyu
2008-08-07 7:25 ` Hirokazu Takahashi
2008-08-07 8:21 ` KAMEZAWA Hiroyuki
2008-08-07 8:45 ` Hirokazu Takahashi
2008-08-04 17:20 ` Too many I/O controller patches Dave Hansen
2008-08-04 18:22 ` Andrea Righi
2008-08-04 19:02 ` Dave Hansen
2008-08-04 20:44 ` Andrea Righi
2008-08-04 20:50 ` Dave Hansen
2008-08-05 6:28 ` Hirokazu Takahashi
2008-08-05 5:55 ` Paul Menage
2008-08-05 6:03 ` Balbir Singh
2008-08-05 9:27 ` Andrea Righi
2008-08-05 16:25 ` Dave Hansen
2008-08-05 6:16 ` Hirokazu Takahashi
2008-08-05 9:31 ` Andrea Righi
2008-08-05 10:01 ` Hirokazu Takahashi
2008-08-05 2:50 ` Satoshi UCHIDA [this message]
2008-08-05 9:28 ` Andrea Righi
2008-08-05 13:17 ` Ryo Tsuruta
2008-08-05 16:20 ` Dave Hansen
2008-08-06 2:44 ` KAMEZAWA Hiroyuki
2008-08-06 3:30 ` Balbir Singh
2008-08-06 6:48 ` Hirokazu Takahashi
2008-08-05 12:01 ` Hirokazu Takahashi
2008-08-04 18:34 ` Balbir Singh
2008-08-04 20:42 ` Andrea Righi
2008-08-06 1:13 ` RFC: I/O bandwidth controller (was Re: Too many I/O controller patches) Fernando Luis Vázquez Cao
2008-08-06 6:18 ` RFC: I/O bandwidth controller Ryo Tsuruta
2008-08-06 6:41 ` Fernando Luis Vázquez Cao
2008-08-06 15:48 ` Dave Hansen
2008-08-07 4:38 ` Fernando Luis Vázquez Cao
2008-08-06 16:42 ` RFC: I/O bandwidth controller (was Re: Too many I/O controller patches) Balbir Singh
2008-08-06 18:00 ` Dave Hansen
2008-08-07 2:44 ` Fernando Luis Vázquez Cao
2008-08-07 3:01 ` Fernando Luis Vázquez Cao
2008-08-08 11:39 ` RFC: I/O bandwidth controller Hirokazu Takahashi
2008-08-12 5:35 ` Fernando Luis Vázquez Cao
2008-08-06 19:37 ` RFC: I/O bandwidth controller (was Re: Too many I/O controller patches) Naveen Gupta
2008-08-07 8:30 ` RFC: I/O bandwidth controller Hirokazu Takahashi
2008-08-07 13:17 ` RFC: I/O bandwidth controller (was Re: Too many I/O controller patches) Fernando Luis Vázquez Cao
2008-08-11 18:18 ` Naveen Gupta
2008-08-11 16:35 ` David Collier-Brown
2008-08-07 7:46 ` Andrea Righi
2008-08-07 13:59 ` Fernando Luis Vázquez Cao
2008-08-11 20:52 ` Andrea Righi
[not found] ` <loom.20080812T071504-212@post.gmane.org>
2008-08-12 11:10 ` RFC: I/O bandwidth controller Hirokazu Takahashi
2008-08-12 12:55 ` Andrea Righi
2008-08-12 13:07 ` Andrea Righi
2008-08-12 13:54 ` Fernando Luis Vázquez Cao
2008-08-12 15:03 ` James.Smart
2008-08-12 21:00 ` Andrea Righi
2008-08-12 20:44 ` Andrea Righi
2008-08-13 7:47 ` Dong-Jae Kang
2008-08-13 17:56 ` Andrea Righi
2008-08-14 11:18 ` David Collier-Brown
2008-08-12 13:15 ` Fernando Luis Vázquez Cao
2008-08-13 6:23 ` 강동재
2008-08-08 6:21 ` Hirokazu Takahashi
2008-08-08 7:20 ` Ryo Tsuruta
2008-08-08 8:10 ` Fernando Luis Vázquez Cao
2008-08-08 10:05 ` Ryo Tsuruta
2008-08-08 14:31 ` Hirokazu Takahashi
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='000901c8f6a5$fe64ba30$fb2e2e90$@jp.nec.com' \
--to=s-uchida@ap.jp.nec.com \
--cc=agk@sourceware.org \
--cc=containers@lists.linux-foundation.org \
--cc=dave@linux.vnet.ibm.com \
--cc=dm-devel@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=ngupta@google.com \
--cc=righi.andrea@gmail.com \
--cc=ryov@valinux.co.jp \
--cc=virtualization@lists.linux-foundation.org \
--cc=vtaras@openvz.org \
--cc=xen-devel@lists.xensource.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