Show Table of Contents
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-subgroupcgcreate 指令會建立兩個群組,名為 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
Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.