On Wed, Jun 05, 2013 at 10:09:31AM +0800, Robin Dong wrote:I think if we add cgroups support into deadline, it will not be suitable to call "deadline" anymore...so a new ioscheduler and a new name may not confuse users.We want to use blkio.cgroup on high-speed device (like fusionio) for our mysql clusters.So why not enhance deadline to be able to be used with cgroups instead of
After testing different io-scheduler, we found that cfq is too slow and deadline can't run on cgroup.
coming up with a new scheduler?
We don't idle, when comes to .elevator_dispatch_fnïwe just compute quota for every group:
So we developed a new io-scheduler: tpps (Tiny Parallel Proportion Scheduler).It dispatch requestsCan you give more details. Do you idle? Idling kills performance. If not,
only by using their individual weight and total weight (proportion) therefore it's simply and efficient.
then without idling how do you achieve performance differentiation.
I do the test again for cfq (slice_idle=0, quatum=128) and tpps
Test case: fusionio card, 4 cgroups, iodepth-512What's the workload used for this?
groupname weight
test1 1000
test2 800
test3 600
test4 400
Use tpps, the result is:How do results look like with cfq if this is run with slice_idle=0 and
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
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.
Thanks
Vivek