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

haotian haotian.zhang at windriver.com
Thu Oct 23 03:02:38 PDT 2008


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
_______________________________________________
Containers mailing list
Containers at lists.linux-foundation.org
https://lists.linux-foundation.org/mailman/listinfo/containers




More information about the Devel mailing list