最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

Docker如何實現(xiàn)CPU資源限制

2023-08-10 17:32 作者:MCIT5  | 我要投稿

這篇文章主要介紹了Docker如何實現(xiàn)CPU資源限制,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

一: 描述

Windows系統(tǒng)使用

--cpu-period int? ? ? ? ? ? ? ? ?限制 CPU CFS 的周期,范圍從 100ms~1s,即[1000, 1000000]

--cpu-quota int? ? ? ? ? ? ? ? ?限制 CPU CFS 配額,必須不小于1ms,即 >= 1000

-c, --cpu-shares int? ? ? ? ? ?CPU 共享權(quán)值(相對權(quán)重)

--cpuset-cpus string? ? ? ? ??允許使用的 CPU 集,值可以為 0-3,0,1

--cpuset-mems string? ? ? ??只對 NUMA 系統(tǒng)有效

三:命令說明

1.默認情況下,所有的容器得到同等比例的 CPU 周期。在有多個容器競爭 CPU 時我們可以設(shè)置每個容器能使用的 CPU 時間比例。這個比例叫作共享權(quán)值,通過-c或--cpu-shares設(shè)置。Docker 默認每個容器的權(quán)值為 1024。不設(shè)置或?qū)⑵湓O(shè)置為 0,都將使用這個默認值。系統(tǒng)會根據(jù)每個容器的共享權(quán)值和所有容器共享權(quán)值和比例來給容器分配 CPU 時間。

假設(shè)有三個正在運行的容器,這三個容器中的任務(wù)都是 CPU 密集型的。第一個容器的 cpu 共享權(quán)值是 1024,其它兩個容器的 cpu 共享權(quán)值是 512。第一個容器將得到 50% 的 CPU 時間,而其它兩個容器就只能各得到 25% 的 CPU 時間了。如果再添加第四個 cpu 共享值為 1024 的容器,每個容器得到的 CPU 時間將重新計算。第一個容器的CPU 時間變?yōu)?33%,其它容器分得的 CPU 時間分別為 16.5%、16.5%、33%。

必須注意的是,這個比例只有在 CPU 密集型的任務(wù)執(zhí)行時才有用。在四核的系統(tǒng)上,假設(shè)有四個單進程的容器,它們都能各自使用一個核的 100% CPU 時間,不管它們的 cpu 共享權(quán)值是多少。

在多核系統(tǒng)上,CPU 時間權(quán)值是在所有 CPU 核上計算的。即使某個容器的 CPU 時間限制少于 100%,它也能使用各個 CPU 核的 100% 時間。

2.docker提供了–cpu-period、–cpu-quota兩個參數(shù)控制容器可以分配到的CPU時鐘周期。–cpu-period是用來指定容器對CPU的使用要在多長時間內(nèi)做一次重新分配,而–cpu-quota是用來指定在這個周期內(nèi),最多可以有多少時間用來跑這個容器。跟–cpu-shares不同的是這種配置是指定一個絕對值,而且沒有彈性在里面,容器對CPU資源的使用絕對不會超過配置的值。

cpu-period和cpu-quota的單位為微秒(μs)。cpu-period的最小值為1000微秒,最大值為1秒(10^6 μs),默認值為0.1秒(100000 μs)。cpu-quota的值默認為-1,表示不做控制。

舉個例子,如果容器進程需要每1秒使用單個CPU的0.2秒時間,可以將cpu-period設(shè)置為1000000(即1秒),cpu-quota設(shè)置為200000(0.2秒)。當然,在多核情況下,如果允許容器進程需要完全占用兩個CPU,則可以將cpu-period設(shè)置為100000(即0.1秒),cpu-quota設(shè)置為200000(0.2秒)


四:測試

agileek/cpuset-test 鏡像是一種用于測試CPU的image,功能就是將指定的CPU資源用滿。

docker pull agileek/cpuset-test

1.??? docker run -it --cpuset-cpus="1,3" agileek/cpuset /bin/bash

表示容器中的進程可以在cpu 1和cpu 3 上執(zhí)行

2.??? docker run -it --cpuset-cpus="0-2" agileek/cpuset /bin/bash

表示容器中的進程可以在cpu 1,cpu 2,cpu 3 上執(zhí)行

3.? ?docker run -ti --rm --name mytest -c 1024 agileek/cpuset-test

打開一個新的端口,監(jiān)控容器CPU占用情況
mpstat -P ALL 5 10

命令結(jié)果圖

感謝你能夠認真閱讀完這篇文章,希望小編分享的“Docker如何實現(xiàn)CPU資源限制”這篇文章對大家有幫助,同時也希望大家多多支持風納云,關(guān)注風納云行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習(xí)!


Docker如何實現(xiàn)CPU資源限制的評論 (共 條)

分享到微博請遵守國家法律
大洼县| 弋阳县| 黑龙江省| 连江县| 锦屏县| 永兴县| 丹江口市| 水富县| 花莲市| 伊金霍洛旗| 灌云县| 阳东县| 蓬溪县| 横山县| 陵水| 马公市| 兴山县| 惠州市| 达孜县| 阿鲁科尔沁旗| 郎溪县| 安溪县| 金溪县| 奉化市| 大连市| 金秀| 阿瓦提县| 达孜县| 靖宇县| 河西区| 阆中市| 济南市| 镶黄旗| 西安市| 吉水县| 河东区| 灌南县| 秭归县| 巍山| 渑池县| 眉山市|