cgroup中blkio子系统的主要功能是实现对磁盘IO带宽的可定制化控制,目前支持的控制策略只要有两种:基于weight权重方式和基于流量方式(iops,bps)。weight方式依赖于内核原生的CFQ IO调度算法(其工作与IO调度层);流量方式即IO throttle工作在通用块层。
IO throttle: iops/bpsl
CFS:weight/iops
正常提交IO的流程(部分):
submit_bio
-> generic_make_request
->1, generic_make_request_checks
->blkcg_bio_issue_check
->blk_throtl_bio
->2, blk_queue_bio
被throttle的IO的后续提交流程:<