欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Docker容器資源控制CGroup的使用

 更新時(shí)間:2025年09月04日 10:50:57   作者:@t.t.  
本文主要介紹了Docker容器資源控制CGroup的使用,用于限制CPU、內(nèi)存、磁盤I/O等資源,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

一、CGroups的含義

CGroups是Linux內(nèi)核提供的一 種可以限制單個(gè)進(jìn)程或者多個(gè)進(jìn)程所使用資源的機(jī)制,可以對(duì) CPU、內(nèi)存和磁盤I/O等資源實(shí)現(xiàn)檢制。Docker可使用CGroups提倡的資源限制功能來完成CPU、內(nèi)存等部分的資源控制。

CGroups提供了對(duì)進(jìn)程進(jìn)行分組化管理的功能和接口的基礎(chǔ)結(jié)構(gòu),內(nèi)存或磁盤I/O的分配控制等具體的資源管理功能是通過對(duì)進(jìn)程進(jìn)行分組化管理來實(shí)現(xiàn)的。這些具體的資源管理功能稱為CGroups子系統(tǒng)或控制器,主要通過以下九大子系統(tǒng)實(shí)現(xiàn)。

(1)blkio:為每個(gè)塊設(shè)備設(shè)置I/O限制,如磁盤、光盤和USB等設(shè)備。

(2) cpu:使用調(diào)度程序提供對(duì)CPU的CGroup任務(wù)訪問。

(3) cpuacct:自動(dòng)生成CGroup任務(wù)的CPU資源使用報(bào)告。

(4)cpuset:為CGroup中的任務(wù)分配獨(dú)立CPU (在多核系統(tǒng)中)和內(nèi)存節(jié)點(diǎn)。

(5) devices:允許或拒絕CGroup任務(wù)訪問設(shè)備。

(6) freezer: 暫停和恢復(fù)CGroup任務(wù)。

(7)memory:設(shè)置每個(gè)CGroup任務(wù)使用的內(nèi)存限制,并自動(dòng)生成內(nèi)存資源使用報(bào)告。

(8)net_ clsI: 標(biāo)記每個(gè)網(wǎng)絡(luò)包以供CGroup任務(wù)使用。

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

二、CGroup的功能和特點(diǎn)

1、CGroups的主要功能

(1) CGroups可實(shí)現(xiàn)對(duì)進(jìn)程組使用的資源總額的限制。例如,使用memory子系統(tǒng)為進(jìn)程組設(shè)定一個(gè)內(nèi)存使用上限, 當(dāng)進(jìn)程組使用的內(nèi)存達(dá)到限額后再申請(qǐng)內(nèi)存時(shí),會(huì)觸發(fā)OOM(OutOfMemory)警告。

(2)CGroups可實(shí)現(xiàn)對(duì)進(jìn)程組的優(yōu)先級(jí)控制。通過分配CPU時(shí)間片數(shù)量及硬盤I/O、帶寬大小可控制進(jìn)程的優(yōu)先級(jí)。例如,使用CPU子系統(tǒng)為某個(gè)進(jìn)程組分配特定cpu share。

(3) CGroups 可實(shí)現(xiàn)對(duì)進(jìn)程組使用的資源數(shù)量的記錄。例如,使用cpuacct子系統(tǒng)可記錄某個(gè)進(jìn)程組使用的CPU時(shí)間。

(4) CGroups 可實(shí)現(xiàn)對(duì)進(jìn)程組的隔離和控制。例如,使用ns子系統(tǒng)對(duì)不同的進(jìn)程組使用不同的namespace,以達(dá)到隔離的目的,使用不同的進(jìn)程組實(shí)現(xiàn)各自的進(jìn)程、網(wǎng)絡(luò)、文件系統(tǒng)掛載空間,也可使用feezer子系統(tǒng)將進(jìn)程組暫停和恢復(fù)。

2、CGroups的特點(diǎn)

(1)控制族群:控制族群是組按照某種標(biāo)準(zhǔn)劃分的進(jìn)程。CGroups中的資源控制都是以控制族群為單位實(shí)現(xiàn)的。一個(gè)進(jìn)程可以加入某個(gè)控制族群中,也可以從一個(gè)進(jìn)程組遷移到另一個(gè)控制族群。一個(gè)進(jìn)程組的進(jìn)程可以使用CGroups以控制族群為單位分配資源,并受到CGroups以控制族群為單位設(shè)定的限制。

(2)層級(jí):控制族群可以組織為hierarchical 的形式,即一棵控制族群樹。子控制組自動(dòng)繼承父節(jié)點(diǎn)的特定屬性,子控制組還可以有自己特定的屬性。

(3)子系統(tǒng):一個(gè)子系統(tǒng)就是一個(gè)資源控制器, 如memory 子系統(tǒng)是一個(gè)內(nèi)存控制器。子系統(tǒng)必須附加到一個(gè)層級(jí)上才能起作用。個(gè)子 系統(tǒng)附加到某個(gè)層級(jí)以后, 這個(gè)層級(jí)上的所有控制族群都受到這個(gè)子系統(tǒng)的控制。

三、實(shí)訓(xùn)

1、利用CGroups實(shí)現(xiàn)CPU資源控制

(1)利用busybox鏡像生成容器,設(shè)置容器調(diào)度的周期為5000,將容器在每個(gè)周期內(nèi)的CPU配額設(shè)置為25000

[root@controller ~]# docker run -dit --name t1 --cpu-period 50000 --cpu-quota 25000 busybox:latest
da8f5d80873d6dc349e7aae44ef51571b7c530070b8600468aceaec9c20936ac

(2)利用busybox鏡像生成容器。將容器綁定到CPU上執(zhí)行,設(shè)置容器調(diào)度的周期和周期內(nèi)的CPU配額為50000

[root@controller ~]# docker run -dit --name t2 --cpuset-cpus 0 --cpu-period 50000 --cpu-quota 50000 busybox
8bc68f70004e051b344948717d82acba9e9c1a0f5a15f911fa60394618436e12

(3)利用busybox鏡像生成兩個(gè)容器,設(shè)置第二個(gè)容器的CPU使用率是第一個(gè)容器的兩倍

[root@controller ~]# docker run  -dit --name t3 --cpu-quota 1000 busybox
4908f5f5846fc5f269e5a5c7ebf82a4bf53a6f4dacf47753bbbfb2579fccbf88
[root@controller ~]# docker run  -dit --name t4 --cpu-quota 2000 busybox
71f56247679674f65c888562f3ea8f90f783a20e25a2a0f803bdb1ebef928aa4

2、利用CGroups實(shí)現(xiàn)內(nèi)存資源控制

(1)利用busybox鏡像生成容器,設(shè)置容器使用的最大內(nèi)存為256MB

[root@controller ~]# docker run -dit --name  t5 --memory 256MB busybox
3349f1259d61026be4353a6d9460a5e4f43bd960451547d1c4dd383df292fadc

3、利用CGroups實(shí)現(xiàn)磁盤I/O控制

(1)利用busybox鏡像生成容器,設(shè)置第二個(gè)容器讀這些磁盤的帶寬是第一個(gè)容器兩倍

[root@controller ~]# docker run -dit --name t6 --device-read-bps /dev/sda1:1mb  --device-write-bps /dev/sda1:1mb busybox 
b55bce694ef2a24f029ac9c13afe28510085db2751162d876de1b97e210c1066
[root@controller ~]# docker run -dit --name t7 --device-read-bps /dev/sda1:2mb  --device-write-bps /dev/sda1:2mb busybo
79d2920ce67a8c9956d499cff05fc09bee19ab412e419817ea7f220cd6cfc45c

(2)利用busybox鏡像生成容器,設(shè)置容器讀寫速度為30MB/s

[root@controller ~]# docker run -dit --name t8 --device-write-bps /dev/sd2:30mb busybox
70ce52a12add7635fcf082311f5cd719ade0036c0a716ced275a83c4802ea4a2

到此這篇關(guān)于Docker容器資源控制CGroup的使用的文章就介紹到這了,更多相關(guān)Docker容器資源控制CGroup內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • docker compose 使用教程

    docker compose 使用教程

    這篇文章主要介紹了docker compose 使用教程,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-07-07
  • docker官方鏡像下載及使用Dockerfile創(chuàng)建鏡像的方法

    docker官方鏡像下載及使用Dockerfile創(chuàng)建鏡像的方法

    這篇文章主要介紹了docker官方鏡像下載及使用Dockerfile創(chuàng)建鏡像的方法,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2017-02-02
  • Docker Compose 網(wǎng)絡(luò)設(shè)置詳解

    Docker Compose 網(wǎng)絡(luò)設(shè)置詳解

    這篇文章主要介紹了Docker Compose 網(wǎng)絡(luò)設(shè)置詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • Docker設(shè)置代理的方法教程

    Docker設(shè)置代理的方法教程

    本篇文章主要介紹了Docker設(shè)置代理的方法教程,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-08-08
  • 在Ubuntu 16.04上用Docker Swarm和DigitalOcean創(chuàng)建一個(gè)Docker容器集群的方法

    在Ubuntu 16.04上用Docker Swarm和DigitalOcean創(chuàng)建一個(gè)Docker容器集群的方法

    這篇文章主要介紹了在Ubuntu 16.04上用Docker Swarm和DigitalOcean創(chuàng)建一個(gè)Docker容器集群的方法,需要的的朋友參考下吧
    2017-01-01
  • pod污點(diǎn)taint?與容忍度tolerations詳解

    pod污點(diǎn)taint?與容忍度tolerations詳解

    這篇文章主要為大家介紹了pod污點(diǎn)taint與容忍度tolerations示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • Docker?進(jìn)階之鏡像分層方案詳解

    Docker?進(jìn)階之鏡像分層方案詳解

    這篇文章主要介紹了Docker?進(jìn)階之鏡像分層詳解,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-07-07
  • docker鏡像封裝方便打包上傳一鍵部署

    docker鏡像封裝方便打包上傳一鍵部署

    這篇文章主要為大家介紹了docker鏡像封裝方便打包上傳一鍵部署,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-11-11
  • docker環(huán)境下安裝jenkins容器的詳細(xì)教程

    docker環(huán)境下安裝jenkins容器的詳細(xì)教程

    這篇文章主要介紹了docker環(huán)境下安裝jenkins容器的方法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-05-05
  • Docker 中的 bootfs、rootfs 簡介

    Docker 中的 bootfs、rootfs 簡介

    Docker中的bootfs和rootfs是容器文件系統(tǒng)的兩個(gè)層次,bootfs負(fù)責(zé)內(nèi)核啟動(dòng),而rootfs提供運(yùn)行環(huán)境,容器共享宿主機(jī)內(nèi)核,因此沒有獨(dú)立的bootfs,只使用精簡的rootfs,感興趣的朋友跟隨小編一起看看吧
    2024-12-12

最新評(píng)論