docker 限制容器對CPU的使用
上節(jié)學(xué)習(xí)了如何限制容器對內(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 資源的絕對數(shù)量,而是一個相對的權(quán)重值。某個容器最終能分配到的 CPU 資源取決于它的 cpu share 占所有容器 cpu share 總和的比例。
換句話說:通過 cpu share 可以設(shè)置容器使用 CPU 的優(yōu)先級。
比如在 host 中啟動了兩個容器:
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)兩個容器都需要 CPU 資源時,container_A 可以得到的 CPU 是 container_B 的兩倍。
需要特別注意的是,這種按權(quán)重分配 CPU 只會發(fā)生在 CPU 資源緊張的情況下。如果 container_A 處于空閑狀態(tài),這時,為了充分利用 CPU 資源,container_B 也可以分配到全部可用的 CPU。
下面我們繼續(xù)用 progrium/stress 做實(shí)驗(yàn)。
1、啟動 container_A,cpu share 為 1024:

--cpu用來設(shè)置工作線程的數(shù)量。因?yàn)楫?dāng)前 host 只有 1 顆 CPU,所以一個工作線程就能將 CPU 壓滿。如果 host 有多顆 CPU,則需要相應(yīng)增加--cpu的數(shù)量。
2、啟動 container_B,cpu share 為 512:

3、在 host 中執(zhí)行top,查看容器對 CPU 的使用情況:

container_A 消耗的 CPU 是 container_B 的兩倍。
4、現(xiàn)在暫停 container_A:

5、top顯示 container_B 在 container_A 空閑的情況下能夠用滿整顆 CPU:

CPU限額就討論到這里,以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
docker prune命令定時清理不常用數(shù)據(jù)的操作方法
使用docker引擎服務(wù)時間久了,會發(fā)現(xiàn)磁盤空間越來越大,現(xiàn)在要刪除關(guān)于docker相關(guān)不用的數(shù)據(jù)來釋放磁盤空間,這篇文章主要介紹了docker prune命令 可定時清理不常用數(shù)據(jù),需要的朋友可以參考下2022-10-10
docker多個容器的相互通信實(shí)現(xiàn)步驟
本文介紹了在宿主機(jī)上運(yùn)行多個Docker容器時的幾種通信方式,包括默認(rèn)的橋接網(wǎng)絡(luò)、自定義網(wǎng)絡(luò)、--link參數(shù)、Host網(wǎng)絡(luò)、Docker-compose和共享數(shù)據(jù)卷等,每種方式都有其特點(diǎn)和適用場景,感興趣的朋友跟隨小編一起看看吧2025-02-02
詳解用Docker構(gòu)建MySQL主從環(huán)境
這篇文章主要介紹了詳解用Docker構(gòu)建MySQL主從環(huán)境,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07
解決docker啟動容器錯誤:docker:Error response from dae
這篇文章主要介紹了解決docker啟動容器錯誤:docker:Error response from daemon:OCI runtime create failed問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-05-05
Docker?cp命令詳解之如何在Docker容器和主機(jī)之間復(fù)制文件/文件夾
要從Docker容器中復(fù)制文件,可以使用docker?cp命令,下面這篇文章主要給大家介紹了關(guān)于Docker?cp命令詳解之如何在Docker容器和主機(jī)之間復(fù)制文件/文件夾的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下2024-07-07
docker-compose安裝部署NebulaGraph圖數(shù)據(jù)庫的詳細(xì)過程
NebulaGraph Studio是一款可以通過Web訪問的開源圖數(shù)據(jù)庫可視化工具,搭配NebulaGraph內(nèi)核使用,提供構(gòu)圖、數(shù)據(jù)導(dǎo)入、編寫nGQL查詢等一站式服務(wù),這篇文章主要介紹了docker-compose安裝部署NebulaGraph圖數(shù)據(jù)庫的詳細(xì)過程,感興趣的朋友一起看看吧2023-12-12
Docker安裝Nacos服務(wù)的實(shí)現(xiàn)
本文主要介紹了Docker安裝Nacos服務(wù)的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-02-02
Docker部署.NET6項(xiàng)目的實(shí)現(xiàn)步驟
Docker是現(xiàn)在比較流行的開源容器引擎,有了它讓我們部署和維護(hù)系統(tǒng)更加方便,本文主要介紹了Docker部署.NET6項(xiàng)目,具有一定的參考價(jià)值,感興趣的可以了解一下2023-12-12

