24.3. CPU 대역폭을 조정하여 애플리케이션의 CPU 시간 분배 제어


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

사전 요구 사항

프로세스

  1. 제어 그룹 내에서 리소스 제한을 달성하도록 CPU 대역폭을 구성합니다.

    # echo "200000 1000000" > /sys/fs/cgroup/Example/tasks/cpu.max

    첫 번째 값은 하위 그룹에서 모든 프로세스를 집합적으로 실행할 수 있는 마이크로초 단위로 허용된 시간 할당량입니다. 두 번째 값은 마침표 길이를 지정합니다.

    단일 기간 동안 제어 그룹의 프로세스가 이 할당량에 의해 지정된 시간을 집합적으로 소모하면 나머지 기간 동안 제한되며 다음 기간까지 실행할 수 없습니다.

    이 명령은 CPU 시간 분배 제어를 설정하여 /sys/fs/cgroup/Example/tasks 하위 그룹에서 모든 프로세스가 1초마다 0.2초 동안 CPU에서 실행할 수 있도록 CPU 시간 분배 제어를 설정합니다. 즉, 각 초의 5 분의 1입니다.

  2. 선택 사항: 시간 할당량을 확인합니다.

    # cat /sys/fs/cgroup/Example/tasks/cpu.max
    200000 1000000
  3. 애플리케이션의 PID를 Example/tasks 하위 그룹에 추가합니다.

    # echo "34578" > /sys/fs/cgroup/Example/tasks/cgroup.procs
    # echo "34579" > /sys/fs/cgroup/Example/tasks/cgroup.procs

    예제 명령은 필수 애플리케이션이 Example/tasks 하위 그룹의 멤버가 되고 이 하위 그룹에 구성된 CPU 시간 배포를 초과하지 않도록 합니다.

검증

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

    # cat /proc/34578/cgroup /proc/34579/cgroup
    0::/Example/tasks
    0::/Example/tasks

    위의 출력은 Example/tasks 하위 그룹에서 실행되는 지정된 애플리케이션의 프로세스를 보여줍니다.

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

    # top
    top - 11:13:53 up 23:10,  1 user,  load average: 0.26, 1.33, 1.66
    Tasks: 104 total,   3 running, 101 sleeping,   0 stopped,   0 zombie
    %Cpu(s):  3.0 us,  7.0 sy,  0.0 ni, 89.5 id,  0.0 wa,  0.2 hi,  0.2 si,  0.2 st
    MiB Mem :   3737.4 total,   3312.6 free,    133.4 used,    291.4 buff/cache
    MiB Swap:   4060.0 total,   4060.0 free,      0.0 used.   3376.0 avail Mem
    
        PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
      34578 root      20   0   18720   1756   1468 R  10.0   0.0  37:36.13 sha1sum
      34579 root      20   0   18720   1772   1480 R  10.0   0.0  37:41.22 sha1sum
          1 root      20   0  186192  13940   9500 S   0.0   0.4   0:01.60 systemd
          2 root      20   0       0      0      0 S   0.0   0.0   0:00.01 kthreadd
          3 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 rcu_gp
          4 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 rcu_par_gp
    ...

    PID 34578PID 34579 의 CPU 사용량이 10%로 단축되었습니다. Example/tasks 하위 그룹은 프로세스를 전체적으로 CPU 시간의 20%로 조정합니다. 제어 그룹에 2개의 프로세스가 있으므로 각각 CPU 시간의 10%를 사용할 수 있습니다.

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.