Docker容器的资源使用限制
如何設(shè)置Docker容器的CPU和內(nèi)存使用限制
容器布署后數(shù),每個(gè)容器占用資源數(shù)不同,當(dāng)資源不夠用時(shí),互相影響,docker提供上資源使用限制功能
docker stats
CONTAINER ? ? ? ? ? CPU % ? ? ? ? ? ? ? MEM USAGE / LIMIT ? ? ? MEM % ? ? ? ? ? ? ? NET I/O ? ? ? ? ? ? BLOCK I/O ? ? ? ? ? PIDS c7bdcdc77786 ? ? ? ?7.04% ? ? ? ? ? ? ? 1.212 GiB / 7.638 GiB ? 15.87% ? ? ? ? ? ? ?0 B / 0 B ? ? ? ? ? 8.08 MB / 372 MB ? ?183 da75d82bfa9c ? ? ? ?7.21% ? ? ? ? ? ? ? 1.5 GiB / 7.638 GiB ? ? 19.64% ? ? ? ? ? ? ?0 B / 0 B ? ? ? ? ? 9.86 MB / 372 MB ? ?184 4769f05b983c ? ? ? ?7.66% ? ? ? ? ? ? ? 1.225 GiB / 7.638 GiB ? 16.04% ? ? ? ? ? ? ?0 B / 0 B ? ? ? ? ? 13.6 MB / 372 MB ? ?187. 通過(guò)docker run來(lái)限制Docker容器資源
我們可以使用docker run命令直接設(shè)置資源限制。這是一個(gè)簡(jiǎn)單的辦法。但是,該限制于只適用于映像的一次特定執(zhí)行任務(wù)
2.1 Memory 內(nèi)存限制
例如,讓我們將容器可以使用的內(nèi)存限制為512mb
我們還可以設(shè)置一個(gè)軟限制或者叫保留,當(dāng)docker檢測(cè)到主機(jī)內(nèi)存不足時(shí)激活:
2.2 CPU 限制
默認(rèn)情況下,訪問(wèn)主機(jī)的CPU是無(wú)限制的,我們可以使用CPUs參數(shù)設(shè)置cpu限制。例如,讓我們約束容器最多使用兩個(gè)cpu:
我們還可以指定CPU分配的優(yōu)先級(jí)。默認(rèn)值是1024,數(shù)字越高優(yōu)先級(jí)越高:
與內(nèi)存保留,當(dāng)計(jì)算能力不足且需要在競(jìng)爭(zhēng)進(jìn)程之間進(jìn)行分配時(shí),CPU共享起主要作用
使用docker-compose文件來(lái)設(shè)置容器資源
我們可以使用docker-compose文件來(lái)實(shí)現(xiàn)類似的結(jié)果。請(qǐng)注意,不同版本的docker-compose的格式設(shè)置上是不同的
3.1 docker swarm Versions 3 以上的版本
讓我們給Nginx的服務(wù)限制是一半的CPU和512m的內(nèi)存,保留四分之一的CPU和128m的內(nèi)存。我們需要在我們的服務(wù)配置中創(chuàng)建“部署”和“資源”分段:
注:reservations沒(méi)有設(shè)置cpus的命令
一般情況下容器的cpus使用被限制在一半,內(nèi)存為512MB ,如果服務(wù)器資源緊張的時(shí)候,cpus占用變?yōu)?/4,內(nèi)存占用被限制為128MB
如果要使用上述docker-compose.yaml部署應(yīng)用我們需要使用docker stack命令 , 部署應(yīng)用到swarm中
docker stack deploy --compose-file docker-compose.yml bael_stack
3.2 docker-compose Version 2 配置方式
在舊版本的docker-compose中,我們可以將資源限制放在與服務(wù)的主要屬性相同的級(jí)別上。它們的名字也略有不同:
?
總結(jié)
以上是生活随笔為你收集整理的Docker容器的资源使用限制的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: mysql部门人员排序设计_MySQL数
- 下一篇: CODE_BM