blkio cgroup

252 阅读2分钟

blkio cgroup 的作用是什么?

  1:按权重比例对io进行控制

  2: 按带宽和iops 对io进行控制

blkio cgroup 的配置文件有哪些?

  自己列举一些重要的配置文件 

   blkio.throttle.read_bps_device  设置cgroup在某个设备上的读取的带宽上限,取值例子 设备号(主次设备号) 整数,单位是字节

   blkio.throttle.read_iops_device 设置cgroup在某个设备上的读取的iops上限,取值例子 设备号(主次设备号) 整数

   blkio.throttle.write_bps_device 设置cgroup在某个设备上的写入的带宽上限,取值例子 设备号(主次设备号) 整数,单位是字节

   blkio.throttle.write_iops_device 设置cgroup在某个设备上的写入的iops上限,取值例子:设备号(主次设备号) 整数

   blkio.weight  设置cgroup 在io 之中所占据的比重,取值为整数,取值范围在 10-1000,默认值为 500 

   blkio.weight_device 设置cgroup 在某个设备之中所占据的比重。 取值例子:设备号(主次设备号) 整数,取值范围在 10 - 1000 之间。

blkio 的注意点

  1: cgroup v1 版本 对于 一般io(就是写入page cache的io),是无法限制带宽和iops的。

   2: blkio 无法限制 cgroup 之中的进程对于磁盘的使用量。

实验:

  1: 实验 cgroup 限制磁盘的带宽功能

       目的:

             测试blkcgroup 的功能,实验带宽的写功能。

       步骤:

            1: blkio cgroup 下 创建 test cgroup

                 mkdir /sys/fs/cgroup/blkio/test 

            2: 限制 写入的带宽上限为1M 

               echo “主设备号:次设备号 1048576” > /sys/fs/cgroup/blkio/test/blkio.throttle.write_bps_device

           3:打开另一个窗口,使用iotop 监控每个进程的io状况,可以看到 进程所占用的io带宽,可以使用输出结果来验证

                 iotop -o -n1024 -b 

            4: 执行命令,开始测试

                  cgexec -g blkio:test dd if=/dev/zero of=/opt/a.txt oflag=direct bs=2M count=1023

    2: 实验 cgroup 限制磁盘的 iops 功能 

          目的:

               验证磁盘的iops功能

          步骤:

                1: blkio cgroup 下 创建 test cgroup

                      mkdir /sys/fs/cgroup/blkio/test 

                2: 设置设备的写入 iops 为10 

                      echo “主设备号:次设备号 10” > /sys/fs/cgroup/blkio/test/blkio.throttle.write_iops_device

                3:使用fio 进行测试

问题:

    1: 使用限制cgroup的带宽功能,阿里云下 blkio cgroup 之中的统计信息 都是0。

        记录下:尚未找到原因