容器学习 之 限制容器资源(十一)
內(nèi)存限額
使用方法:
其含義是允許該容器最多使用 200M 的內(nèi)存和 100M 的 swap。默認(rèn)情況下,上面兩組參數(shù)為 -1,即對(duì)容器內(nèi)存和 swap 的使用沒(méi)有限制。
下面我們將使用 progrium/stress 鏡像來(lái)學(xué)習(xí)如何為容器分配內(nèi)存。該鏡像可用于對(duì)容器執(zhí)行壓力測(cè)試。執(zhí)行如下命令:
docker run -it -m 200M --memory-swap=300M progrium/stress --vm 1 --vm-bytes 280M–vm 1:啟動(dòng) 1 個(gè)內(nèi)存工作線程。
–vm-bytes 280M:每個(gè)線程分配 280M 內(nèi)存。
因?yàn)?280M 在可分配的范圍(300M)內(nèi),所以工作線程能夠正常工作,其過(guò)程是:
- 分配 280M 內(nèi)存。
- 釋放 280M 內(nèi)存。
- 再分配 280M 內(nèi)存。
- 再釋放 280M 內(nèi)存。
- 一直循環(huán)…
如果在啟動(dòng)容器時(shí)只指定 -m 而不指定 --memory-swap,那么 --memory-swap 默認(rèn)為 -m 的兩倍
CPU 限額
Docker 可以通過(guò) -c 或 --cpu-shares 設(shè)置容器使用 CPU 的權(quán)重。如果不指定,默認(rèn)值為 1024。
與內(nèi)存限額不同,通過(guò) -c 設(shè)置的 cpu share 并不是 CPU 資源的絕對(duì)數(shù)量,而是一個(gè)相對(duì)的權(quán)重值。比如
docker run --name "container_A" -c 1024 ubuntu docker run --name "container_B" -c 512 ubuntu- 啟動(dòng) container_A,cpu share 為 1024:
- 啟動(dòng) container_B,cpu share 為 512:
則 container_A 消耗的 CPU 是 container_B 的兩倍。
限制bps和iops
bps 是 byte per second,每秒讀寫(xiě)的數(shù)據(jù)量。
iops 是 io per second,每秒 IO 的次數(shù)。
可通過(guò)以下參數(shù)控制容器的 bps 和 iops:
- –device-read-bps,限制讀某個(gè)設(shè)備的 bps。
- –device-write-bps,限制寫(xiě)某個(gè)設(shè)備的 bps。
- –device-read-iops,限制讀某個(gè)設(shè)備的 iops。
- –device-write-iops,限制寫(xiě)某個(gè)設(shè)備的 iops。
例子:
//下面這個(gè)例子限制容器寫(xiě) /dev/sda 的速率為 30 MB/s docker run -it --device-write-bps /dev/sda:30MB ubuntu總結(jié)
以上是生活随笔為你收集整理的容器学习 之 限制容器资源(十一)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 容器学习 之 本地镜像与共有镜像(十)
- 下一篇: 容器学习 之 容器的网络类型(十二)