docker资源限制之IO

原理:

通过cgroup限制,相关cgroup项如下:

这里暂且只讨论:

  1. blkio.throttle.read_bps_device
  2. blkio.throttle.read_iops_device
  3. blkio.throttle.write_bps_device
  4. blkio.throttle.write_iops_device

较旧的docker版本不支持设置这些,但是,只要你的内核支持上面这些,就可以直接修改cgroup实现。

我这里使用的是devicemapper,宿主机只有一个设备/dev/sda ,如下:

devicemapper信息如下:

从上面可以看出:

  1. docker 使用的mapper-pool为 /dev/dm-0,设备号: 253,0
  2. 该机器上一个容器,该容器挂载的设备为 /dev/dm-1 , 设备号: 253,1
  3. 物理磁盘 /dev/sda 设备号: 8,0

容器不仅用到了devicemapper(这里是 /dev/dm-1),而且还挂载了外部的磁盘,下面是关于容器限速100mb的写法:

关于读速度,这里先不举例了,还有iops都如法炮制

 

 

留下评论

邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据