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提供了
主站蜘蛛池模板:
岢岚县|
花垣县|
定边县|
涡阳县|
宾川县|
漠河县|
渝北区|
晋城|
贵溪市|
长阳|
洪泽县|
拜泉县|
丰镇市|
朝阳市|
江阴市|
柏乡县|
财经|
茶陵县|
三门县|
思南县|
嫩江县|
腾冲县|
密山市|
平阳县|
项城市|
礼泉县|
富锦市|
沁水县|
胶州市|
青龙|
出国|
馆陶县|
兴城市|
大英县|
鹿邑县|
梓潼县|
城固县|
彰武县|
遂昌县|
铜山县|
澎湖县|