日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Docker Cgroups

發(fā)布時間:2025/6/17 编程问答 56 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Docker Cgroups 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Docker中利用namespace來做權(quán)限控制,用cgroups來做資源控制,這兩個都是非常重要的,下面是整理了一些關(guān)于cgroups相關(guān)的。

cgroups全稱control groups ,是Linux內(nèi)核提供的一種機(jī)制,用來限制、控制與分離一個進(jìn)程組的資源(如CPU、內(nèi)存、磁盤輸入輸出等)。

cgroups最初的目標(biāo)是為資源管理提供的一個統(tǒng)一的框架,即整合現(xiàn)有的cpuset等子系統(tǒng),也為未來開發(fā)新的子系統(tǒng)提供接口。現(xiàn)在的cgroups適用于多種應(yīng)用場景,從單個進(jìn)程的資源控制,到實(shí)現(xiàn)操作系統(tǒng)層次的虛擬化,cgroups提供了以下功能:

  • 限制進(jìn)程組可以使用的資源數(shù)量(Resource limiting)。
  • 進(jìn)程組的優(yōu)先級控制(Prioritization)。
  • 記錄進(jìn)程組使用的資源數(shù)量(Accounting)。
  • 進(jìn)程組隔離(lsolation)。
  • 進(jìn)程控制組(control)。
  • cgroup的API以一個偽文件系統(tǒng)的方式實(shí)現(xiàn),即用戶可以通過文件操作實(shí)現(xiàn)cgroup的組織管理。

    cgroup 的組織管理操作單元可以細(xì)粒度到線程級別,用戶態(tài)代碼也可以針對系統(tǒng)分配的資源創(chuàng)建和銷毀cgroup,從而實(shí)現(xiàn)資源再分配和管理。

    所有資源管理的功能都以subsystem(子系統(tǒng))的方式實(shí)現(xiàn)。

    子進(jìn)程創(chuàng)建之初與其父進(jìn)程處于同一個cgroups的控制組。

    術(shù)語:

    task(任務(wù))

    系統(tǒng)中的進(jìn)程。

    cgroup(控制組)

    cgroups中的資源控制都以cgroup為單位實(shí)現(xiàn)。cgroup表示按某種資源控制標(biāo)準(zhǔn)劃分而成的任務(wù)組,包含一個或多個子系統(tǒng)。一個任務(wù)可以加入某個cgroup,也可以從某個cgroup遷移到另外一個cgroup。

    ?

    subsystem(子系統(tǒng))

    cgroups中的subsystem就是一個資源調(diào)度控制器(Resource Controller)。比如CPU子系統(tǒng)可以控制CPU時間分配,內(nèi)存子系統(tǒng)可以限制cgroup內(nèi)存使用量。

    ?

    hierarchy(層級樹)

    hierarchy由一系列cgroup以一個樹狀結(jié)構(gòu)排列而成,每個hierarchy通過綁定對應(yīng)的subsystem進(jìn)行資源調(diào)度。hierarchy中的cgroup節(jié)點(diǎn)可以包含0或者多個子節(jié)點(diǎn),子節(jié)點(diǎn)繼承父節(jié)點(diǎn)屬性。整個系統(tǒng)可以有多個hierarchy。

    ?

    cgroup是分層管理的,類似進(jìn)程,且子cgroup會繼承上級cgroup的一些屬性。

    ?

    下面簡單做一個對指定進(jìn)程cpu使用率限制的例子感受下。

    先用mount命令查看掛載目錄

    mount -t cgroup

    ?

    cd 過去創(chuàng)建一個測試的節(jié)點(diǎn)(文件夾)

    cd /sys/fs/cgroup/cpu

    sudo mkdir cpu_limit_demo

    ?

    創(chuàng)建好cpu_limit_demo目錄后cd過去會發(fā)現(xiàn)系統(tǒng)會自動創(chuàng)建很多文件。

    ?

    跟上一層路徑下面的文件很像,可以理解成是樹的更深一個層的節(jié)點(diǎn)。

    ?

    cfs_period 和 cfs_quota兩個文件,這兩個參數(shù)需要組合使用,可以用來限制進(jìn)程在長度為cfs_period 的一段時間內(nèi),只能被分配到總量為cfs_quota 的 CPU 時間

    看下默認(rèn)值:

    ?

    -1表示不啟用,假如現(xiàn)在想控制某個進(jìn)程cpu上限是50%,就在quota里面直接插入一個50000(period的一半)。

    ?

    先跑一個whlie1 把 cpu 打滿

    while : ; do : ; done &

    ?

    然后執(zhí)行 echo 50000 > cpu.cfs_quota_us?限制50% 使用率,然后再把需要限制的pid卸載tasks里面 echo 30880 > tasks

    ?

    還有很多其他限制例子,可以看下這個

    https://www.cnblogs.com/wdliu/p/10509045.html

    ?

    ?

    ?

    ?

    ?

    總結(jié)

    以上是生活随笔為你收集整理的Docker Cgroups的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。