Currently I'm trying to setup a test scenario with the use of Debian Wheezy with its default kernel 3.2.60-1+deb7u3 and the cgroups blkio controller. The calculation of blkio.weight is not working for me.My setup is the following, I have a root cgroup in /sys/fs/cgroup where the default blkio.weight is 1000. Now I created 2 SubGroups  (/sys/fs/cgroup/grp1 @ blkio.weight:800, /sys/fs/cgroup/grp2 @ blkio.weight:200) which write on 2 different LVM volumes on the same physical device, getting the following fio results:grp1:  read : io=3276.2MB, bw=1224.8KB/s, iops=400 , runt=2740822msec  write: io=839516KB, bw=313651 B/s, iops=99 , runt=2740822msecgrp2:  read : io=3278.3MB, bw=1123.9KB/s, iops=365 , runt=2987186msec  write: io=837351KB, bw=287041 B/s, iops=91 , runt=2987186msecBut this is obviously not an 80% to 20% share. The other Question is: There is still a blkio.weight of 1000. How is this value used?
How to calculate blkio shares in cgroups?
io;cgroups
The cgroup document suggests flushing all file system buffers and free pagecache, dentries and inodes using the following commands:~]# sync~]# echo 3 > /proc/sys/vm/drop_cachesIt's possible you have not reached the peak of IOPS. What device you are using? Is 400 iops normal for your device or it's low? Increase io-depth and num-jobs in FIO to get to the peak IOPS for your device. 