1. 程式人生 > >centos7下安裝docker(9.3容器對資源的使用限制-Block IO))

centos7下安裝docker(9.3容器對資源的使用限制-Block IO))

緩存 centos 文件 機制 font nbsp 有效 之間 找到

Block IO:指的是磁盤的讀寫,docker 可以通過設置權重,限制bpsiops的方式控制容器讀寫磁盤的帶寬

註:目前block IO限額只對direct IO不使用文件緩存)有效。

1.Block IO權重:--blkio-weight,這個--blkio-weight的權重值在 10~1000之間

和容器cpu的使用機制是一致的,所有容器都可以平等的讀寫磁盤,可以通過--blkio-weight參數來改變容器的優先級

--blkio-weight和-c類似,設置的都是資源使用的權重,都是在資源緊張的情況下才會起到權重的作用,正常情況下,都是平等的

技術分享

--blkio-weight-device 針對特定的設備設置權重 例:docker run -d --blkio-weight-device /dev/sdb:30M httpd

如果同時設置了--blkio-weight和--blkio-weight-device,則以--blkio-weight為全局默認配置

--blkio-weight和--blkio-weight-device,由於是根據權重進行資源分配的,而這種權重有體現在資源緊缺的情況下,所以暫時不做試驗

2.限制bps和iops

bps:byte per second ,每秒讀寫的數據量

iops:io per second ,每秒IO次數

可以通過以下參數來控制容器的bps 和iops:

--device-read-bps:限制讀某個設備的bps(數據量) 例:docker run -d --device-read-bps /dev/sdb:30M httpd

--device-write-bps : 限制寫入某個設備的bps(數據量) 例:docker run -d --device-write-bps dev/sdb:30M httpd

--device-read-iops :限制讀某個設備的iops(次數) 例:docker run -d --device-read-iops /dev/sdb

--device-write-iops :限制寫入某個設備的iops(次數)

做一個限制bps的寫入的操作的試驗:由於沒有找到比較好的“讀”相關的bps和iops 的測試,所以這種測試之後在實際工作環境下再酌情進行測試吧~

docker run -it--device-write-bsp /dev/sda:60M --name bsp3 centos

技術分享

oflag=direct:指定使用direct IO方式寫文件,這樣--device-write-bps才會生效

在這個實驗中,從結果來看是63M,但是我設置的是60M,按正常來說應該低於60M,但是為什麽會高於60M呢?

根據我的分析來講,是由於docker block IO 是根據權重來限制,而這種權重是體現在資源緊張的情況下的,在本實驗中,資源非常夠用,所以會出現以上結果

我們來看一下正常情況下的試驗結果

技術分享

在這個試驗中,是沒有對容器加限制的,可以看到他的寫入大小速度非常高

centos7下安裝docker(9.3容器對資源的使用限制-Block IO))