검색

17.3. CPUfreq 개요

download PDF

시스템의 전력 소비 및 열 출력을 줄이는 가장 효과적인 방법 중 하나는 Red Hat Enterprise Linux 8의 x86 및 ARM64 아키텍처에서 지원하는 CPUfreq입니다. CPU 속도 확장이라고도 하는 CPUfreq는 전력을 절약하기 위해 CPU 빈도를 확장할 수 있는 Linux 커널의 인프라입니다.

CPU 확장은 고급 구성 및 전원 인터페이스(ACPI) 이벤트에 응답하여 시스템 부하에 따라 자동으로 수행하거나 사용자 공간 프로그램에 의해 수동으로 수행할 수 있으며, 프로세서의 클록 속도를 즉각적으로 조정할 수 있습니다. 이렇게 하면 시스템이 짧은 클럭 속도로 실행되어 전력을 절약할 수 있습니다. 더 빠르거나 느린 클록 속도, 빈도를 변경할 때 등 빈도를 변경하는 규칙은 CPUfreq governor에 의해 정의됩니다.

cpu power frequency-info 명령을 root로 사용하여 cpu freq 정보를 볼 수 있습니다.

17.3.1. CPUfreq 드라이버

cpupower frequency-info --driver 명령을 root로 사용하여 현재 CPUfreq 드라이버를 볼 수 있습니다.

다음은 CPUfreq에 사용할 수 있는 두 가지 드라이버입니다.

ACPI CPUfreq
ACPI(Advanced Configuration and Power Interface) CPUfreq 드라이버는 ACPI를 통해 특정 CPU의 빈도를 제어하는 커널 드라이버로, 커널과 하드웨어 간의 통신을 보장합니다.
Intel P-state

Red Hat Enterprise Linux 8에서는 Intel P-state 드라이버가 지원됩니다. 드라이버는 Intel Xeon E 시리즈 아키텍처 또는 최신 아키텍처를 기반으로 프로세서에서 P-상태 선택을 제어하기 위한 인터페이스를 제공합니다.

현재 지원되는 CPU에 기본적으로 Intel P-state가 사용됩니다. intel_pstate=disable 명령을 커널 명령줄에 추가하여 ACPI CPUfreq를 사용하도록 전환할 수 있습니다.

Intel P-state는 setpolicy() 콜백을 구현합니다. 드라이버는 cpufreq 코어에서 요청된 정책에 따라 사용할 P-state를 결정합니다. 프로세서가 내부적으로 다음 P-상태를 선택할 수 있는 경우 드라이버는 이 책임을 프로세서에 오프로드합니다. 그렇지 않은 경우 드라이버는 알고리즘을 구현하여 다음 P-상태를 선택합니다.

Intel P-state는 자체 sysfs 파일을 제공하여 P 상태 선택을 제어합니다. 이러한 파일은 /sys/devices/system/cpu/intel_pstate/ 디렉터리에 있습니다. 파일의 변경 사항은 모든 CPU에 적용할 수 있습니다.

이 디렉터리에는 P-state 매개변수 설정에 사용되는 다음 파일이 포함되어 있습니다.

  • max_perf_pct 는 드라이버가 사용 가능한 성능의 백분율로 표현한 최대 P-state를 제한합니다. 사용 가능한 P-state 성능은 no_turbo 설정으로 줄일 수 있습니다.
  • min_perf_pct 는 드라이버에서 요청한 최소 P-상태를 제한하며, 이는 최대 no-turbo 성능 수준의 백분율로 표시됩니다.
  • no_turbo 는 turbo 빈도 범위 아래에 있는 P-state를 선택하도록 드라이버를 제한합니다.
  • turbo_pct 는 turbo 범위에 있는 하드웨어에서 지원하는 총 성능의 백분율을 표시합니다. 이 숫자는 turbo가 비활성화 되었는지 여부와 독립적입니다.
  • num_p states는 하드웨어에서 지원하는 P-state 수를 표시합니다. 이 숫자는 turbo가 비활성화되었는지 여부와 독립적입니다.

추가 리소스

  • cpupower-frequency-info(1) 도움말 페이지

17.3.2. 코어 CPUfreq governor

CPUfreq governor는 시스템 CPU의 전원 특성을 정의하며, 이 특성은 CPU 성능에 영향을 미칩니다. 각 governor는 워크로드 측면에서 고유한 동작, 목적 및 적합성을 갖습니다. cpupower frequency-info --governor 명령을 root로 사용하여 사용 가능한 CPUfreq governor를 볼 수 있습니다.

Red Hat Enterprise Linux 8에는 여러 코어 CPUfreq governor가 포함되어 있습니다.

cpufreq_performance
CPU가 가능한 가장 높은 클록 빈도를 사용하도록 강제 적용합니다. 이 빈도는 정적으로 설정되며 변경되지 않습니다. 따라서 이 특정 governor는 전력 절약 효과를 제공하지 않습니다. 워크로드가 많은 시간에만 적합하며 CPU가 거의 또는 유휴 상태가 되지 않는 경우에만 적합합니다.
cpufreq_powersave
CPU가 가능한 가장 낮은 클록 빈도를 사용하도록 강제 적용합니다. 이 빈도는 정적으로 설정되며 변경되지 않습니다. 이 governor는 최대 전력 절감을 제공하지만 CPU 성능이 가장 낮습니다. 기본적으로 전체 부하의 느린 CPU가 로드되지 않은 빠른 CPU보다 더 많은 전력을 소비하므로 "전원 저장"이라는 용어는 비활성화되는 경우가 있습니다. 따라서 예상 낮은 활동이 낮은 시간대에 절전 조정기를 사용하도록 CPU를 설정하는 것이 좋지만, 그 기간 동안 예기치 않은 높은 부하로 인해 시스템이 실제로 더 많은 전력을 소비할 수 있습니다. 절전 governor는 CPU의 속도 제한기보다 절전기입니다. 과열이 문제가 될 수 있는 시스템과 환경에서 가장 유용합니다.
cpufreq_ondemand
CPU가 시스템 로드가 높은 경우 최대 클록 빈도와 시스템이 유휴 상태일 때 최소 클록 빈도를 달성할 수 있는 동적 governor입니다. 따라서 시스템은 시스템 부하와 관련하여 전력 소비를 적절하게 조정할 수 있지만 빈도 전환 사이의 대기 시간이 소요되었습니다. 따라서 시스템이 유휴 워크로드와 작업량이 너무 자주 전환되는 경우 ondemand governor가 제공하는 모든 성능 또는 절전 이점을 오프셋할 수 있습니다. 대부분의 시스템에서 온 디맨드 governor는 난방 제거, 전력 소비, 성능 및 관리 효율성 사이에서 최상의 절충안을 제공할 수 있습니다. 시스템이 특정 시간에만 사용 중일 때 ondemand governor는 추가 개입 없이 부하에 따라 최대 빈도와 최소 빈도 간에 자동으로 전환합니다.
cpufreq_userspace
이를 통해 사용자 공간 프로그램 또는 root로 실행되는 모든 프로세스가 빈도를 설정할 수 있습니다. 모든 governor에서 사용자 공간은 가장 사용자 지정 가능한 공간 이며 구성 방법에 따라 시스템의 성능과 소비 간에 최적의 균형을 유지할 수 있습니다.
cpufreq_conservative
온 디맨드 governor와 마찬가지로, 보수적인 governor도 사용량에 따라 클럭 빈도를 조정합니다. 그러나 보수적인 governor는 빈도 사이에서 점점 더 점진적으로 전환됩니다. 즉, 보수적인 governor는 최대 및 최소 중에서 선택하는 대신 부하에 가장 적합한 클럭 빈도에 맞게 조정됩니다. 이는 전력 소비를 대폭 절감할 수 있지만, 온 디맨드 governor보다 더 많은 대기 시간을 확보할 수 있습니다.
참고

cron 작업을 사용하여 governor를 활성화할 수 있습니다. 이를 통해 하루 중 특정 시간에 특정 governor를 자동으로 설정할 수 있습니다. 따라서 유휴 시간(예: 근무 시간 후) 동안 낮은 빈도 governor를 지정하고 워크로드가 많은 시간 동안 더 높은 빈도의 governor로 돌아갈 수 있습니다.

특정 governor를 활성화하는 방법에 대한 지침은 CPUfreq governor 설정을 참조하십시오.

17.3.3. Intel P-state CPUfreq governors

기본적으로 Intel P-state 드라이버는 CPU가 HWP를 지원하는지 여부에 따라 HWP(하드웨어 p-state)를 사용하거나 사용하지 않고 활성 모드로 작동합니다.

cpupower frequency-info --governor 명령을 root로 사용하여 사용 가능한 CPUfreq governor를 볼 수 있습니다.

참고

성능절전 Intel P-state CPUfreq governors 기능은 동일한 이름의 코어 CPUfreq governor와 다릅니다.

Intel P-state 드라이버는 다음 세 가지 모드에서 작동할 수 있습니다.

하드웨어 관리 P-states를 사용하는 활성 모드

HWP를 사용한 활성 모드를 사용하는 경우 Intel P-state 드라이버는 CPU에 P 상태 선택을 수행하도록 지시합니다. 드라이버는 빈도 힌트를 제공할 수 있습니다. 그러나 최종 선택은 CPU 내부 논리에 따라 다릅니다. HWP를 사용한 활성 모드에서 Intel P-state 드라이버는 다음 두 가지 P 상태 선택 알고리즘을 제공합니다.

  • performance: performance governor를 사용하면 이 드라이버는 내부 CPU 로직을 성능 지향적으로 지시합니다. 허용되는 P-상태의 범위는 드라이버에서 사용할 수 있는 범위의 위쪽 경계로 제한됩니다.
  • powersave: powersave governor를 사용하면 이 드라이버는 내부 CPU 논리를 절전 지향으로 지시합니다.
하드웨어 관리 P-state가 없는 활성 모드

HWP가 없는 활성 모드를 사용하는 경우 Intel P-state 드라이버는 다음 두 가지 P 상태 선택 알고리즘을 제공합니다.

  • performance: performance governor를 사용하면 드라이버에서 사용할 수 있는 최대 P-state를 선택합니다.
  • powersave: powersave governor를 사용하면 드라이버에서 현재 CPU 사용률에 비례하여 P-상태를 선택합니다. 이 동작은 온디맨드 CPUfreq core governor와 유사합니다.
패시브 모드
passive 모드를 사용하면 Intel P-state 드라이버가 기존 CPUfreq 확장 드라이버와 동일하게 작동합니다. 사용 가능한 모든 일반 CPUFreq 코어 governor를 사용할 수 있습니다.

17.3.4. CPUfreq governor 설정

모든 CPUfreq 드라이버는 kernel-tools 패키지의 일부로 구축되며 자동으로 선택됩니다. CPUfreq를 설정하려면 governor를 선택해야 합니다.

사전 요구 사항

  • cpupower 를 사용하려면 kernel-tools 패키지를 설치합니다.

    # yum install kernel-tools

절차

  1. 특정 CPU에 사용할 수 있는 governor를 확인합니다.

    # cpupower frequency-info --governors
    analyzing CPU 0:
      available cpufreq governors: performance powersave
  2. 모든 CPU에서 governor 중 하나를 활성화합니다.

    # cpupower frequency-set --governor performance

    성능 governor를 요구 사항에 따라 cpufreq governor 이름으로 바꿉니다.

    특정 코어에서만 governor를 활성화하려면 범위 또는 쉼표로 구분된 CPU 번호와 함께 -c 를 사용합니다. 예를 들어 CPU 1-3 및 5의 userspace governor를 활성화하려면 다음을 사용합니다.

    # cpupower -c 1-3,5 frequency-set --governor cpufreq_userspace
참고

kernel-tools 패키지가 설치되지 않은 경우 CPUfreq 설정은 /sys/devices/system/cpu/cpuid/cpufreq/ 디렉토리에서 볼 수 있습니다. 이러한 튜닝 가능 항목에 작성하여 설정 및 값을 변경할 수 있습니다. 예를 들어 cpu0의 최소 클록 속도를 360 MHz로 설정하려면 다음을 사용합니다.

# echo 360000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq

검증

  • governor가 활성화되었는지 확인합니다.

    # cpupower frequency-info
    analyzing CPU 0:
      driver: intel_pstate
      CPUs which run at the same hardware frequency: 0
      CPUs which need to have their frequency coordinated by software: 0
      maximum transition latency:  Cannot determine or is not supported.
      hardware limits: 400 MHz - 4.20 GHz
      available cpufreq governors: performance powersave
      current policy: frequency should be within 400 MHz and 4.20 GHz.
            The governor "performance" may decide which speed to use within this range.
      current CPU frequency: Unable to call hardware
      current CPU frequency: 3.88 GHz (asserted by call to kernel)
      boost state support:
        Supported: yes
        Active: yes

    현재 정책에는 최근 활성화된 cpufreq governor가 표시됩니다. 이 경우 성능이 우수합니다.

추가 리소스

  • cpupower-frequency-info(1)cpupower-frequency-set(1) 도움말 페이지
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.