17.3. CPUfreq 개요
시스템의 전력 소비 및 열 출력을 줄이는 가장 효과적인 방법 중 하나는 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
절차
특정 CPU에 사용할 수 있는 governor를 확인합니다.
# cpupower frequency-info --governors analyzing CPU 0: available cpufreq governors: performance powersave
모든 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) 도움말
페이지