久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

Linux的cgroups概念是什么

174次閱讀
沒有評論

共計 2199 個字符,預(yù)計需要花費 6 分鐘才能閱讀完成。

這篇文章主要介紹“Linux 的 cgroups 概念是什么”,在日常操作中,相信很多人在 Linux 的 cgroups 概念是什么問題上存在疑惑,丸趣 TV 小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Linux 的 cgroups 概念是什么”的疑惑有所幫助!接下來,請跟著丸趣 TV 小編一起來學習吧!

control groups 簡稱 cgroups,是 Linux 內(nèi)核提供的一種可以限制、記錄、隔離進程組(process groups)所使用的物理資源(如:cpu,memory,IO 等等)的機制。最初由 google 的工程師提出,后來被整合進 Linux 內(nèi)核。Cgroups 也是 LXC 為實現(xiàn)虛擬化所使用的資源管理手段,可以說沒有 cgroups 就沒有 LXC。

從 2.6.24 版本開始,linux 內(nèi)核提供了一個叫做 cgroups(控制組)的特性。cgroups 就是 control groups 的縮寫,用來對一組進程所占用的資源做限制、統(tǒng)計、隔離。也是目前輕量級虛擬化技術(shù) lxc(linux container)的基礎(chǔ)之一。每一組進程就是一個控制組,也就是一個 cgroup。cgroups 分為幾個子系統(tǒng),每個子系統(tǒng)代表一種設(shè)施或者說是資源控制器,用來調(diào)度某一類資源的使用,如 cpu 時鐘、內(nèi)存、塊設(shè)備 等。

cgroups 適用于多種應(yīng)用場景,從單個進程的資源控制,到實現(xiàn)操作系統(tǒng)層次的虛擬化(OS Level Virtualization)。
Cgroups 提供了一下功能:

1. 限制進程組可以使用的資源數(shù)量(Resource limiting )。比如:memory 子系統(tǒng)可以為進程組設(shè)定一個 memory 使用上限,一旦進程組使用的內(nèi)存達到限額再申請內(nèi)存,就會出發(fā) OOM(out of memory)。

2. 進程組的優(yōu)先級控制(Prioritization )。比如:可以使用 cpu 子系統(tǒng)為某個進程組分配特定 cpu share。

3. 記錄進程組使用的資源數(shù)量(Accounting )。比如:可以使用 cpuacct 子系統(tǒng)記錄某個進程組使用的 cpu 時間

4. 進程組隔離(Isolation)。比如:使用 ns 子系統(tǒng)可以使不同的進程組使用不同的 namespace,以達到隔離的目的,不同的進程組有各自的進程、網(wǎng)絡(luò)、文件系統(tǒng)掛載空間。

Cgroups 相關(guān)概念及其關(guān)系相關(guān)概念

1. 任務(wù)(task)。在 cgroups 中,任務(wù)就是系統(tǒng)的一個進程。

2. 控制族群(control group)。控制族群就是一組按照某種標準劃分的進程。Cgroups 中的資源控制都是以控制族群為單位實現(xiàn)。一個進程可以加入到某個控制族群,也從一個進程組遷移到另一個控制族群。一個進程組的進程可以使用 cgroups 以控制族群為單位分配的資源,同時受到 cgroups 以控制族群為單位設(shè)定的限制。

3. 層級(hierarchy)。控制族群可以組織成 hierarchical 的形式,既一顆控制族群樹??刂谱迦簶渖系淖庸?jié)點控制族群是父節(jié)點控制族群的孩子,繼承父控制族群的特定的屬性。

4. 子系統(tǒng)(subsytem)。一個子系統(tǒng)就是一個資源控制器,比如 cpu 子系統(tǒng)就是控制 cpu 時間分配的一個控制器。子系統(tǒng)必須附加(attach)到一個層級上才能起作用,一個子系統(tǒng)附加到某個層級以后,這個層級上的所有控制族群都受到這個子系統(tǒng)的控制。

相互關(guān)系

1. 每次在系統(tǒng)中創(chuàng)建新層級時,該系統(tǒng)中的所有任務(wù)都是那個層級的默認  cgroup(我們稱之為  root cgroup ,此 cgroup 在創(chuàng)建層級時自動創(chuàng)建,后面在該層級中創(chuàng)建的 cgroup 都是此 cgroup 的后代)的初始成員。

2. 一個子系統(tǒng)最多只能附加到一個層級。

3. 一個層級可以附加多個子系統(tǒng)

4. 一個任務(wù)可以是多個 cgroup 的成員,但是這些 cgroup 必須在不同的層級。

5. 系統(tǒng)中的進程(任務(wù))創(chuàng)建子進程(任務(wù))時,該子任務(wù)自動成為其父進程所在  cgroup  的成員。然后可根據(jù)需要將該子任務(wù)移動到不同的  cgroup  中,但開始時它總是繼承其父任務(wù)的 cgroup。

Cgroups 子系統(tǒng)介紹

blkio —  這個子系統(tǒng)為塊設(shè)備設(shè)定輸入 / 輸出限制,比如物理設(shè)備(磁盤,固態(tài)硬盤,USB  等等)。

cpu —  這個子系統(tǒng)使用調(diào)度程序提供對  CPU  的  cgroup  任務(wù)訪問。

cpuacct —  這個子系統(tǒng)自動生成  cgroup  中任務(wù)所使用的  CPU  報告。

cpuset —  這個子系統(tǒng)為  cgroup  中的任務(wù)分配獨立  CPU(在多核系統(tǒng))和內(nèi)存節(jié)點。

devices —  這個子系統(tǒng)可允許或者拒絕  cgroup  中的任務(wù)訪問設(shè)備。

freezer —  這個子系統(tǒng)掛起或者恢復(fù)  cgroup  中的任務(wù)。

memory —  這個子系統(tǒng)設(shè)定  cgroup  中任務(wù)使用的內(nèi)存限制,并自動生成由那些任務(wù)使用的內(nèi)存資源報告。

net_cls —  這個子系統(tǒng)使用等級識別符(classid)標記網(wǎng)絡(luò)數(shù)據(jù)包,可允許  Linux  流量控制程序(tc)識別從具體  cgroup  中生成的數(shù)據(jù)包。

ns —  名稱空間子系統(tǒng)。

到此,關(guān)于“Linux 的 cgroups 概念是什么”的學習就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續(xù)學習更多相關(guān)知識,請繼續(xù)關(guān)注丸趣 TV 網(wǎng)站,丸趣 TV 小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

正文完
 
丸趣
版權(quán)聲明:本站原創(chuàng)文章,由 丸趣 2023-08-04發(fā)表,共計2199字。
轉(zhuǎn)載說明:除特殊說明外本站除技術(shù)相關(guān)以外文章皆由網(wǎng)絡(luò)搜集發(fā)布,轉(zhuǎn)載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 开平市| 林周县| 贞丰县| 咸阳市| 博爱县| 思茅市| 汾阳市| 合水县| 贺兰县| 黄陵县| 德化县| 中超| 宁津县| 晋中市| 安乡县| 千阳县| 迁安市| 宁阳县| 昭通市| 瓦房店市| 亚东县| 徐州市| 沾化县| 驻马店市| 大足县| 修文县| 财经| 玛纳斯县| SHOW| 青神县| 峨眉山市| 错那县| 青川县| 太湖县| 乌拉特中旗| 平阳县| 武邑县| 宜川县| 松溪县| 惠水县| 长春市|