11、Docker 资源配额-容器控制 IO
11、Docker 资源配额-容器控制 IO
Block IO 是另一种可以限制容器使用的资源。Block IO 指的是磁盘的读写,docker 可通过设置权重、限制 bps 和 iops 的方式控制容器读写磁盘的带宽
注:目前 Block IO 限额只对 direct IO(不使用文件缓存)有效。
如何进行Block IO的限制?
默认情况下,所有容器能平等地读写磁盘,可以通过设置 –blkio-weight 参数来改变容器 block IO 的优先级。 –blkio-weight 与 –cpu-shares 类似,设置的是相对权重值,默认为 500。在下面的例子中,container_A 读写磁盘的带宽是 container_B 的两倍。
1 |
|
如何对bps和iops进行限制?
bps 是 byte per second,表示每秒读写的数据量。
iops 是 io per second,表示每秒的输入输出量(或读写次数)。
可通过以下参数控制容器的 bps 和 iops:
- –device-read-bps,限制读某个设备的 bps。
- –device-write-bps,限制写某个设备的 bps。
- –device-read-iops,限制读某个设备的 iops。
- –device-write-iops,限制写某个设备的 iops。
1 |
|
注:dd 参数:
- if=file:输入文件名,缺省为标准输入
- of=file:输出文件名,缺省为标准输出
- ibs=bytes:一次读入 bytes 个字节(即一个块大小为 bytes 个字节)
- obs=bytes:一次写 bytes 个字节(即一个块大小为 bytes 个字节)
- bs=bytes:同时设置读写块的大小为 bytes ,可代替 ibs 和 obs
- count=blocks:仅拷贝 blocks 个块,每个块大小等于 ibs 指定的字节数
- direct:读写数据采用直接 IO 方式,不走缓存。直接从内存写硬盘上。
- nonblock:读写数据采用非阻塞 IO 方式,优先写 dd 命令的数据
11、Docker 资源配额-容器控制 IO
http://blog.kjiang.vip/posts/1950070040.html