這篇文章主要介紹“Linux的cgroups概念是什么”,在日常操作中,相信很多人在Linux的cgroups概念是什么問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對(duì)大家解答”Linux的cgroups概念是什么”的疑惑有所幫助!接下來,請(qǐng)跟著小編一起來學(xué)習(xí)吧!
站在用戶的角度思考問題,與客戶深入溝通,找到雙灤網(wǎng)站設(shè)計(jì)與雙灤網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名注冊(cè)、網(wǎng)站空間、企業(yè)郵箱。業(yè)務(wù)覆蓋雙灤地區(qū)。
control groups簡稱cgroups,是Linux內(nèi)核提供的一種可以限制、記錄、隔離進(jìn)程組(process groups)所使用的物理資源(如:cpu,memory,IO等等)的機(jī)制。最初由google的工程師提出,后來被整合進(jìn)Linux內(nèi)核。Cgroups也是LXC為實(shí)現(xiàn)虛擬化所使用的資源管理手段,可以說沒有cgroups就沒有LXC。
從 2.6.24 版本開始,linux 內(nèi)核提供了一個(gè)叫做 cgroups(控制組)的特性。cgroups 就是 control groups 的縮寫,用來對(duì)一組進(jìn)程所占用的資源做限制、統(tǒng)計(jì)、隔離。也是目前輕量級(jí)虛擬化技術(shù) lxc (linux container)的基礎(chǔ)之一。每一組進(jìn)程就是一個(gè)控制組,也就是一個(gè) cgroup。cgroups 分為幾個(gè)子系統(tǒng),每個(gè)子系統(tǒng)代表一種設(shè)施或者說是資源控制器,用來調(diào)度某一類資源的使用,如 cpu 時(shí)鐘、內(nèi)存、塊設(shè)備 等。
cgroups 適用于多種應(yīng)用場景,從單個(gè)進(jìn)程的資源控制,到實(shí)現(xiàn)操作系統(tǒng)層次的虛擬化(OS Level Virtualization)。 Cgroups 提供了一下功能:
1.限制進(jìn)程組可以使用的資源數(shù)量(Resource limiting )。比如:memory子系統(tǒng)可以為進(jìn)程組設(shè)定一個(gè)memory使用上限,一旦進(jìn)程組使用的內(nèi)存達(dá)到限額再申請(qǐng)內(nèi)存,就會(huì)出發(fā)OOM(out of memory)。
2.進(jìn)程組的優(yōu)先級(jí)控制(Prioritization )。比如:可以使用cpu子系統(tǒng)為某個(gè)進(jìn)程組分配特定cpu share。
3.記錄進(jìn)程組使用的資源數(shù)量(Accounting )。比如:可以使用cpuacct子系統(tǒng)記錄某個(gè)進(jìn)程組使用的cpu時(shí)間
4.進(jìn)程組隔離(Isolation)。比如:使用ns子系統(tǒng)可以使不同的進(jìn)程組使用不同的namespace,以達(dá)到隔離的目的,不同的進(jìn)程組有各自的進(jìn)程、網(wǎng)絡(luò)、文件系統(tǒng)掛載空間。
1.任務(wù)(task)。在cgroups中,任務(wù)就是系統(tǒng)的一個(gè)進(jìn)程。
2.控制族群(control group)??刂谱迦壕褪且唤M按照某種標(biāo)準(zhǔn)劃分的進(jìn)程。Cgroups中的資源控制都是以控制族群為單位實(shí)現(xiàn)。一個(gè)進(jìn)程可以加入到某個(gè)控制族群,也從一個(gè)進(jìn)程組遷移到另一個(gè)控制族群。一個(gè)進(jìn)程組的進(jìn)程可以使用cgroups以控制族群為單位分配的資源,同時(shí)受到cgroups以控制族群為單位設(shè)定的限制。
3.層級(jí)(hierarchy)??刂谱迦嚎梢越M織成hierarchical的形式,既一顆控制族群樹。控制族群樹上的子節(jié)點(diǎn)控制族群是父節(jié)點(diǎn)控制族群的孩子,繼承父控制族群的特定的屬性。
4.子系統(tǒng)(subsytem)。一個(gè)子系統(tǒng)就是一個(gè)資源控制器,比如cpu子系統(tǒng)就是控制cpu時(shí)間分配的一個(gè)控制器。子系統(tǒng)必須附加(attach)到一個(gè)層級(jí)上才能起作用,一個(gè)子系統(tǒng)附加到某個(gè)層級(jí)以后,這個(gè)層級(jí)上的所有控制族群都受到這個(gè)子系統(tǒng)的控制。
1.每次在系統(tǒng)中創(chuàng)建新層級(jí)時(shí),該系統(tǒng)中的所有任務(wù)都是那個(gè)層級(jí)的默認(rèn) cgroup(我們稱之為 root cgroup ,此cgroup在創(chuàng)建層級(jí)時(shí)自動(dòng)創(chuàng)建,后面在該層級(jí)中創(chuàng)建的cgroup都是此cgroup的后代)的初始成員。
2.一個(gè)子系統(tǒng)最多只能附加到一個(gè)層級(jí)。
3.一個(gè)層級(jí)可以附加多個(gè)子系統(tǒng)
4.一個(gè)任務(wù)可以是多個(gè)cgroup的成員,但是這些cgroup必須在不同的層級(jí)。
5.系統(tǒng)中的進(jìn)程(任務(wù))創(chuàng)建子進(jìn)程(任務(wù))時(shí),該子任務(wù)自動(dòng)成為其父進(jìn)程所在 cgroup 的成員。然后可根據(jù)需要將該子任務(wù)移動(dòng)到不同的 cgroup 中,但開始時(shí)它總是繼承其父任務(wù)的cgroup。
blkio -- 這個(gè)子系統(tǒng)為塊設(shè)備設(shè)定輸入/輸出限制,比如物理設(shè)備(磁盤,固態(tài)硬盤,USB 等等)。
cpu -- 這個(gè)子系統(tǒng)使用調(diào)度程序提供對(duì) CPU 的 cgroup 任務(wù)訪問。
cpuacct -- 這個(gè)子系統(tǒng)自動(dòng)生成 cgroup 中任務(wù)所使用的 CPU 報(bào)告。
cpuset -- 這個(gè)子系統(tǒng)為 cgroup 中的任務(wù)分配獨(dú)立 CPU(在多核系統(tǒng))和內(nèi)存節(jié)點(diǎn)。
devices -- 這個(gè)子系統(tǒng)可允許或者拒絕 cgroup 中的任務(wù)訪問設(shè)備。
freezer -- 這個(gè)子系統(tǒng)掛起或者恢復(fù) cgroup 中的任務(wù)。
memory -- 這個(gè)子系統(tǒng)設(shè)定 cgroup 中任務(wù)使用的內(nèi)存限制,并自動(dòng)生成由那些任務(wù)使用的內(nèi)存資源報(bào)告。
net_cls -- 這個(gè)子系統(tǒng)使用等級(jí)識(shí)別符(classid)標(biāo)記網(wǎng)絡(luò)數(shù)據(jù)包,可允許 Linux 流量控制程序(tc)識(shí)別從具體 cgroup 中生成的數(shù)據(jù)包。
ns -- 名稱空間子系統(tǒng)。
到此,關(guān)于“Linux的cgroups概念是什么”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!
網(wǎng)站名稱:Linux的cgroups概念是什么
URL網(wǎng)址:http://muchs.cn/article0/ghhiio.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導(dǎo)航、虛擬主機(jī)、移動(dòng)網(wǎng)站建設(shè)、服務(wù)器托管、網(wǎng)站改版、微信公眾號(hào)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)