2.5. 컨트롤 그룹 만들기

cgcreate 명령을 사용하여 cgroup을 생성합니다. cgcreate의 구문은 cgcreate -t uid:gid -a uid:gid -g subsystems:path 입니다. 여기서:
  • -t (옵션) — 이 cgroup에 대해 tasks 가상 파일을 소유하는 사용자 (사용자 ID인 uid로 지정)와 그룹 (그룹 ID인 gid로 지정)을 지정합니다. 이 사용자는 cgroup에 작업을 추가할 수 있습니다.

    참고

    cgroup에서 작업을 제거하려면 다른 cgroup로 이를 이동하는 것이 유일한 방법임에 유의하십시오. 작업을 이동하려면 사용자는 대상 cgroup에 쓰기 권한이 있어야 합니다. 소스 cgroup에 대한 쓰기 액세스는 중요하지 않습니다.
  • -a (옵션) — 이 cgroup에 대해 tasks 이외의 모든 가상 파일을 소유하는 사용자 (사용자 ID인 uid로 지정)와 그룹 (그룹 ID인 gid로 지정)을 지정합니다. 이 사용자는 cgroup에 있는 작업의 시스템 자원에 대한 액세스를 변경할 수 있습니다.
  • -g — cgroup이 생성되어야 하는 계층을 계층에 관련된 콤마로 구분된 subsystems 목록으로 지정합니다. 이 목록의 서브시스템이 다른 계층에 있는 경우, 그룹은 각 계층에 생성됩니다. 계층 목록은 콜론 및 계층에 관련된 자식 그룹으로 path로 계속됩니다. 경로에 계층의 마운트 지점을 포함시키지 마십시오.
    예를 들어, /cgroup/cpu_and_mem/lab1/ 디렉토리에 위치한 cgroup은 lab1라고 부릅니다. 서브시스템에 계층이 하나 밖에 없기 때문에 경로는 이미 고유하게 식별되는 것입니다. 또한 그룹은 cgroup이 생성된 계층에 있는 모든 서브시스템에 의해 제어된다는 점에 유의하십시오. cgcreate 명령에서 이러한 서브시스템이 지정되지 않은 경우에도 그러합니다 — 예 2.5. “cgcreate 사용법 ” 참조.
동일한 계층에 있는 모든 cgroup은 모두 동일한 컨트롤러를 가지고 있기 때문에 자식 그룹은 부모와 동일한 컨트롤러를 갖게 됩니다.

예 2.5. cgcreate 사용법

cpu_and_mem 계층에서 cpumemory 서브시스템이 함께 마운트되어 있으며 net_cls 컨트롤러가 net라는 다른 계층에 마운트되어 있는 시스템을 가정하여 다음 명령을 실행합니다:
~]# cgcreate -g cpu,net_cls:/test-subgroup
cgcreate 명령은 test-subgroup라는 두 개의 그룹을 생성합니다. 하나는 cpu_and_mem 계층에 다른 하나는 net 계층에 들어갑니다. cgcreate 명령으로 지정하지 않아도 cpu_and_mem 계층에 있는 test-subgroup 그룹은 memory 서브시스템에 의해 제어됩니다.

다른 방법

cgroup의 자식을 생성하려면 mkdir 명령을 사용합니다:
~]# mkdir /cgroup/hierarchy/name/child_name
예를 들어:
~]# mkdir /cgroup/cpuset/lab1/group1