cgroup blkio文件无法写入

时间:2014-07-25 16:00:27

标签: io linux-kernel operating-system cgroups

我尝试使用 cgroup blkio 控制器来控制I / O带宽。

已成功设置并装入Cgroup,即调用grep cgroup /proc/mounts

返回:

....
cgroup /sys/fs/cgroup/blkio cgroup rw,relatime,blkio 0 0
...

然后我在blkio文件夹中创建一个新文件夹并写入文件blkio.throttle.read_bps_device,如下所示:

1. mkdir user1; cd user1
2. echo "8:5 10485760" > blkio.throtlle.read_bps_device
----> echo: write error: Invalid argument

我的设备专业:使用df -hls -l /dev/sda5作为存储设备的次要编号是正确的。

我仍然可以写入不需要设备主要文件的文件:次要编号,例如blkio.weight(但是blkio.weigth_device会抛出相同的错误)

知道我为什么会收到这个错误吗?

1 个答案:

答案 0 :(得分:4)

在RHEL 6.x内核上,不确定您使用的是哪种Linux /版本的Linux,由于某种原因这不起作用,但是当我在RHEL上的自定义内核和其他Fedora版本上编译时,它没有任何效果的问题。

要检查内核是否支持,请运行lssubsys -am | grep blkio。如果可以归档文件blkio.throttle.read_bps_device

,请检查路径

但是,这是一个如何持久执行此操作的示例,设置一个cgroup以限制程序不超过1 Mibi / s:

  1. /proc/partitions
  2. 获取MARJOR:MINOR设备编号
       `cat /proc/partitions | grep vda` 
         major minor  #blocks  name
         252        0   12582912 vda  --> this is the primary disk (with MAJOR:MINOR -> 8:0)
    
    1. 现在,如果要将程序限制为1mib / s(将值转换为bytes / s),如下所示。 => 1MiB / s => 1024 kiB / 1MiB * 1024 B / s = 1048576字节/秒

    2. 编辑/etc/cgconfig.conf并添加以下条目

    3. group ioload {
        blkio.throttle.read_bps_device = "252:0 1048576" 
        }
      }
      
      1. 编辑/etc/cgrules.conf
      2.   

        *:blkio ioload

        1. 重新启动所需服务
        2. `chkconfig {cgred,cgconfig} on;`
          `service {cgred,cgconfig} restart`
          

          参考:blkio-controller.txt

          希望这有帮助!