Docker筆記(9) 容器的資源分配

2021-10-10 13:59:37 字數 1799 閱讀 1600

1.記憶體分配

記憶體限額與作業系統類似,容器可使用的記憶體包括兩部分:物理記憶體和swap。docker通過下面兩組引數來控制容器記憶體的使用量。

(1)-m或-memory:設定記憶體的使用限額,例如100mb,2gb。

(2)-memory-swap:設定記憶體+swap的使用限額。

預設情況下對容器記憶體和swap的使用沒有限制。如果在啟動容器時只指定-m而不指定–memory-swap,那麼–memory-swap預設為-m的兩倍。

當我們執行如下命令:

docker run -m 200m --memory-swap=300m ubuntu --vm 1 --vm-bytes 280m
該命令允許容器最多使用200mb的記憶體和100mb的swap。vm 1表示容器啟動1個記憶體工作執行緒

vm-bves280m表示每個執行緒分配280mb記憶體。

2.cpu限制

cpu限額預設設定下,所有容器可以平等地使用主機的cpu資源並且沒有限制。docker可以通過-c或–cpu-shares設定容器使用cpu的權重。如果不指定,預設值為1024。與記憶體限額不同,通過-c設定的 cpu share並不是cpu資源的絕對數量,而是乙個相對的權重值。某個容器最終能分配到的cpu資源取決於它的 cpu share佔所有容器 cpu share總和的比例。換句話說:通過-c可以設定容器使用cpu的優先順序。

如果容器a的cpu share值是容器b的兩倍,當兩個容器都需要cpu資源時,容器a獲得的cpu是容器b的兩倍。需要特別注意的是,這種按權重分配cpu只會發生在cpu資源緊張的情況下。如果cpu存在空閒,這時為了充分利用cpu資源,容器可以分配到全部可用的cpu。

docker run ubuntu -c 2048 --cpu 2
–cpu用來設定工作執行緒的數量,如果當前主機只有一顆cpu,乙個執行緒就能將cpu壓滿。如果主機有多顆cpu,則需要相應增加–cpu的數量來提高cpu的利用率。

3. block io限制

block io權重預設情況下,所有容器能平等地讀寫磁碟,可以通過設定–blkio-weight引數來改變容器block io的優先順序。–blkio-weight與–cpu-shares類似,設定的是相對權重值,預設為500。

限制bps和iops

bps是 byte per second,每秒讀寫的資料量。iops是 io per second,每秒io的次數。

可通過以下引數控制容器的bps和iops:

下面這個例子限制容器寫/dev/sda的速率為30mbs:

docker run -it --device-write-bps /dev/sda:30mb ubuntu
linux作業系統通過cgroup控制程序對cpu、記憶體和io資源的使用。上面的–cpu-shares、-m、-device-write-bps實際上就是在配置cgroup。在/sys/fs/cgroup/cpu/docker目錄中,linux會為每個容器建立乙個cgroup目錄,以容器的長id命名。

目錄中包含所有與cpu相關的cgroup配置,檔案cpu.shares儲存的就是–cpu-shares的配置,值為1024。同理,/sys/fs/cgroup/memory/docker和/sys/fs/cgroup/blkio/docker中儲存的是記憶體以及block io的cgroup配置。

docker容器資源限制

docker啟動時可用針對記憶體和cpu進行資源限制 一 對記憶體進行限制 m 記憶體大小 docker run rm itd name jdk8 m 1024m primetoninc jdk 進行驗證 二 對cpu進行限制 指定容器中的程式執行在指定的cpu核心上 cpuset cpus 0 指...

docker容器的記憶體資源限制

docker資源限制和docker資源限制的型別 記憶體資源限制的原理和記憶體資源限制的選項 配置記憶體資源限制 預設情況docker沒有對容器進行資源限制 容器可以無限制從docker宿主機獲取計算機硬體資源 當docker宿主機硬體佔滿,linux核心探測報記憶體異常或者溢位,自動殺死占用系統資...

Docker容器資源管理

前言 在進行集群實驗時,由於物理機不夠用,而在一台物理機裝虛擬機器又會造成很大的資源開銷,電腦執行緩慢。而容器則為我們提供了一種很好的解決方式。docker也在近幾年很快擴充套件開來,被用以微服務架構的搭建和實驗。那麼,使用docker建立的容器與物理機之間的資源占用是怎樣的呢?下面我們來具體說明。...