I have several Docker containers running a virtual machine, and I would like to uniformly throttle disk I/O throughput by say 20% across all containers without actually imposing any kind of stress on other resources (i.e. CPU) on the machine.
I understand I can change the cgroups by changing the blkio weight of each container; however, Docker containers have the property that even if you limit the usage of a certain resource, it will use more than that limit if no other process is contending for that resource (perhaps there is a way to turn this off?).
One solution would be to simply start up another process that makes arbitrary disk reads (say, through dd). However, dd will also use significant CPU, so this is undesirable.
To summarize my question, I am looking for a way to throttle disk read utilization without using any of the other resources.