原創文章,歡迎轉載。轉載請注明:轉載自IT人故事會,謝謝!
原文鏈接地址:『中級篇』容器的資源限制(22)
對于容器的資源限制,在容器出來之前有虛擬化技術,我們可以在一個物理機上創建很多虛擬機,對于一臺物理機來講他的cpu和內存都是配置有限的,對于虛擬機我們在配置的時候也是可以進行限定的。本節跟上節關聯比較緊密,建議一起學習。
虛擬機配置
- 內存配置
- CPU 配置
image.png
容器配置
為什么配置容器,給大家說個很實際的例子,如果一個虛擬機里面就一個容器,切這個容器不設置CPU和內存,當容器內的應用一直在運行的時候,它會一直慢慢的吞噬宿主機上的cpu和內存,最終導致的結果是,容器直到占滿整個內存。這就是不限制的恐怖之處。
- 內存控制
docker image ls
#限定運行內存是200M+虛擬內存200M 結果是內存是400M,
#通過stress 設置一個一個測試的使用內存是500M,
#也就是400M的內存運行一個要使用500M內存的應用效果是什么?
docker run --memory=200M liming/unbuntu-stress --vm 1 --verbose --vm-bytes 500M
- CPU控制
--cpu-share,就是cpu的權重,如果一個物理機里面有2個容器,A 權重是10,B的權重是5,2個容器占滿了整個CPU100%,A占用了整個CPU的66%,B占用了整個CPU的33%。啟動2個容器,看看效果,不要光說不練,實踐才能出真知。
A容器
>cpu權限10,名字test11,PID是4342
docker run --cpu-shares=10 --name=test11 liming/ubuntu-stress --cpu 1
B容器
>cpu權限5,名字test22,PID是4395
docker run --cpu-shares=5 --name=test22 liming/ubuntu-stress --cpu 1
A,B容器的對比
發現是不是容器A占用了66.6%,B占用了33.3%,這就是CPU權重的重要性
PS:Docker 底層的核心技術包括
- Linux 上的命名空間(Namespaces)
- 控制組(Control groups)做資源限制
- Union 文件系統(Union file systems)
- 容器格式(Container format)分層
往期精彩
- docker導學(一)
- 容器的技術概述(二)
- docker的魅力初體驗-5分鐘安裝wordpress不走彎路(三)
- docker官網介紹(四)
- 如何在mac上安裝docker(五)
- 如何在window上安裝docker(六)
- 如何在mac上通過vagrant安裝虛擬機(七)
- 如何在window上通過vagrant安裝虛擬機(八)
- docker-Machine的本地使用(九)
- docker-Machine的本地使用(十)
- 在linux/mac下通過Docker-Machine在阿里云上的使用(11)
- docker架構和底層技術(12)
- docker Image概述(13)
- 手動建立一個base Image(14)
- 什么是Container(15)
- 構建自己的Docker鏡像(16)
- Dockerfile詳解(17)
- 鏡像的發布(18)
- Dockerfile實戰(19)
- 容器的操作(20)
- Dockerfile實戰CMD和ENTRTYPOINT的配合(21)
image