2.5. Creating Control Groups
Use the
cgcreate
command to create cgroups. The syntax for cgcreate
is:
cgcreate-t
uid:gid-a
uid:gid -g subsystems:path
where:
-t
(optional) — specifies a user (by user ID, uid) and a group (by group ID, gid) to own thetasks
pseudofile for this cgroup. This user can add tasks to the cgroup.Note
Note that the only way to remove a task from a cgroup is to move it to a different cgroup. To move a task, the user has to have write access to the destination cgroup; write access to the source cgroup is not necessary.-a
(optional) — specifies a user (by user ID, uid) and a group (by group ID, gid) to own all pseudofiles other thantasks
for this cgroup. This user can modify access of the tasks in this cgroup to system resources.-g
— specifies the hierarchy in which the cgroup should be created, as a comma‑separated list of subsystems associated with hierarchies. If the subsystems in this list are in different hierarchies, the group is created in each of these hierarchies. The list of hierarchies is followed by a colon and the path to the child group relative to the hierarchy. Do not include the hierarchy mount point in the path.For example, the cgroup located in the directory/cgroup/cpu_and_mem/lab1/
is called justlab1
— its path is already uniquely determined because there is at most one hierarchy for a given subsystem. Note also that the group is controlled by all the subsystems that exist in the hierarchies in which the cgroup is created, even though these subsystems have not been specified in thecgcreate
command — refer to Example 2.5, “cgcreate usage”.
Because all cgroups in the same hierarchy have the same controllers, the child group has the same controllers as its parent.
Example 2.5. cgcreate usage
Consider a system where the
cpu
and memory
subsystems are mounted together in the cpu_and_mem
hierarchy, and the net_cls
controller is mounted in a separate hierarchy called net
. Run the following command:
~]# cgcreate -g cpu,net_cls:/test-subgroup
The
cgcreate
command creates two groups named test-subgroup
, one in the cpu_and_mem
hierarchy and one in the net
hierarchy. The test-subgroup
group in the cpu_and_mem
hierarchy is controlled by the memory
subsystem, even though it was not specified in the cgcreate
command.
Alternative method
To create a child of the cgroup directly, use the
mkdir
command:
~]# mkdir /cgroup/hierarchy/name/child_name
For example:
~]# mkdir /cgroup/cpu_and_mem/group1