Re: [PATCH 0/2] dm-ioband: I/O bandwidth controller v1.8.0:Introduction

From: haotian
Date: Thu Oct 23 2008 - 06:03:47 EST


Hi Ryo Tsuruta:

This is Haotian Zhang, I am testing the bio_tracking as your benchmark
reports.

I follow the test procedure as you describe in web page with the
xdd-count.sh, but the results are not to indicate the implementation of
IO count-based bandwidth control on per bio-cgroups.

The testing approach is as follow:

1, mount bio-cgroup on /cgroup
#mount -t cgroup -bio none /cgroup

2, create 3 cgroup
#cd /cgroup \
mkdir 1 2 3

3, create 3 ioband device on each partiton,
a.I have 3 ext2 partition /dev/sda5 sda6 sda7:
# cat /proc/partitions

major minor #blocks name

8 0 58605120 sda
8 1 32901088 sda1
8 2 1 sda2
8 5 8152956 sda5
8 6 8924076 sda6
8 7 8626873 sda7


b. Give weights of 40, 20 and 10 to cgroup1, cgroup2 and cgroup3
respectively, and create ioband device:

#echo "0 $DEVSIZE1 ioband $DEV1 1 0 0" \
"cgroup weight 0 :100 1:40 2:20 3:10" | dmsetup create ioband1
#echo "0 $DEVSIZE2 ioband $DEV2 1 0 0" \
"cgroup weight 0 :100 1:40 2:20 3:10" | dmsetup create ioband2
#echo "0 $DEVSIZE3 ioband $DEV3 1 0 0" \
"cgroup weight 0 :100 1:40 2:20 3:10" | dmsetup create ioband3

/*============================================================================
"NOTE"

The variables are exported as:

DEV1=/dev/sda5
DEV2=/dev/sda6
DEV3=/dev/sda7
DEVSIZE1=$(blockdev --getsize $DEV1)
DEVSIZE2=$(blockdev --getsize $DEV2)
DEVSIZE3=$(blockdev --getsize $DEV3)
RANGE=10240
XDDOPT="-op write -queuedepth 32 -blocksize 512 -reqsize 64
-seek random -datapattern random -dio -timelimit 60
-mbytes $RANGE -seek range $((RANGE * 1048576 / 512))"
ï============================================================================*/

c. Check out the ioband:
#ls /dev/mapper/
control ioband1 ioband2 ioband3

4, Run 32 processes random direct I/O with data on each ioband device in
60 seconds:

//******* THE first device ioband1 /dev/sda5 ***************//

#export XDDOPT="-op write -queuedepth 32 -blocksize 512 -reqsize 64
-seek random -datapattern random -dio -timelimit 60 -mbytes 10240 -seek
range 20971520"

#echo $$ > /cgroup/1/tasks

#xdd.linux -targets 1 /dev/mapper/ioband1 $XDDOPT -output cgroup1.txt

#tail -4 /root/cgroup1.txt

T Q Bytes Ops Time Rate IOPS
Latency %CPU OP_Type ReqSize
Combined 1 32 262766592 8019 60.203 4.365 133.20
0.0075 0.01 write 32768
Ending time for this run, Thu Oct 23 01:46:38 2008

ï//******* THE second device ioband2 /dev/sda6 ***************//

Using another ssh terminal
ï#export XDDOPT="-op write -queuedepth 32 -blocksize 512 -reqsize 64
-seek random -datapattern random -dio -timelimit 60 -mbytes 10240 -seek
range 20971520"

#echo $$ > /cgroup/2/tasks

#xdd.linux -targets 1 /dev/mapper/ioband2 $XDDOPT -output cgroup2.txt

#tail -4 /root/cgroup2.txt

T Q Bytes Ops Time Rate IOPS
Latency %CPU OP_Type ReqSize
Combined 1 32 243662848 7436 60.263 4.043 123.39
0.0081 0.01 write 32768
Ending time for this run, Thu Oct 23 01:50:55 2008

ïï//******* THE third device ioband3 /dev/sda7 ***************//

Using another ssh terminal
ï#export XDDOPT="-op write -queuedepth 32 -blocksize 512 -reqsize 64
-seek random -datapattern random -dio -timelimit 60 -mbytes 10240 -seek
range 20971520"

#echo $$ > /cgroup/3/tasks

#xdd.linux -targets 1 /dev/mapper/ioband3 $XDDOPT -output cgroup3.txt

#tail -4 /root/cgroup3.txt

T Q Bytes Ops Time Rate IOPS
Latency %CPU OP_Type ReqSize
Combined 1 32 222986240 6805 60.073 3.712 113.28
0.0088 0.01 write 32768
Ending time for this run, Thu Oct 23 01:58:31 2008



The results are almost the same. I can not see any change of Direct I/O
performance for this bio-cgroup kernel feature with dm-ioband support!

Does the methord to caculate throughout should be the Rate of xdd.linux
output?
Dose my testing approach should be correct? If not, please help me point
out.


Thanks,
Haotian.


On Wed, 2008-10-22 at 17:05 +0900, Ryo Tsuruta wrote:
> Hi Chen,
>
> > Chen Zumeng wrote:
> > > Hi, Ryo Tsuruta
> > > And our test team want to test bio_tracking as your benchmark reports,
> > > so would you please send me your test codes? Thanks in advance.
> > Hi Ryo Tsuruta,
> >
> > I wonder if you received last email, so I reply this email to ask
> > for your bio_tracking test codes to generate your benchmark reports
> > as shown in your website. Thanks in advance :)
>
> I've uploaded two scripts here:
> http://people.valinux.co.jp/~ryov/dm-ioband/scripts/xdd-count.sh
> http://people.valinux.co.jp/~ryov/dm-ioband/scripts/xdd-size.sh
>
> xdd-count.sh controls bandwidth based on the number of I/O requests,
> and xdd-size.sh controls bandwidth based onthe number of I/O sectors.
> Theses scritpts require xdd disk I/O testing tool which can be
> downloaded from here:
> http://www.ioperformance.com/products.htm
>
> Please feel free to ask me questions if you have any questions.
>
> > > P.S. The following are my changes to avoid schedule_timeout:
>
> Thanks, but your patch seems to cause a problem when ioband devices
> which have the same name are created at the same time. I will fix the
> issue in the next release.
>
> Thanks,
> Ryo Tsuruta
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/