cgroup-blkio子系统分析

1      概述

Cgroup中的blkio子系统的主要功能是实现对磁盘i/o带宽的可定制化控制。目前支持的控制策略只要有两种:BLKIO_POLICY_PROP和BLKIO_POLICY_THROTL,即基于权重方式和基于流量方式。权重方式依赖于内核原生的CFQ i/o调度算法,i/o调度算法本身是工作在i/o调度层的,因此在使用上有一定的局限性,即被控制的设备必须使用cfq调度算法;为了弥补这方面的局限性,内核后来引入了基于内核 iothrottle的基于绝对流量的控制策略(虽然也有基于cfq的iops绝对控制,但是性能不佳),同时它还分为基于bps和iops的子策略类型,它工作在通用块层,与调度算法无关,因此具有更广的使用范围,但是绝对流量的策略是一种硬性限制,也有一定的弊端,即对io带宽的利用率上存在一定的问题,不能像权重控制那样将带宽使用率最大化。

2      blkcg文件接口

blk_cgroup文件系统主要提供以下文件共用户进行流量和权重控制

流量:

blkio.throttle.read_bps_device 限制对某块设备读带宽

blkio.throttle.read_iops_device 限制对某块设备读的次数

blkio.throttle.write_bps_device 限制对某块设备写带宽

blkio.throttle.write_iops_device 限制对某块设备写的次数

权重:

blkio.weight  本cgroup在系统内的权重[101000]

blkio.weight_device 本cgroup对应某设备的权重[10 1000]

 

3      实现

blkio子系统现有支持三种io带宽控制策略:weight、iops和bps,而且此三种策略在功能上相互独立,可以并存且不互相干扰,因为工作在不同的层次和纬度。

Blkio子系统内核中的对应核心数据结构为struct blkio_cgroup

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值