这篇重点讲述cgroup如何控制blkio子系统的qos,首先看下设置

blkio.weight blkio.weight_device 我的理解是blkio.weight是整个io子系统的权重值,而blkio.weight_device是针对特定的 major:minor 设备的权重

blkio.throttle.read_bps_device blkio.throttle.write_bps_device blkio.throttle.read_iops_device blkio.throttle.write_iops_device 针对特定的 major:minor 设备的读写bps,读写iops的上限限制。

其余的blkio的设置都是当前blkio子系统的perf报告数据,大部分和iostat -x的属性差不多,就不赘述了


# mount -t cgroup -o blkio none /cgroup/blkio

# mkdir -p /cgroup/blkio/tinker

# mkdir -p /cgroup/blkio/tailor

# echo 800 > /cgroup/blkio/tinker/blkio.weight

# echo 200 > /cgroup/blkio/tailor/blkio.weight

下面用dd来写一个大文件,并把2个进程放到不同的cgroups里,对比前后的变化,可以看出blkio对IO QoS的改变

使用cgroup之前,可以看出IO带宽被平均分配


使用cgroup之后,基本上是800 : 200的比例



tips: 使用pvm的虚拟机的cgroups无法正常工作,不知道是否跟XenLinux有关



Logo

更多推荐