docker通過cgroup來控制容器使用的資源配額,包括CPU、內(nèi)存、磁盤三大方面,基本覆蓋了常見的資源配額和使用量控制。
cgroup簡介
cgroup是Control Groups的縮寫,是Linux 內(nèi)核提供的一種可以限制、記錄、隔離進程組所使用的物理資源(如 cpu、memory、磁盤IO等等) 的機制,被LXC、docker等很多項目用于實現(xiàn)進程資源控制。cgroup將任意進程進行分組化管理的 Linux 內(nèi)核功能。cgroup本身是提供將進程進行分組化管理的功能和接口的基礎(chǔ)結(jié)構(gòu),I/O 或內(nèi)存的分配控制等具體的資源管理功能是通過這個功能來實現(xiàn)的。這些具體的資源管理功能稱為cgroup子系統(tǒng),有以下幾大子系統(tǒng)實現(xiàn):
blkio:設(shè)置限制每個塊設(shè)備的輸入輸出控制。例如:磁盤,光盤以及usb等等。 cpu:使用調(diào)度程序為cgroup任務(wù)提供cpu的訪問。 cpuacct:產(chǎn)生cgroup任務(wù)的cpu資源報告。 cpuset:如果是多核心的cpu,這個子系統(tǒng)會為cgroup任務(wù)分配單獨的cpu和內(nèi)存。 devices:允許或拒絕cgroup任務(wù)對設(shè)備的訪問。 freezer:暫停和恢復(fù)cgroup任務(wù)。 memory:設(shè)置每個cgroup的內(nèi)存限制以及產(chǎn)生內(nèi)存資源報告。 net_cls:標(biāo)記每個網(wǎng)絡(luò)包以供cgroup方便使用。 ns:命名空間子系統(tǒng)。 perf_event:增加了對每group的監(jiān)測跟蹤的能力,即可以監(jiān)測屬于某個特定的group的所有線程以及運行在特定CPU上的線程。目前docker只是用了其中一部分子系統(tǒng),實現(xiàn)對資源配額和使用的控制。
可以使用stress工具來測試CPU和內(nèi)存。使用下面的Dockerfile來創(chuàng)建一個基于Ubuntu的stress工具鏡像。
FROM ubuntu:14.04RUN apt-get update &&apt-get install stress
CPU資源配額控制
CPU份額控制
docker提供了
主站蜘蛛池模板:
上虞市|
南通市|
沧州市|
刚察县|
炉霍县|
昌宁县|
邵阳县|
运城市|
抚州市|
沅江市|
广州市|
仁寿县|
永德县|
濮阳县|
陆丰市|
沐川县|
南丰县|
甘孜|
福贡县|
林甸县|
康保县|
青岛市|
青海省|
巴林左旗|
仁布县|
当阳市|
梁山县|
天津市|
临桂县|
庆阳市|
津市市|
常州市|
长宁区|
苏州市|
铜川市|
营口市|
蕉岭县|
云林县|
望江县|
海口市|
岳普湖县|