Docker如何實(shí)現(xiàn)CPU資源限制-創(chuàng)新互聯(lián)

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

成都創(chuàng)新互聯(lián)是一家專(zhuān)注于成都做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)、成都外貿(mào)網(wǎng)站建設(shè)與策劃設(shè)計(jì),仁和網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)做網(wǎng)站,專(zhuān)注于網(wǎng)站建設(shè)十年,網(wǎng)設(shè)計(jì)領(lǐng)域的專(zhuān)業(yè)建站公司;建站業(yè)務(wù)涵蓋:仁和等地區(qū)。仁和做網(wǎng)站價(jià)格咨詢(xún):18980820575

一: 描述

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)值(相對(duì)權(quán)重)

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

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

三:命令說(shuō)明

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

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

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

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

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

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

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


四:測(cè)試

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

docker pull agileek/cpuset-test

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

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

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

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

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

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

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

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“Docker如何實(shí)現(xiàn)CPU資源限制”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來(lái)學(xué)習(xí)!

本文題目:Docker如何實(shí)現(xiàn)CPU資源限制-創(chuàng)新互聯(lián)
本文鏈接:http://muchs.cn/article38/dhgjsp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、小程序開(kāi)發(fā)、企業(yè)網(wǎng)站制作、建站公司、搜索引擎優(yōu)化、Google

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司