24.4. CPU 가중치를 조정하여 애플리케이션의 CPU 시간 분배 제어


cpu 컨트롤러의 관련 파일에 값을 할당하여 특정 cgroup 트리 아래의 애플리케이션에 CPU 시간 배포를 규제해야 합니다.

사전 요구 사항

프로세스

  1. 제어 그룹 내에서 리소스 제한을 달성하도록 원하는 CPU 가중치를 구성합니다.

    # echo "150" > /sys/fs/cgroup/Example/g1/cpu.weight
    # echo "100" > /sys/fs/cgroup/Example/g2/cpu.weight
    # echo "50" > /sys/fs/cgroup/Example/g3/cpu.weight
  2. 애플리케이션의 PID를 g1,g2, g3 하위 그룹에 추가합니다.

    # echo "33373" > /sys/fs/cgroup/Example/g1/cgroup.procs
    # echo "33374" > /sys/fs/cgroup/Example/g2/cgroup.procs
    # echo "33377" > /sys/fs/cgroup/Example/g3/cgroup.procs

    예제 명령은 원하는 애플리케이션이 Example/g*/ 하위 cgroups의 멤버가 되도록 하며 해당 cgroup 구성에 따라 CPU 시간을 배포합니다.

    실행 중인 프로세스가 있는 하위 cgroup의 가중치(g1,g2,g3)는 상위 cgroup 수준()으로 요약됩니다. 그러면 CPU 리소스가 가중치에 따라 비례적으로 배포됩니다.

    결과적으로 모든 프로세스가 동시에 실행되면 커널은 cgroup의 cpu.weight 파일을 기반으로 비례 CPU 시간을 각각 할당합니다.

    Expand
    하위 cgroupcpu.weight fileCPU 시간 할당

    g1

    150

    ~50% (150/300)

    g2

    100

    ~33% (100/300)

    g3

    50

    ~16% (50/300)

    cpu.weight 컨트롤러 파일의 값은 백분율이 아닙니다.

    하나의 프로세스가 실행을 중단하고 cgroup g2 를 실행 중인 프로세스 없이 그대로 두면 계산에서 cgroup g2 g 3 의 계정 가중치만 생략합니다.

    Expand
    하위 cgroupcpu.weight fileCPU 시간 할당

    g1

    150

    ~75% (150/200)

    g3

    50

    ~25% (50/200)

    중요

    하위 cgroup에 실행 중인 프로세스가 여러 개 있는 경우 cgroup에 할당된 CPU 시간이 멤버 프로세스 간에 균등하게 배포됩니다.

검증

  1. 애플리케이션이 지정된 제어 그룹에서 실행되는지 확인합니다.

    # cat /proc/33373/cgroup /proc/33374/cgroup /proc/33377/cgroup
    0::/Example/g1
    0::/Example/g2
    0::/Example/g3

    명령 출력에는 Example/g*/ 하위 cgroup에서 실행되는 지정된 애플리케이션의 프로세스가 표시됩니다.

  2. 제한된 애플리케이션의 현재 CPU 사용을 검사합니다.

    # top
    top - 05:17:18 up 1 day, 18:25,  1 user,  load average: 3.03, 3.03, 3.00
    Tasks:  95 total,   4 running,  91 sleeping,   0 stopped,   0 zombie
    %Cpu(s): 18.1 us, 81.6 sy,  0.0 ni,  0.0 id,  0.0 wa,  0.3 hi,  0.0 si,  0.0 st
    MiB Mem :   3737.0 total,   3233.7 free,    132.8 used,    370.5 buff/cache
    MiB Swap:   4060.0 total,   4060.0 free,      0.0 used.   3373.1 avail Mem
    
        PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
      33373 root      20   0   18720   1748   1460 R  49.5   0.0 415:05.87 sha1sum
      33374 root      20   0   18720   1756   1464 R  32.9   0.0 412:58.33 sha1sum
      33377 root      20   0   18720   1860   1568 R  16.3   0.0 411:03.12 sha1sum
        760 root      20   0  416620  28540  15296 S   0.3   0.7   0:10.23 tuned
          1 root      20   0  186328  14108   9484 S   0.0   0.4   0:02.00 systemd
          2 root      20   0       0      0      0 S   0.0   0.0   0:00.01 kthread
    ...
    참고

    모든 프로세스는 명확한 설명을 위해 단일 CPU에서 실행됩니다. CPU weight는 여러 CPU에서 사용할 때 동일한 원칙을 적용합니다.

    PID 33373,PID 33374PID 33377 의 CPU 리소스가 하위 cgroup에 할당한 150, 100 및 50 개의 가중치를 기반으로 할당되었습니다. 가중치는 각 애플리케이션에 대해 약 50%, 33%, CPU 시간 할당에 해당합니다.

Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 문서 정보

Legal Notice

Theme

© 2026 Red Hat
맨 위로 이동