您好,登錄后才能下訂單哦!
本篇內(nèi)容介紹了“怎么給docker容器分配內(nèi)存和cpu”的有關(guān)知識(shí),在實(shí)際案例的操作過程中,不少人都會(huì)遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
默認(rèn)情況下,容器使用的資源是不受限制的。也就是可以使用主機(jī)內(nèi)核調(diào)度器所允許的最大資源。但是在容器的使用過程中,經(jīng)常需要對(duì)容器可以使用的主機(jī)資源進(jìn)行限制,下面我們來介紹下。
容器CPU設(shè)置
默認(rèn)設(shè)置下,所有容器可以平等地使用主機(jī) 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),為了充分利用 CPU資源,container_B 也可以分配到全部可用的 CPU。
容器內(nèi)存限額
與操作系統(tǒng)類似,容器可使用的內(nèi)存包括兩部分:物理內(nèi)存和 swap。 Docker 通過下面兩組參數(shù)來控制容器內(nèi)存的使用量。
-m 或 –memory:設(shè)置內(nèi)存的使用限額,例如 100M, 2G。
–memory-swap:設(shè)置 內(nèi)存+swap 的使用限額。
當(dāng)我們執(zhí)行如下命令:
docker run -m 200M --memory-swap=300M ubuntu
其含義是允許該容器最多使用 200M 的內(nèi)存和 100M 的 swap。默認(rèn)情況下,上面兩組參數(shù)為 -1,即對(duì)容器內(nèi)存和 swap 的使用沒有限制。
下面我們使用 progrium/stress 鏡像來為容器分配內(nèi)存。該鏡像可用于對(duì)容器執(zhí)行壓力測(cè)試。執(zhí)行如下命令:
docker run -it -m 200M --memory-swap=300M progrium/stress --vm 1 --vm-bytes 280M
–vm 1:?jiǎn)?dòng) 1 個(gè)內(nèi)存工作線程。
–vm-bytes 280M:每個(gè)線程分配 280M 內(nèi)存。
如果讓工作線程分配的內(nèi)存超過 300M,分配的內(nèi)存超過限額,stress 線程報(bào)錯(cuò),容器退出。
如果在啟動(dòng)容器時(shí)只指定 -m 而不指定 –memory-swap,那么 –memory-swap 默認(rèn)為 -m 的兩倍,比如:
docker run -it -m 200M ubuntu
容器最多使用 200M 物理內(nèi)存和 200M swap。
“怎么給docker容器分配內(nèi)存和cpu”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。