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

這篇文章主要為大家展示了“Docker如何實現(xiàn)Memory資源限制”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“Docker如何實現(xiàn)Memory資源限制”這篇文章吧。

成都創(chuàng)新互聯(lián)公司是一家企業(yè)級云計算解決方案提供商,超15年IDC數(shù)據(jù)中心運營經(jīng)驗。主營GPU顯卡服務器,站群服務器,成都移動機房,海外高防服務器,機柜大帶寬、租用·托管,動態(tài)撥號VPS,海外云手機,海外云服務器,海外服務器租用托管等。

一:簡介

docker通過cgroup來控制容器使用的資源配額,包括CPU、內(nèi)存、磁盤三大方面,基本覆蓋了常見的資源配額和使用量控制。

cgroup是Control Groups的縮寫,是Linux 內(nèi)核提供的一種可以限制、記錄、隔離進程組所使用的物理資源(如 cpu、memory、磁盤IO等等) 的機制,被LXC、docker等很多項目用于實現(xiàn)進程資源控制。cgroup將任意進程進行分組化管理的 Linux 內(nèi)核功能。cgroup本身是提供將進程進行分組化管理的功能和接口的基礎結(jié)構(gòu),I/O 或內(nèi)存的分配控制等具體的資源管理功能是通過這個功能來實現(xiàn)的。這些具體的資源管理功能稱為cgroup子系統(tǒng),有以下幾大子系統(tǒng)實現(xiàn):

  1. blkio:設置限制每個塊設備的輸入輸出控制。例如:磁盤,光盤以及usb等等。

  2. cpu:使用調(diào)度程序為cgroup任務提供cpu的訪問。

  3. cpuacct:產(chǎn)生cgroup任務的cpu資源報告。

  4. cpuset:如果是多核心的cpu,這個子系統(tǒng)會為cgroup任務分配單獨的cpu和內(nèi)存。

  5. devices:允許或拒絕cgroup任務對設備的訪問。

  6. freezer:暫停和恢復cgroup任務。

  7. memory:設置每個cgroup的內(nèi)存限制以及產(chǎn)生內(nèi)存資源報告。

  8. net_cls:標記每個網(wǎng)絡包以供cgroup方便使用。

  9. ns:命名空間子系統(tǒng)。

  10. perf_event:增加了對每group的監(jiān)測跟蹤的能力,即可以監(jiān)測屬于某個特定的group的所有線程以及運行在特定CPU上的線程。

目前docker只是用了其中一部分子系統(tǒng),實現(xiàn)對資源配額和使用的控制。

二:內(nèi)存資源控制

和CPU控制一樣,docker也提供了若干參數(shù)來控制容器的內(nèi)存使用配額,可以控制容器的swap大小、可用內(nèi)存大小等各種內(nèi)存方面的控制。主要有以下參數(shù):

1.--memory: 設置容器使用的大內(nèi)存上限。默認單位為byte,可以使用K、G、M等帶單位的字符串。

2.-- memory-reservation: 啟用彈性的內(nèi)存共享,當宿主機資源充足時,允許容器盡量多地使用內(nèi)存,當檢測到內(nèi)存競爭或者低內(nèi)存時,強制將容器的內(nèi)存降低到memory-reservation所指定的內(nèi)存大小。按照官方說法,不設置此選項時,有可能出現(xiàn)某些容器長時間占用大量內(nèi)存,導致性能上的損失。

3.--memory-swap: 等于內(nèi)存和swap分區(qū)大小的總和,設置為-1時,表示swap分區(qū)的大小是無限的。默認單位為byte,可以使用K、G、M等帶單位的字符串。如果–memory-swap的設置值小于–memory的值,則使用默認值,為–memory-swap值的兩倍。

4. --memory-swappiness: 控制進程將物理內(nèi)存交換到swap分區(qū)的傾向,默認系數(shù)為60。系數(shù)越小,就越傾向于使用物理內(nèi)存。值范圍為0-100。當值為100時,表示盡量使用swap分區(qū);當值為0時,表示禁用容器 swap 功能(這點不同于宿主機,宿主機 swappiness 設置為 0 也不保證 swap 不會被使用)。

默認情況下,容器可以使用主機上的所有空閑內(nèi)存。

三:舉例

docker run -ti --rm --name mytest --memory 128m  centos:latest /bin/bash

Docker stats <容器ID>

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

四:IO資源控制

相對于CPU和內(nèi)存的配額控制,docker對磁盤IO的控制相對不成熟,大多數(shù)都必須在有宿主機設備的情況下使用。主要包括以下參數(shù):

  • –device-read-bps:限制此設備上的讀速度(bytes per     second),單位可以是kb、mb或者gb。

  • –device-read-iops:通過每秒讀IO次數(shù)來限制指定設備的讀速度。

  • –device-write-bps :限制此設備上的寫速度(bytes per     second),單位可以是kb、mb或者gb。

  • –device-write-iops:通過每秒寫IO次數(shù)來限制指定設備的寫速度。

  • –blkio-weight:容器默認磁盤IO的加權(quán)值,有效值范圍為10-100。

  • –blkio-weight-device: 針對特定設備的IO加權(quán)控制。其格式為DEVICE_NAME:WEIGHT

以上是“Docker如何實現(xiàn)Memory資源限制”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學習更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設公司行業(yè)資訊頻道!

網(wǎng)頁題目:Docker如何實現(xiàn)Memory資源限制-創(chuàng)新互聯(lián)
URL網(wǎng)址:http://muchs.cn/article18/dpihdp.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站、網(wǎng)站營銷、Google、ChatGPTApp設計、品牌網(wǎng)站建設

廣告

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

營銷型網(wǎng)站建設