24.3. CPU 대역폭을 조정하여 애플리케이션의 CPU 시간 분배 제어
cpu 컨트롤러의 관련 파일에 값을 할당하여 특정 cgroup 트리 아래의 애플리케이션에 CPU 시간 배포를 규제해야 합니다.
사전 요구 사항
- root 권한이 있습니다.
- CPU 시간 배포를 제어하려는 애플리케이션이 두 개 이상 있습니다.
- 관련 애플리케이션이 CPU 시간 배포를 위해 cgroup 준비에 설명된 대로 동일한 CPU에서 CPU 시간 경쟁을 보장했습니다.
-
cgroups-v2마운트에 설명된 대로 cgroups-v2 파일 시스템을 마운트했습니다. -
CPU 시간 배포를 위해 cgroup 준비에 설명된 것과 유사하게 상위 제어 그룹 및 하위 제어 그룹에서
cpu및cpuset컨트롤러를 활성화했습니다. 아래 예제와 같이
/sys/fs/cgroup/root 제어 그룹 내에 두 개의 하위 제어 그룹을 생성했습니다.… ├── Example │ ├── tasks …
… ├── Example │ ├── tasks …Copy to Clipboard Copied! Toggle word wrap Toggle overflow
프로세스
제어 그룹 내에서 리소스 제한을 달성하도록 CPU 대역폭을 구성합니다.
echo "200000 1000000" > /sys/fs/cgroup/Example/tasks/cpu.max
# echo "200000 1000000" > /sys/fs/cgroup/Example/tasks/cpu.maxCopy to Clipboard Copied! Toggle word wrap Toggle overflow 첫 번째 값은 하위 그룹에서 모든 프로세스를 집합적으로 실행할 수 있는 마이크로초 단위로 허용된 시간 할당량입니다. 두 번째 값은 마침표 길이를 지정합니다.
단일 기간 동안 제어 그룹의 프로세스가 이 할당량에 의해 지정된 시간을 집합적으로 소모하면 나머지 기간 동안 제한되며 다음 기간까지 실행할 수 없습니다.
이 명령은 CPU 시간 분배 제어를 설정하여
/sys/fs/cgroup/Example/tasks하위 그룹에서 모든 프로세스가 1초마다 0.2초 동안 CPU에서 실행할 수 있도록 CPU 시간 분배 제어를 설정합니다. 즉, 각 초의 5 분의 1입니다.선택 사항: 시간 할당량을 확인합니다.
cat /sys/fs/cgroup/Example/tasks/cpu.max 200000 1000000
# cat /sys/fs/cgroup/Example/tasks/cpu.max 200000 1000000Copy to Clipboard Copied! Toggle word wrap Toggle overflow 애플리케이션의 PID를
Example/tasks하위 그룹에 추가합니다.echo "34578" > /sys/fs/cgroup/Example/tasks/cgroup.procs echo "34579" > /sys/fs/cgroup/Example/tasks/cgroup.procs
# echo "34578" > /sys/fs/cgroup/Example/tasks/cgroup.procs # echo "34579" > /sys/fs/cgroup/Example/tasks/cgroup.procsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제 명령은 필수 애플리케이션이
Example/tasks하위 그룹의 멤버가 되고 이 하위 그룹에 구성된 CPU 시간 배포를 초과하지 않도록 합니다.
검증
애플리케이션이 지정된 제어 그룹에서 실행되는지 확인합니다.
cat /proc/34578/cgroup /proc/34579/cgroup 0::/Example/tasks 0::/Example/tasks
# cat /proc/34578/cgroup /proc/34579/cgroup 0::/Example/tasks 0::/Example/tasksCopy to Clipboard Copied! Toggle word wrap Toggle overflow 위의 출력은
Example/tasks하위 그룹에서 실행되는 지정된 애플리케이션의 프로세스를 보여줍니다.제한된 애플리케이션의 현재 CPU 사용을 검사합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow PID 34578및PID 34579의 CPU 사용량이 10%로 단축되었습니다.Example/tasks하위 그룹은 프로세스를 전체적으로 CPU 시간의 20%로 조정합니다. 제어 그룹에 2개의 프로세스가 있으므로 각각 CPU 시간의 10%를 사용할 수 있습니다.