From: "Satoshi UCHIDA" <s-uchida@ap.jp.nec.com>
To: "'Ryo Tsuruta'" <ryov@valinux.co.jp>
Cc: <axboe@kernel.dk>, <vtaras@openvz.org>,
<containers@lists.linux-foundation.org>,
<tom-sugawara@ap.jp.nec.com>, <linux-kernel@vger.kernel.org>
Subject: RE: [RFC][v2][patch 0/12][CFQ-cgroup]Yet another I/O bandwidth controlling subsystem for CGroups based on CFQ
Date: Tue, 27 May 2008 20:32:48 +0900 [thread overview]
Message-ID: <004f01c8bfed$640fa380$2c2eea80$@jp.nec.com> (raw)
In-Reply-To: <20080526.114627.104044752.ryov@valinux.co.jp>
Hi, Tsuruta-san.
> I'm looking forward to your report.
>
I report my tests.
My test shows following features.
o The guaranteeing degrees are widely in write I/Os than in read I/Os for each environment.
o Vasily's scheduler can guarantee I/O control.
However, its guaranteeing degree is narrow.
(in particular, at low priority)
o Satoshi's scheduler can guarantee I/O control.
However, guaranteeing degree is too small in write only and low priority case.
o Write I/Os are faster than read I/Os.
And, CFQ scheduler controls I/Os by time slice.
So, guaranteeing degree is caused difference from estimating degree at requests level by the situation of read and write I/Os.
I'll continue testing variously.
I hope to improve I/O control scheduler through many tests.
Details of the tests are as follows:
Environment:
Linux version 2.6.25-rc5-mm1 based.
4 type:
kernel with Vasily's scheduler
kernel with Satoshi's scheduler
Native kernel
Native kernel and use ionice commands to each process.
CPU0: Intel(R) Core(TM)2 CPU 6700 @ 2.66GHz stepping 6
CPU1: Intel(R) Core(TM)2 CPU 6700 @ 2.66GHz stepping 6
Memory: 4060180k/5242880k available (2653k kernel code, 132264k reserved, 1412k data, 356k init)
scsi 3:0:0:0: Direct-Access ATA WDC WD2500JS-19N 10.0 PQ: 0 ANSI: 5
sd 3:0:0:0: [sdb] 488282256 512-byte hardware sectors (250001 MB)
sd 3:0:0:0: [sdb] Write Protect is off
sd 3:0:0:0: [sdb] Mode Sense: 00 3a 00 00
sd 3:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
sd 3:0:0:0: [sdb] 488282256 512-byte hardware sectors (250001 MB)
sd 3:0:0:0: [sdb] Write Protect is off
sd 3:0:0:0: [sdb] Mode Sense: 00 3a 00 00
sd 3:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
sdb: sdb1 sdb2 sdb3 sdb4 < sdb5 >
Test 1:
Procedures:
o Prepare 200 files which size is 250MB on 1 partition sdb3
o Create 3 groups with priority 0, 4 and 7.
Estimate peformance in Vasily's scheduler : group-1 57.1% group-2 35.7% group-3 7.2%
Estimate peformance in Satoshi's scheduler : group-1 61.5% group-2 30.8% group-3 7.7%
Estimate peformance in Native Linux CFQ scheduler with ionice command :
group-1 92.8% group-2 5.8% group-3 1.4%
o Run many processes issuing random direct I/O with 4KB data on each files in 3 groups.
#1 Run 25 processes issuing read I/O only per groups.
#2 Run 25 processes issuing write I/O only per groups.
#3 Run 15 processes issuing read I/O and 15 processes issuing writeI/O only per groups.
o Count up the number of I/Os which have done in 120 seconds.
o Measure at 5 times in each situation.
o Results is calculated by averatve of 5 times.
Results:
Vasily's scheduler
The number of I/Os (percentage to total I/Os)
-----------------------------------------------------------------------------------
| group | group 1 | group 2 | group 3 | total |
| priority | 7(highest) | 4 | 0(lowest) | I/Os |
|---------------+------------------+------------------+------------------|----------|
| #1 Read | 6077.2 (46.33%) | 3680.8 (28.06%) | 3360.2 (25.61%) | 13118.2 |
| #2 Write | 10291.2 (53.13%) | 5282.8 (27.27%) | 3796.2 (19.60%) | 19370.2 |
| #3 Read&Write | 7218.0 (49.86%) | 4273.0 (29.52%) | 2986.0 (20.63%) | 14477.0 |
| | (Read 45.52%) | (Read 51.96%) | (Read 52.63%)| (Read 48.89%)|
------------------------------------------------------------------------------------
Satoshi's scheduler
The number of I/Os (percentage to total I/O)
-----------------------------------------------------------------------------------
| group | group 1 | group 2 | group 3 | total |
| priority | 0(highest) | 4 | 7(lowest) | I/Os |
|---------------+------------------+------------------+------------------|----------|
| #1 Read | 9082.2 (60.90%) | 4403.0 (29.53%) | 1427.4 (9.57%) | 14912.6 |
| #2 Write | 15449.0 (68.74%) | 6144.2 (27.34%) | 881.8 (3.92%) | 22475.0 |
| #3 Read&Write | 11283.6 (65.35%) | 4699.0 (27.21%) | 1284.8 (7.44%) | 17267.4 |
| | (Read 41.08%) | (Read 47.84%) | (Read 57.07%)| (Read 44.11%)|
------------------------------------------------------------------------------------
Native Linux CFQ scheduler
The number of I/Os (percentage to total I/O)
-----------------------------------------------------------------------------------
| group | group 1 | group 2 | group 3 | total |
|---------------+------------------+------------------+------------------|----------|
| #1 Read | 4362.2 (34.94%) | 3864.4 (30.95%) | 4259.8 (34.12%) | 12486.4 |
| #2 Write | 6918.4 (37.23%) | 5894.0 (31.71%) | 5772.0 (31.06%) | 18584.4 |
| #3 Read&Write | 4701.2 (33.62%) | 4788.0 (34.24%) | 4496.0 (32.15%) | 13985.2 |
| | (Read 45.85%) | (Read 48.99%) | (Read 51.28%)| (Read 48.67%)|
------------------------------------------------------------------------------------
Native Linux CFQ scheduler with ionice command
The number of I/Os (percentage to total I/O)
-----------------------------------------------------------------------------------
| group | group 1 | group 2 | group 3 | total |
| priority | 0(highest) | 4 | 7(lowest) | I/Os |
|---------------+------------------+------------------+------------------|----------|
| #1 Read | 12844.2 (85.34%) | 1544.8 (10.26%) | 661.8 (4.40%) | 15050.8 |
| #2 Write | 24858.4 (92.44%) | 1568.4 ( 5.83%) | 463.4 (1.72%) | 26890.2 |
| #3 Read&Write | 16205.4 (85.53%) | 2016.8 (10.64%) | 725.6 (3.83%) | 18947.8 |
| | (Read 37.49%) | (Read 57.97%) | (Read 56.62%)| (Read 40.40%)|
------------------------------------------------------------------------------------
Test 2:
Procedures:
o Prepare 200 files which size is 250MB on 1 partition sdb3
o Create 3 groups with priority 0, 4 and 7.
o Run many processes issuing random direct I/O with 4KB data on each files in 3 groups.
#1 Run 25 processes issuing read I/O only in group 1 and group 2 and run 25 processes issuing write I/O only in group 3.
(This pattern is represent by "R-R-W".)
#2 Run 25 processes issuing read I/O only in group 1 and group 3 and run 25 processes issuing write I/O only in group 2.
(This pattern is represent by "R-W-R".)
#3 Run 25 processes issuing read I/O only in group 2 and group 3 and run 25 processes issuing write I/O only in group 1.
(This pattern is represent by "R-R-W".)
o Count up the number of I/Os which have done in 120 seconds.
o Measure at 5 times in each situation.
o Results is calculated by averatve of 5 times.
Results:
Vasily's scheduler
The number of I/Os (percentage to total I/Os)
-----------------------------------------------------------------------------------
| group | group 1 | group 2 | group 3 | total |
| priority | 7(highest) | 4 | 0(lowest) | I/Os |
|---------------+------------------+------------------+------------------|----------|
| #1 R-R-W | 8828.2 (52.46%) | 4372.2 (25.98%) | 3628.8 (21.56%) | 16829.2 |
| #2 R-W-R | 5510.2 (35.01%) | 6584.6 (41.83%) | 3646.0 (23.16%) | 15740.8 |
| #3 W-R-R | 6400.4 (41.91%) | 3856.4 (25.25%) | 5016.4 (32.84%) | 15273.2 |
------------------------------------------------------------------------------------
Results shows peculiar case in test #2.
I/O counts in group 2 are 5911, 4895, 8498, 9300 and 4319.
In third and fourth time, I/O counts are huge.
An average of first, second and fifth results is following.
-----------------------------------------------------------------------------------
| group | group 1 | group 2 | group 3 | total |
| priority | 7(highest) | 4 | 0(lowest) | I/Os |
|---------------+------------------+------------------+------------------|----------|
| #2 R-W-R | 6285.7 (41.82%) | 5041.7 (33.54%) | 3702.7 (24.64%) | 15030.0 |
-----------------------------------------------------------------------------------
Satoshi's scheduler
The number of I/Os (percentage to total I/O)
-----------------------------------------------------------------------------------
| group | group 1 | group 2 | group 3 | total |
| priority | 0(highest) | 4 | 7(lowest) | I/Os |
|---------------+------------------+------------------+------------------|----------|
| #1 R-R-W | 9178.6 (61.95%) | 4510.8 (30.44%) | 1127.4 (7.61%) | 14816.8 |
| #2 R-W-R | 9398.0 (56.29%) | 6152.2 (36.85%) | 1146.4 (6.87%) | 16696.6 |
| #3 W-R-R | 15527.0 (72.38%) | 4544.8 (21.19%) | 1380.0 (6.43%) | 21451.8 |
------------------------------------------------------------------------------------
Native Linux CFQ scheduler
The number of I/Os (percentage to total I/O)
-----------------------------------------------------------------------------------
| group | group 1 | group 2 | group 3 | total |
|---------------+------------------+------------------+------------------|----------|
| #1 R-R-W | 4622.4 (33.15%) | 4739.2 (33.98%) | 4583.4 (32.87%) | 13945.0 |
| #2 R-W-R | 4610.6 (31.72%) | 5502.2 (37.85%) | 4422.4 (30.43%) | 14535.2 |
| #3 W-R-R | 5518.0 (37.57%) | 4734.2 (32.24%) | 4433.2 (30.19%) | 14685.4 |
-----------------------------------------------------------------------------------
Native Linux CFQ scheduler with ionice
The number of I/Os (percentage to total I/O)
-----------------------------------------------------------------------------------
| group | group 1 | group 2 | group 3 | total |
| priority | 0(highest) | 4 | 7(lowest) | I/Os |
|---------------+------------------+------------------+------------------|----------|
| #1 Read | 12619.4 (84.49%) | 1537.4 (10.29%) | 779.2 (5.22%) | 14936.0 |
| #2 Write | 12724.4 (81.44%) | 2276.6 (14.57%) | 623.2 (3.99%) | 15624.2 |
| #3 Read&Write | 24442.8 (91.75%) | 1592.6 ( 5.98%) | 604.6 (2.27%) | 26640.0 |
-----------------------------------------------------------------------------------
Thanks,
Satoshi UCHIDA.
next prev parent reply other threads:[~2008-05-27 11:33 UTC|newest]
Thread overview: 95+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-04-01 9:22 [RFC][patch 0/11][CFQ-cgroup]Yet another I/O bandwidth controlling subsystem for CGroups based on CFQ Satoshi UCHIDA
2008-04-01 9:27 ` [RFC][patch 1/11][CFQ-cgroup] Add Configuration Satoshi UCHIDA
2008-04-01 9:27 ` Satoshi UCHIDA
2008-04-01 9:30 ` [RFC][patch 2/11][CFQ-cgroup] Move header file Satoshi UCHIDA
2008-04-01 9:30 ` Satoshi UCHIDA
2008-04-01 9:32 ` [RFC][patch 3/11][CFQ-cgroup] Introduce cgroup subsystem Satoshi UCHIDA
2008-04-02 22:41 ` Paul Menage
2008-04-03 2:31 ` Satoshi UCHIDA
2008-04-03 2:39 ` Li Zefan
2008-04-03 2:39 ` Li Zefan
2008-04-03 15:31 ` Paul Menage
2008-04-03 15:31 ` Paul Menage
[not found] ` <6599ad830804021541s3c1e3197y77d87f63bf47e4b3-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2008-04-03 7:09 ` [RFC][v2][patch 0/12][CFQ-cgroup]Yet another I/O bandwidth controlling subsystem for CGroups based on CFQ Satoshi UCHIDA
2008-04-03 7:09 ` Satoshi UCHIDA
2008-04-03 7:11 ` [PATCH] [RFC][patch 1/12][CFQ-cgroup] Add Configuration Satoshi UCHIDA
2008-04-03 7:11 ` Satoshi UCHIDA
2008-04-03 7:12 ` [RFC][patch 2/11][CFQ-cgroup] Move header file Satoshi UCHIDA
2008-04-03 7:12 ` Satoshi UCHIDA
2008-04-03 7:12 ` [RFC][patch 3/12][CFQ-cgroup] Introduce cgroup subsystem Satoshi UCHIDA
2008-04-03 7:12 ` Satoshi UCHIDA
2008-04-03 7:13 ` [PATCH] [RFC][patch 4/12][CFQ-cgroup] Add ioprio entry Satoshi UCHIDA
2008-04-03 7:13 ` Satoshi UCHIDA
2008-04-03 7:14 ` [RFC][patch 5/12][CFQ-cgroup] Create cfq driver unique data Satoshi UCHIDA
2008-04-03 7:14 ` Satoshi UCHIDA
2008-04-03 7:14 ` [RFC][patch 6/12][CFQ-cgroup] Add cfq optional operation framework Satoshi UCHIDA
2008-04-03 7:14 ` Satoshi UCHIDA
2008-04-03 7:15 ` [RFC][patch 7/12][CFQ-cgroup] Add new control layer over traditional control layer Satoshi UCHIDA
2008-04-03 7:15 ` Satoshi UCHIDA
2008-04-03 7:15 ` [RFC][patch 8/12][CFQ-cgroup] Control cfq_data per driver Satoshi UCHIDA
2008-04-03 7:15 ` Satoshi UCHIDA
2008-04-03 7:16 ` [RFC][patch 9/12][CFQ-cgroup] Control cfq_data per cgroup Satoshi UCHIDA
2008-04-03 7:16 ` Satoshi UCHIDA
2008-04-03 7:16 ` [PATCH] [RFC][patch 10/12][CFQ-cgroup] Search cfq_data when not connected Satoshi UCHIDA
2008-04-03 7:16 ` Satoshi UCHIDA
2008-04-03 7:17 ` [RFC][patch 11/12][CFQ-cgroup] Control service tree: Main functions Satoshi UCHIDA
2008-04-03 7:17 ` Satoshi UCHIDA
2008-04-03 7:18 ` [RFC][patch 12/12][CFQ-cgroup] entry/remove active cfq_data Satoshi UCHIDA
2008-04-03 7:18 ` Satoshi UCHIDA
2008-04-25 9:54 ` [RFC][v2][patch 0/12][CFQ-cgroup]Yet another I/O bandwidth controlling subsystem for CGroups based on CFQ Ryo Tsuruta
2008-04-25 21:37 ` [Devel] " Florian Westphal
[not found] ` <20080425213702.GL19845-N26foeg2n7CSQxDm3FYtNwe+0vtP5+jfMa5aj3AfGnc@public.gmane.org>
2008-04-29 0:44 ` Ryo Tsuruta
2008-04-29 0:44 ` Ryo Tsuruta
[not found] ` <20080425.185444.115924172.ryov-jCdQPDEk3idL9jVzuh4AOg@public.gmane.org>
2008-04-25 21:37 ` Florian Westphal
2008-05-09 10:17 ` Satoshi UCHIDA
2008-05-09 10:17 ` Satoshi UCHIDA
2008-05-12 3:10 ` Ryo Tsuruta
2008-05-12 3:10 ` Ryo Tsuruta
[not found] ` <20080512.121019.183038803.ryov-jCdQPDEk3idL9jVzuh4AOg@public.gmane.org>
2008-05-12 15:33 ` Ryo Tsuruta
2008-05-12 15:33 ` Ryo Tsuruta
2008-05-22 13:04 ` Ryo Tsuruta
[not found] ` <20080522.220438.226802699.ryov-jCdQPDEk3idL9jVzuh4AOg@public.gmane.org>
2008-05-23 2:53 ` Satoshi UCHIDA
2008-05-23 2:53 ` Satoshi UCHIDA
2008-05-26 2:46 ` Ryo Tsuruta
2008-05-26 2:46 ` Ryo Tsuruta
[not found] ` <20080526.114627.104044752.ryov-jCdQPDEk3idL9jVzuh4AOg@public.gmane.org>
2008-05-27 11:32 ` Satoshi UCHIDA
2008-05-27 11:32 ` Satoshi UCHIDA [this message]
2008-05-30 10:37 ` Andrea Righi
2008-06-18 9:48 ` Satoshi UCHIDA
2008-06-18 22:33 ` Andrea Righi
2008-06-18 22:33 ` Andrea Righi
2008-06-22 17:04 ` Andrea Righi
2008-06-22 17:04 ` Andrea Righi
2008-05-30 10:37 ` Andrea Righi
2008-06-03 8:15 ` Ryo Tsuruta
2008-06-26 4:49 ` Satoshi UCHIDA
[not found] ` <20080603.171535.246514860.ryov-jCdQPDEk3idL9jVzuh4AOg@public.gmane.org>
2008-06-26 4:49 ` Satoshi UCHIDA
2008-06-03 8:15 ` Ryo Tsuruta
[not found] ` <20080513.003316.226782406.ryov-jCdQPDEk3idL9jVzuh4AOg@public.gmane.org>
2008-05-22 13:04 ` Ryo Tsuruta
2008-04-25 9:54 ` Ryo Tsuruta
2008-04-02 22:41 ` [RFC][patch 3/11][CFQ-cgroup] Introduce cgroup subsystem Paul Menage
2008-04-01 9:32 ` Satoshi UCHIDA
2008-04-01 9:33 ` [RFC][patch 4/11][CFQ-cgroup] Create cfq driver unique data Satoshi UCHIDA
2008-04-01 9:33 ` Satoshi UCHIDA
2008-04-01 9:35 ` [RFC][patch 5/11][CFQ-cgroup] Add cfq optional operation framework Satoshi UCHIDA
2008-04-01 9:35 ` Satoshi UCHIDA
2008-04-01 9:36 ` [RFC][patch 6/11][CFQ-cgroup] Add new control layer over traditional control layer Satoshi UCHIDA
2008-04-01 9:36 ` Satoshi UCHIDA
2008-04-01 9:37 ` [RFC][patch 7/11][CFQ-cgroup] Control cfq_data per driver Satoshi UCHIDA
2008-04-01 9:37 ` Satoshi UCHIDA
2008-04-01 9:38 ` [RFC][patch 8/11][CFQ-cgroup] Control cfq_data per cgroup Satoshi UCHIDA
2008-04-01 9:38 ` Satoshi UCHIDA
2008-04-03 15:35 ` Paul Menage
2008-04-03 15:35 ` Paul Menage
[not found] ` <6599ad830804030835s73392db0v29426425c0ea4381-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2008-04-04 6:20 ` Satoshi UCHIDA
2008-04-04 6:20 ` Satoshi UCHIDA
2008-04-04 9:00 ` Paul Menage
2008-04-04 9:46 ` Satoshi UCHIDA
[not found] ` <6599ad830804040200u1ed48f4bxecaa664862cf30a5-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2008-04-04 9:46 ` Satoshi UCHIDA
2008-04-04 9:00 ` Paul Menage
2008-04-01 9:40 ` [RFC][patch 9/11][CFQ-cgroup] Search cfq_data when not connected Satoshi UCHIDA
2008-04-01 9:40 ` Satoshi UCHIDA
2008-04-01 9:41 ` [RFC][patch 10/11][CFQ-cgroup] Control service tree: Main functions Satoshi UCHIDA
2008-04-01 9:41 ` Satoshi UCHIDA
2008-04-01 9:42 ` [RFC][patch 11/11][CFQ-cgroup] entry/remove active cfq_data Satoshi UCHIDA
2008-04-01 9:42 ` Satoshi UCHIDA
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='004f01c8bfed$640fa380$2c2eea80$@jp.nec.com' \
--to=s-uchida@ap.jp.nec.com \
--cc=axboe@kernel.dk \
--cc=containers@lists.linux-foundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=ryov@valinux.co.jp \
--cc=tom-sugawara@ap.jp.nec.com \
--cc=vtaras@openvz.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.