Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

2.5. 建​​​立​​​控​​​制​​​群​​​組​​​

使​​​用​​​ cgcreate 指​​​令​​​來​​​建​​​立​​​控​​​制​​​群​​​組​​​。​​​cgcreate 的​​​語​​​法​​​為​​​:cgcreate -t uid:gid -a uid:gid -g subsystems:path ,其​​​中​​​:
  • -t(選​​​用​​​)—​​​ 指​​​定​​​使​​​用​​​者​​​(透​​​過​​​使​​​用​​​者​​​ ID,也​​​就​​​是​​​ uid)以​​​及​​​群​​​組​​​(透​​​過​​​群​​​組​​​ ID,亦​​​即​​​ gid)來​​​擁​​​有​​​ tasks 偽​​​檔​​​案​​​,給​​​此​​​控​​​制​​​群​​​組​​​使​​​用​​​。​​​該​​​使​​​用​​​者​​​可​​​新​​​增​​​工​​​作​​​至​​​控​​​制​​​群​​​組​​​。​​​

    注意

    請​​​注​​​意​​​,由​​​控​​​制​​​群​​​組​​​移​​​除​​​工​​​作​​​的​​​唯​​​一​​​方​​​法​​​就​​​是​​​將​​​它​​​移​​​至​​​不​​​同​​​的​​​控​​​制​​​群​​​組​​​。​​​若​​​要​​​移​​​動​​​一​​​項​​​工​​​作​​​,使​​​用​​​者​​​必​​​須​​​擁​​​有​​​ destination 控​​​制​​​群​​​組​​​的​​​寫​​​入​​​權​​​限​​​;來​​​源​​​控​​​制​​​群​​​組​​​的​​​寫​​​入​​​權​​​限​​​並​​​不​​​重​​​要​​​。​​​
  • -a(選​​​用​​​):讓​​​使​​​用​​​者​​​(透​​​過​​​使​​​用​​​者​​​ ID,也​​​就​​​是​​​ uid)以​​​及​​​群​​​組​​​(透​​​過​​​群​​​組​​​ ID,亦​​​即​​​ gid)來​​​擁​​​有​​​所​​​有​​​偽​​​檔​​​案​​​,而​​​不​​​是​​​讓​​​此​​​控​​​制​​​群​​​組​​​的​​​ tasks 擁​​​有​​​。​​​這​​​使​​​用​​​者​​​可​​​以​​​修​​​改​​​擁​​​有​​​系​​​統​​​資​​​源​​​的​​​控​​​制​​​群​​​組​​​之​​​任​​​務​​​。​​​
  • -g —​​​ 指​​​定​​​控​​​制​​​群​​​組​​​應​​​建​​​立​​​於​​​哪​​​個​​​階​​​層​​​中​​​,作​​​為​​​以​​​逗​​​號​​​區​​​隔​​​開​​​、​​​與​​​這​​​些​​​階​​​層​​​相​​​聯​​​的​​​子​​​系​​​統​​​。​​​若​​​此​​​清​​​單​​​中​​​的​​​子​​​系​​​統​​​位​​​於​​​不​​​同​​​的​​​階​​​層​​​中​​​,那​​​麼​​​群​​​組​​​便​​​會​​​建​​​立​​​於​​​各​​​個​​​這​​​些​​​階​​​層​​​中​​​。​​​階​​​層​​​之​​​後​​​會​​​包​​​含​​​一​​​個​​​冒​​​號​​​,以​​​及​​​與​​​階​​​層​​​相​​​關​​​之​​​子​​​群​​​組​​​的​​​路​​​徑​​​。​​​請​​​勿​​​在​​​路​​​徑​​​中​​​包​​​含​​​階​​​層​​​的​​​掛​​​載​​​點​​​。​​​
    比​​​方​​​說​​​,位​​​於​​​ /cgroup/cpu_and_mem/lab1/ 目​​​錄​​​的​​​控​​​制​​​群​​​組​​​會​​​稱​​​為​​​ lab1 —​​​ 它​​​的​​​路​​​徑​​​已​​​獨​​​特​​​地​​​指​​​定​​​了​​​,因​​​為​​​一​​​個​​​子​​​系​​​統​​​最​​​多​​​只​​​能​​​屬​​​於​​​一​​​個​​​階​​​層​​​。​​​此​​​外​​​,請​​​注​​​意​​​群​​​組​​​是​​​由​​​控​​​制​​​群​​​組​​​所​​​建​​​立​​​於​​​的​​​所​​​有​​​階​​​層​​​中​​​的​​​子​​​系​​​統​​​所​​​控​​​制​​​的​​​,儘​​​管​​​這​​​些​​​子​​​系​​​統​​​未​​​指​​​定​​​於​​​ cgcreate 指​​​令​​​中​​​ —​​​ 請​​​參​​​閱​​​ 範例 2.5, “cgcreate 使​​​用​​​方​​​法​​​”。​​​
因​​​為​​​相​​​同​​​階​​​層​​​中​​​的​​​所​​​有​​​控​​​制​​​群​​​組​​​皆​​​擁​​​有​​​相​​​同​​​的​​​控​​​制​​​器​​​,因​​​此​​​子​​​群​​​組​​​會​​​擁​​​有​​​與​​​其​​​父​​​群​​​組​​​相​​​同​​​的​​​控​​​制​​​器​​​。​​​

範例 2.5. cgcreate 使​​​用​​​方​​​法​​​

考​​​量​​​一​​​部​​​系​​​統​​​,其​​​ cpu 和​​​ memory 子​​​系​​​統​​​一​​​起​​​掛​​​載​​​於​​​ cpu_and_mem 階​​​層​​​中​​​,並​​​且​​​ net_cls 控​​​制​​​器​​​已​​​掛​​​載​​​於​​​一​​​個​​​獨​​​立​​​、​​​名​​​為​​​ net 的​​​階​​​層​​​中​​​。​​​我​​​們​​​現​​​在​​​將​​​執​​​行​​​:
~]# cgcreate -g cpu,net_cls:/test-subgroup
cgcreate 指​​​令​​​會​​​建​​​立​​​兩​​​個​​​群​​​組​​​,名​​​為​​​ test-subgroup,一​​​個​​​位​​​於​​​cpu_and_mem 階​​​層​​​中​​​,而​​​另​​​一​​​個​​​則​​​位​​​於​​​ net 階​​​層​​​中​​​。​​​cpu_and_mem 階​​​層​​​中​​​的​​​ test-subgroup 群​​​組​​​是​​​由​​​ memory 子​​​系​​​統​​​所​​​控​​​制​​​的​​​,儘​​​管​​​我​​​們​​​並​​​未​​​在​​​ cgcreate 指​​​令​​​中​​​指​​​定​​​它​​​。​​​

額​​​外​​​方​​​式​​​

若​​​要​​​直​​​接​​​建​​​立​​​控​​​制​​​群​​​組​​​的​​​子​​​群​​​組​​​,請​​​使​​​用​​​ mkdir 指​​​令​​​:
~]# mkdir /cgroup/hierarchy/name/child_name
例​​​如​​​:
~]# mkdir /cgroup/cpuset/lab1/group1