使用 cgroups 限制 IO 使用

Restrict IO usage using cgroups

我正在尝试使用 cgroups 限制 Io 在我的服务器上的使用。

这是我的分区table信息:

major minor  #blocks  name    
   8        0   10485760 sda
   8        1    9437184 sda1
   8        2    1047552 sda2

这是我的文件系统结构:

Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1       8.9G  8.4G   37M 100% /
none           1004M     0 1004M   0% /dev/shm

当我尝试执行以下命令时:

echo "8:1 10485760" > /cgroup/blkio/test2/blkio.throttle.write_bps_device

我得到的输出为:

-bash: echo: write error: No such device

这是我的 cgroups 配置:

mount { 
    blkio = /cgroup/blkio;      
}

group test2 {
    blkio {
        blkio.throttle.write_iops_device="";
        blkio.throttle.read_iops_device="";
        blkio.throttle.write_bps_device="";
        blkio.throttle.read_bps_device="";
        blkio.weight="";
        blkio.weight_device="";
    }
}

为什么我不能限制 /dev/sda1 IO 使用?

设置blkio时需要使用物理设备。对整个磁盘 (8:0) 使用 major:minor。