2.7. 매개변수 설정하기

해당 cgroup을 수정하기 위해 권한을 갖는 사용자 계정에서 cgset 명령을 실행하여 서브시스템 매개 변수를 설정합니다. 예를 들어, /cgroup/cpuset/group1이 존재하는 경우 다음과 같은 명령으로 그룹에 액세스할 수 있는 CPU를 지정합니다:
cpuset]# cgset -r cpuset.cpus=0-1 group1
cgset의 구문은 cgset -r parameter=value path_to_cgroup 입니다. 여기서:
  • parameter는 설정해야 할 매개 변수로 특정 group의 디렉토리에 있는 파일에 해당합니다.
  • 은 매개변수에 지정할 값입니다
  • path_to_cgroup계층의 root에 관련된 cgroup으로의 경로입니다. 예를 들어, root 그룹의 매개 변수를 설정하려면 (/cgroup/cpuacct/가 존재하는 경우) 다음 명령을 실행합니다:
    cpuacct]# cgset -r cpuacct.usage=0 /
    또한 .은 root 그룹과 관련되어 있기 때문에 (즉, root 그룹 자체이므로) 다음 명령을 실행할 수 있습니다:
    cpuacct]# cgset -r cpuacct.usage=0 .
    하지만 /는 권장 구문이라는 점에 유의하십시오.

    참고

    root 그룹에 소수의 매개 변수 만을 설정할 수 있습니다 (예: 위의 예제에서 cpuacct.usage 매개 변수 등). root 그룹이 기존의 모든 자원을 소유하기 때문입니다. 따라서 cpuset.cpu 매개 변수와 같은 특정 매개 변수를 정의하여 모든 기존 프로세스를 제한하는 것은 의미가 없습니다.
    root 그룹의 하위 그룹인 group1의 매개 변수를 설정하려면 다음 명령을 실행합니다:
    cpuacct]# cgset -r cpuacct.usage=0 group1
    그룹 이름의 끝에 있는 슬래시 (예: cpuacct.usage=0 group1/)는 옵션입니다.
cgset으로 설정할 수 있는 값은 특정 계층의 상위 계층에 설정된 값에 따라 달라집니다. 예를 들어, group1이 시스템에서 CPU 0만 사용하도록 제한된 경우, CPUs 0과 1 또는 CPU 1 만을 사용하도록 group1/subgroup1을 설정할 수 없습니다.
cgset을 사용하여 서로 다른 cgroup 간의 매개 변수를 복사할 수 있습니다. 예:
~]# cgset --copy-from group1/ group2/
cgset으로 매개 변수를 복사하기 위한 구문은 다음과 같습니다: cgset --copy-from path_to_source_cgroup path_to_target_cgroup 여기서:
  • path_to_source_cgroup은 매개 변수가 복사된 계층의 root 그룹과 관련된 cgroup으로의 경로입니다.
  • path_to_target_cgroup은 계층의 root 그룹과 관련하여 대상 cgroup으로의 경로입니다.
한 그룹에서 다른 그룹으로 매개 변수를 복사하기 전 다양한 서브시스템의 필수 매개 변수가 설정되어 있는지 확인합니다. 필수 매개 변수가 설정되지 않은 경우 명령은 실패하게 됩니다. 필수 매개 변수에 대한 자세한 내용은 중요 — 필수 매개 변수 에서 참조하십시오.

다른 방법

cgroup에서 매개 변수를 설정하려면 echo 명령을 사용하여 관련 서브시스템 가상 파일로 값을 추가합니다. 예를 들어, 다음 명령은 0-1 값을 cgroup group1cpuset.cpus 가상 파일에 추가합니다:
~]# echo 0-1 > /cgroup/cpuset/group1/cpuset.cpus
이 값이 지정되면 cgroup 내의 작업은 시스템의 CPU 0와 1에서만 수행되도록 제한됩니다.