我使用以下命令来testing是否应用了IOPS和磁盘读/写限制,但它们不是。 只要我运行命令,磁盘使用100%的IO和带宽。 想了想,我试着对磁盘进行检查,我不知道应该使用哪个磁盘,因为我有xvda,xvdf和dm0-dm8。
docker run –rm –device-read-bps = / dev / dm-0:1000 –device-write-bps = / dev / dm-0:1000 –device-read-iops = / dev / xvdf: 20 –device-write-iops = / dev / xvdf:20 nginx bash -c“time dd if = / dev / zero of = testdocker bs = 512k count = 1000 oflag = dsync”
有什么理由说它不起作用? 操作系统是Ubuntu和docker版本是:docker版本1.13.0,build立49bf474
用稍微修改过的命令,我给了它直接path在哪里写testing文件,但现在它卡住,什么都不做,只是挂在那里
docker run –rm -v“/ dc:/ dc”–device-read-bps = / dev / xvda:1m –device-write-bps = / dev / xvda:1m –device-read-iops = / dev / xvda:100 –device-write-iops = / dev / xvda:100 nginx bash -c“time dd if = / dev / zero of = / dc / testdocker bs = 512 count = 1000 oflag = dsync”
在这个命令之后,IOWAIT变成100%,docker包含挂起,什么都不做。 我甚至无法阻止它甚至做任何事情。
控制组v1不能限制缓冲IO,这是系统中绝大多数的IO。
控制组V2可以。 如果您使用的是兼容v2的内核(如果docker支持它,我不知道它是否支持),您应该使用它。