3.2. CPUfreq
시스템의 전력 소비와 열 출력을 줄이는 가장 효과적인 방법 중 하나는 CPUfreq입니다. cpufreq (CPU 속도 스케일링이라고도 함)는 전원을 절약하기 위해 CPU 빈도를 확장할 수 있는 Linux 커널의 인프라입니다. CPU 호출은 시스템 로드, ACPI 이벤트에 대한 응답으로 자동으로 또는 사용자 공간 프로그램에 의해 수동으로 수행될 수 있으며 프로세서의 클럭 속도를 즉시 조정할 수 있습니다. 이를 통해 시스템은 전력을 절약하기 위해 클럭 속도를 줄일 수 있습니다. 빈도를 더 빠르거나 느린 클럭 속도로 전환하는 규칙, 주파수를 전환할 시기는 CPUfreq governor에 의해 정의됩니다.
3.2.1. cpufreq 드라이버
CPUfreq용 두 가지 드라이버인 ACPI CPUfreq 드라이버와 Intel P-state 드라이버를 사용할 수 있습니다.
ACPI CPUfreq
ACPI CPUfreq 드라이버는 커널과 하드웨어 간의 통신을 보장하는 ACPI를 통해 특정 CPU의 빈도를 제어하는 커널 드라이버입니다.
Intel P-state
Red Hat Enterprise Linux 7에서는 Intel P-state 드라이버가 지원됩니다. 이 드라이버는 Intel Xeon E 시리즈 아키텍처 또는 최신 아키텍처를 기반으로 프로세서에서 P-state 선택을 제어하기 위한 인터페이스를 제공합니다. Intel P-state는 setpolicy() 콜백을 구현합니다. 드라이버는 cpufreq 코어에서 요청한 정책에 따라 사용할 P-state를 결정합니다. 프로세서가 내부적으로 다음 P-상태를 선택할 수 있는 경우, 드라이버는 이러한 책임을 프로세서에 오프로드합니다. 그렇지 않은 경우 드라이버는 알고리즘을 구현하여 다음 P-state를 선택합니다.
Intel P-state는 자체 sysfs 파일을 제공하여 P-state 선택을 제어합니다. 이러한 파일은 /sys/devices/system/cpu/intel_pstate/ 디렉터리에 있습니다. 파일의 모든 변경 사항은 모든 CPU에 적용됩니다. 이 디렉터리에는 P-state 매개변수 설정에 사용되는 5개의 파일이 포함되어 있습니다.
max_perf_pct
: 사용 가능한 성능의 백분율로 표시된 드라이버에서 요청한 최대 P-상태를 제한합니다. no_turbo 설정으로 사용 가능한 P-state 성능을 줄일 수 있습니다(아래 참조).min_perf_pct
: min_perf_pct: 드라이버에서 요청한 최소 P-상태를 제한하고 최대 (no-turbo) 성능 수준의 백분율로 표시됩니다.no_turbo
: turbo 주파수 범위 아래에 P-state를 선택하도록 드라이버를 제한합니다.turbo_pct
: turbo 범위에 있는 하드웨어에서 지원하는 총 성능의 백분율을 표시합니다. 이 수는 turbo가 비활성화되었는지 여부에 관계없이 독립적입니다.num_pstates
: 하드웨어에서 지원하는 P 상태 수를 표시합니다. 이 수는 turbo가 비활성화되었는지 여부에 관계없이 독립적입니다.
현재 Intel P-state는 기본적으로 지원되는 CPU에 사용됩니다. 사용자는 커널 명령줄에 다음을 추가하여 ACPI CPUfreq 사용으로 전환할 수 있습니다.
intel_pstate=disable
3.2.2. cpufreq Cryostats
CPUfreq governor는 시스템 CPU의 전원 특성을 정의합니다. 이 특성은 CPU 성능에 영향을 미칩니다. 각 관리자는 워크로드 측면에서 고유한 동작, 목적 및 적합성을 갖습니다. 이 섹션에서는 CPUfreq governor를 선택하고 구성하는 방법, 각 governor의 특성, 각 관리자가 적합한 워크로드 유형에 대해 설명합니다.
주의
Red Hat Enterprise Linux 7에는 여러 코어 CPUfreq governor가 포함되어 있습니다. Intel P-state 드라이버는 기본적으로 활성 모드에서 작동하며 두 개의 CPUfreq governor만 사용할 수 있습니다( performance 및 powersave ). 성능 및 전원 저장 Intel P-state CPUfreq governor의 기능은 동일한 이름의 코어 CPUfreq governor와 다릅니다.
3.2.2.1. 코어 CPUfreq Cryostat
Red Hat Enterprise Linux 7에서 제공되는 다양한 유형의 CPUfreq governor는 다음과 같습니다.
cpufreq_performance
Performance governor는 CPU에서 가능한 가장 높은 클럭 빈도를 사용하도록 강제 적용합니다. 이 빈도는 정적으로 설정되며 변경되지 않습니다. 이와 같이, 이 특정 관리자는 비용 절감 이점을 제공하지 않습니다. 워크로드가 많은 시간 동안만 적합하며 CPU가 거의 (또는 never) 유휴 상태가 아닌 경우에만 적합합니다.
참고
3.2.2.2.
- 성능
- 성능
3.2.3.
~]# cpupower frequency-info --governors
~]# cpupower frequency-set --governor [governor]
~]# cpupower -c 1-3,5 frequency-set --governor cpufreq_userspace
3.2.4.
참고
echo 360000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq