Re: [RFC v1] add new io-scheduler to use cgroup on high-speed device

From: Vivek Goyal
Date: Wed Jun 05 2013 - 09:31:19 EST

On Wed, Jun 05, 2013 at 10:09:31AM +0800, Robin Dong wrote:
> We want to use blkio.cgroup on high-speed device (like fusionio) for our mysql clusters.
> After testing different io-scheduler, we found that cfq is too slow and deadline can't run on cgroup.

So why not enhance deadline to be able to be used with cgroups instead of
coming up with a new scheduler?

> So we developed a new io-scheduler: tpps (Tiny Parallel Proportion Scheduler).It dispatch requests
> only by using their individual weight and total weight (proportion) therefore it's simply and efficient.

Can you give more details. Do you idle? Idling kills performance. If not,
then without idling how do you achieve performance differentiation.

> Test case: fusionio card, 4 cgroups, iodepth-512
> groupname weight
> test1 1000
> test2 800
> test3 600
> test4 400

What's the workload used for this?

> Use tpps, the result is:
> groupname iops avg-rt(ms) max-rt(ms)
> test1 30220 16 54
> test2 28261 18 56
> test3 26333 19 69
> test4 20152 25 87
> Use cfq, the result is:
> groupname iops avg-rt(ms) max-rt(ms)
> test1 16478 30 242
> test2 13015 39 347
> test3 9300 54 371
> test4 5806 87 393

How do results look like with cfq if this is run with slice_idle=0 and
quatum=128 or higher.

cfqq idles on 3 things. queue (cfqq), service tree and cfq group.
slice_idle will disable idling on cfqq but not no service tree. If
we provide a knob for that, then idling on service tree can be disabled
too and then we will be left with group idling only and then it should
be much better.

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at