docker 限制容器對(duì)CPU的使用
上節(jié)學(xué)習(xí)了如何限制容器對(duì)內(nèi)存的使用,本節(jié)我們來看CPU。
默認(rèn)設(shè)置下,所有容器可以平等地使用 host CPU 資源并且沒有限制。
Docker 可以通過-c
或--cpu-shares
設(shè)置容器使用 CPU 的權(quán)重。如果不指定,默認(rèn)值為 1024。
與內(nèi)存限額不同,通過-c
設(shè)置的 cpu share 并不是 CPU 資源的絕對(duì)數(shù)量,而是一個(gè)相對(duì)的權(quán)重值。某個(gè)容器最終能分配到的 CPU 資源取決于它的 cpu share 占所有容器 cpu share 總和的比例。
換句話說:通過 cpu share 可以設(shè)置容器使用 CPU 的優(yōu)先級(jí)。
比如在 host 中啟動(dòng)了兩個(gè)容器:
docker run --name "container_A" -c 1024 ubuntu docker run --name "container_B" -c 512 ubuntu
container_A 的 cpu share 1024,是 container_B 的兩倍。當(dāng)兩個(gè)容器都需要 CPU 資源時(shí),container_A 可以得到的 CPU 是 container_B 的兩倍。
需要特別注意的是,這種按權(quán)重分配 CPU 只會(huì)發(fā)生在 CPU 資源緊張的情況下。如果 container_A 處于空閑狀態(tài),這時(shí),為了充分利用 CPU 資源,container_B 也可以分配到全部可用的 CPU。
下面我們繼續(xù)用 progrium/stress 做實(shí)驗(yàn)。
1、啟動(dòng) container_A,cpu share 為 1024:
--cpu
用來設(shè)置工作線程的數(shù)量。因?yàn)楫?dāng)前 host 只有 1 顆 CPU,所以一個(gè)工作線程就能將 CPU 壓滿。如果 host 有多顆 CPU,則需要相應(yīng)增加--cpu
的數(shù)量。
2、啟動(dòng) container_B,cpu share 為 512:
3、在 host 中執(zhí)行top
,查看容器對(duì) CPU 的使用情況:
container_A 消耗的 CPU 是 container_B 的兩倍。
4、現(xiàn)在暫停 container_A:
5、top
顯示 container_B 在 container_A 空閑的情況下能夠用滿整顆 CPU:
CPU限額就討論到這里,以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Ubuntu 20.04 上安裝和使用 Docker的詳細(xì)過程(安裝包)
這篇文章主要介紹了Ubuntu 20.04 上安裝和使用 Docker的詳細(xì)過程(安裝包),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-03-03liunx內(nèi)存滿了,docker中overlay2爆表解決方案
這篇文章主要介紹了liunx內(nèi)存滿了,docker中overlay2爆表解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-08-08詳解CentOS7用阿里云Docker Yum源在線安裝Docker 17.03.2
這篇文章主要介紹了詳解CentOS7用阿里云Docker Yum源在線安裝Docker 17.03.2,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09Docker 實(shí)現(xiàn)瀏覽器里開發(fā)Android應(yīng)用的功能
這篇文章主要介紹了Docker 實(shí)現(xiàn)瀏覽器里開發(fā)Android應(yīng)用的功能的相關(guān)資料,這里對(duì)布置環(huán)境做了詳細(xì)的步驟,也許你能用到這樣的功能,需要的朋友可以參考下2016-11-11Docker 配置固定IP及橋接的實(shí)現(xiàn)方法
這篇文章主要介紹了Docker 配置固定IP和橋接的實(shí)現(xiàn)方法的相關(guān)資料,這里詳細(xì)介紹了Docker 的四種網(wǎng)絡(luò)模式及如何實(shí)現(xiàn)橋接的案例,需要的朋友可以參考下2016-10-10docker 創(chuàng)建RedHat8.5鏡像的命令
這篇文章主要介紹了docker 創(chuàng)建RedHat8.5鏡像的命令,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2024-03-03docker配置pytorch環(huán)境來進(jìn)行訓(xùn)練的方法步驟
本文主要介紹了docker配置pytorch環(huán)境來進(jìn)行訓(xùn)練的方法步驟,從零開始配置,包括換源,安裝下載,具有一定的參考價(jià)值,感興趣的可以了解一下2024-03-03