[PATCH] range-bw: Another I/O scheduling policy of dm-ioband supporting the predicable I/O bandwidth (range bandwidth)

Ryo Tsuruta ryov at valinux.co.jp
Tue May 12 04:30:14 PDT 2009


Hi Dong-Jae,

From: Dong-Jae Kang <baramsori72 at gmail.com>
Subject: Re: [PATCH] range-bw: Another I/O scheduling policy of dm-ioband supporting the predicable I/O bandwidth (range bandwidth)
Date: Wed, 6 May 2009 09:35:03 +0900

> 2009/5/5 Ryo Tsuruta <ryov at valinux.co.jp>:
> > Hi Dong-Jae
> >
> > From: Dong-Jae Kang <baramsori72 at gmail.com>
> > Subject: Re: [PATCH] range-bw: Another I/O scheduling policy of dm-ioband supporting the predicable I/O bandwidth (range bandwidth)
> > Date: Mon, 4 May 2009 20:23:04 +0900
> >
> >> Hi, Ryo
> >>
> >> I released bug-fixed range-bw(V1) controller several minutes ago
> >>
> >> Although several WARNINGs of checkpatch are remained,
> >> but patch file was strictly checked by checkpatch.pl
> >> It was very time-consuming job :)
> >> Thank you for your advice
> >>
> >> >>
> >> >> > I used fio 1.22. The below is a script which I actually ran.
> >> >> >
> >> >> >  #!/bin/sh
> >> >> >  dev1=/dev/sdb4 # SATA disk
> >> >> >  echo "0 $(sudo blockdev --getsize $dev1) ioband $dev1 share2 0 0
> >> >> >    cgroup range-bw 0" | sudo dmsetup create ioband1
> >> >> >
> >> >> >  arg="--time_based --runtime=10 --ioengine=libaio --iodepth=50 \
> >> >> >       --direct=1 --norandommap"
> >> >> >
> >> >> >  dmsetup message ioband1 0 attach 2
> >> >> >  dmsetup message ioband1 0 attach 3
> >> >> >  dmsetup message ioband1 0 min-bw 2:100
> >> >> >  dmsetup message ioband1 0 max-bw 2:100
> >> >> >  dmsetup message ioband1 0 min-bw 3:200
> >> >> >  dmsetup message ioband1 0 max-bw 3:200
> >> >>
> >> >> I recommend it is better to use different value in min-bw and max-bw
> >> >> because its concept is to support range-bw with the minimum
> >> >> guaranteeing and maximum limitation.
> >> >> exampe - min-bw : 1024 / max-bw : 3072
> >> >>
> >> >> >  echo $$ > /cgroup/grp1/tasks
> >> >> >  fio $arg --rw=randread --name=grp1 --filename=/dev/mapper/ioband1 \
> >> >> >          --output=r2-1.log &
> >> >> >  echo $$ > /cgroup/grp2/tasks
> >> >> >  fio $arg --rw=randread --name=grp2 --filename=/dev/mapper/ioband1 \
> >> >> >          --output=r2-2.log &
> >> >> >  wait
> >>
> >> after bug-fix,I evaluated range-bw according to your configuration and
> >> test environment
> >> the result is in new relesed range-bw mail, [PATCH 0/2]
> >> and more detailed documentation is also available and it can be
> >> referred in [PATCH 1/2]
> >>
> >> Ryo,
> >> can you check the result ?

I did the same test as before and got the results as expected.

               cgroup1    cgroup2
  min:max-bw    0:100      0:200
  -------------------------------------
  read          100         197
  write         103         198 [KB/s]

I got errors while applying your patch, some lines are wrapped with
carriage returns.

    +extern int policy_range_bw_init(struct ioband_device *dp, int argc,
 >> char **argv);

Thanks,
Ryo Tsuruta


More information about the Containers mailing list