中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Linux的cgroups概念是什么

發布時間:2022-01-10 17:02:07 來源:億速云 閱讀:210 作者:iii 欄目:云計算

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

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

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

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

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

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

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

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

Cgroups相關概念及其關系

相關概念

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

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

3.層級(hierarchy)。控制族群可以組織成hierarchical的形式,既一顆控制族群樹。控制族群樹上的子節點控制族群是父節點控制族群的孩子,繼承父控制族群的特定的屬性。

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

相互關系

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

2.一個子系統最多只能附加到一個層級。

3.一個層級可以附加多個子系統

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

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

Cgroups子系統介紹

blkio -- 這個子系統為塊設備設定輸入/輸出限制,比如物理設備(磁盤,固態硬盤,USB 等等)。

cpu -- 這個子系統使用調度程序提供對 CPU 的 cgroup 任務訪問。

cpuacct -- 這個子系統自動生成 cgroup 中任務所使用的 CPU 報告。

cpuset -- 這個子系統為 cgroup 中的任務分配獨立 CPU(在多核系統)和內存節點。

devices -- 這個子系統可允許或者拒絕 cgroup 中的任務訪問設備。

freezer -- 這個子系統掛起或者恢復 cgroup 中的任務。

memory -- 這個子系統設定 cgroup 中任務使用的內存限制,并自動生成由那些任務使用的內存資源報告。

net_cls -- 這個子系統使用等級識別符(classid)標記網絡數據包,可允許 Linux 流量控制程序(tc)識別從具體 cgroup 中生成的數據包。

ns -- 名稱空間子系統。

到此,關于“Linux的cgroups概念是什么”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

临武县| 南投市| 哈密市| 克山县| 肇庆市| 十堰市| 景东| 勐海县| 赣榆县| 奈曼旗| 德庆县| 灵寿县| 镇坪县| 友谊县| 石城县| 古浪县| 临漳县| 会昌县| 靖安县| 茂名市| 皮山县| 门头沟区| 赣州市| 南丹县| 泸定县| 会宁县| 云霄县| 塔河县| 翁牛特旗| 奈曼旗| 昔阳县| 宁城县| 英超| 盐源县| 广昌县| 宁河县| 弥勒县| 浙江省| 大姚县| 盱眙县| 浦县|