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
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-info --governors
cpupower frequency-set --governor [governor]
~]# cpupower frequency-set --governor [governor]
cpupower -c 1-3,5 frequency-set --governor cpufreq_userspace
~]# cpupower -c 1-3,5 frequency-set --governor cpufreq_userspace
3.2.4. 링크 복사링크가 클립보드에 복사되었습니다!
링크 복사링크가 클립보드에 복사되었습니다!
참고
echo 360000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
echo 360000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq