關於IO throttle

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的後續提交流程:
kworker(kthrotld)
          -> blk_throtl_dispatch_work_fn 
                     -> generic_make_request(還要經過造請求函數提交)

測試IO throttle,限制sda盤每秒IOPS爲50:

使用systemtap探測,dd產生的IO 被throttle:

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章