我有几个运行虚拟机的Docker容器,我想在所有容器上统一限制磁盘I / O吞吐量20%,而不会对机器上的其他资源(即CPU)造成任何压力。
我知道我可以通过改变每个容器的blkio重量来改变cgroups;但是,Docker容器具有以下属性:即使您限制某个资源的使用,如果没有其他进程争用该资源,它将使用超过该限制(可能有办法将其关闭?)。
一种解决方案是简单地启动另一个进行任意磁盘读取的进程(例如,通过dd)。但是,dd也会使用大量CPU,因此这是不可取的。
总结一下我的问题,我正在寻找一种方法来在不使用任何其他资源的情况下限制磁盘读取利用率。
答案 0 :(得分:0)
还有一个类似的问题here。 --device-read-bps
能为您的案件服务吗?
限制为每秒1mb
--device-read-bps
标志限制了设备的读取速率(每秒字节数)。例如,此命令创建一个容器,并将读取速率从/ dev / sda:
$ docker run -it --device-read-bps /dev/sda:1mb ubuntu
如果是,我们可能会将此标记为重复