无法写入cgroup blkio文件
我试图通过使用cgroup blkio控制器来控制I/O带宽 Cgroup已成功设置和装载,即调用无法写入cgroup blkio文件,io,linux-kernel,operating-system,cgroups,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\u bps\u device,如下所示: 1. mkdir user1; cd user1 2. echo "8:5
grep Cgroup/proc/mounts
返回:
....
cgroup /sys/fs/cgroup/blkio cgroup rw,relatime,blkio 0 0
...
然后我在blkio
文件夹中创建一个新文件夹,并写入文件blkio.throttle.read\u bps\u device
,如下所示:
1. mkdir user1; cd user1
2. echo "8:5 10485760" > blkio.throtlle.read_bps_device
----> echo: write error: Invalid argument
My device major(我的设备主设备):使用存储设备的df-h
和ls-l/dev/sda5
得出的次要编号是正确的
我仍然可以写入不需要设备主设备:次设备号的文件,例如blkio.weight
(但是对于blkio.weigth_设备
,会引发相同的错误)
知道我为什么会出现这个错误吗?不确定您在RHEL 6.x内核上使用的是哪种风格/版本的Linux,由于某种原因,这不起作用,但是当我在RHEL和其他Fedora版本上编译自定义内核时,它起作用了,没有任何问题 要检查内核是否支持,请运行
lssubsys-am | grep blkio
。如果您可以将文件blkio.throttle.read\u bps\u设备归档,请检查路径
但是,下面是一个示例,说明如何持久地执行此操作,设置cgroups以限制程序不超过1 Mibi/s:
从/proc/partitions
现在,如果您想将程序限制为1mib/s(将值转换为字节/s),如下所示。=>1MiB/s=>1024 kiB/1MiB*1024 B/s=1048576字节/秒
编辑/etc/cgconfig.conf并添加以下条目
编辑/etc/cgrules.conf
*:blkio ioload
重新启动所需的服务
参考:
希望这有帮助 问题是我使用了/dev/sda5作为设备名,而实际上必须使用物理设备名(与分区逻辑设备相反)。现在,当我指定/dev/sda的:id时,它就工作了。lssubsys
命令对于理解我的内核是否支持该功能非常有用。谢谢
`cat /proc/partitions | grep vda`
major minor #blocks name
252 0 12582912 vda --> this is the primary disk (with MAJOR:MINOR -> 8:0)
group ioload {
blkio.throttle.read_bps_device = "252:0 1048576"
}
}
`chkconfig {cgred,cgconfig} on;`
`service {cgred,cgconfig} restart`