반응형

CPU Frequency

Linux Kernel에서는 전력 소비의 균형을 맞추기 위해 동적으로 조절되며, caling governor의 설정에 따라 동작을 달리함.

Scaling governor

현재 설정 확인

$ cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor

아래와 같이 각 core 별 governor 설정을 확인할 수 있음

powersave
powersave
powersave
powersave
powersave
powersave
  :
  :
  :
powersave
powersave
powersave
powersave
powersave
powersave

모드 설명

performance : 항상 최고 주파수 유지
powersave : 항상 최저 주파수 유지
ondemand : CPU 사용률이 급증하면 빠르게 클럭 증가, 낮으면 감소
conservative : ondemand보다 더 천천히 변화
schedutil : 스케줄러(CFS)와 통합 → 스레드 우선순위·부하 기반으로 결정

Scaling governor 설정 변경

performance mode로 변경

for CPU in /sys/devices/system/cpu/cpu[0-9]*; do
    echo performance | sudo tee $CPU/cpufreq/scaling_governor
done

서버의 경우 CPU의 처리 능력 혹은 latency가 중요한 경우가 많으며, performance mode로 설정하여 사용하는 경우가 많음.
일반적인 Ubuntu 설치의 경우 ondemand로 되어 있는 경우가 많은데 간단하게 ondemandperformance의 차이는 아래와 같음

항목 performance ondemand
주파수 동작 항상 최대 클럭 유지 부하 감지 시만 최대 클럭으로 상승
idle 시 클럭 유지 (고정) 클럭 자동 하강 (낮은 상태로 대기)
응답 속도 항상 빠름 (예열 없음) 빠르지만 클럭 상승 지연 발생 가능
전력 소비 높음 (항상 고속이므로) 낮음 (idle에서 클럭 하강)
소음/발열 높을 수 있음 낮은 편
사용 목적 서버, 실시간 처리, 고성능 요구 환경 노트북, 데스크탑, 절전이 중요한 환경

Performance mode로 변경은 CPU Clock에 대한 설정만 하는 것일 뿐 전압 제어 등은 변경하지 않으며, CPU 자체로 Thermal throttling 및 SW Shutdown 등 보호 장치가 있기 때문에 물리적인 문제가 발생할 가능성이 낮음.
하지만 CPU의 과열로 인한 Fan 속도 변경으로 서버의 소음이 커질 수 있으며, Fan 설정이 자동으로 되어있지 않거나 항상 과열 시나리오의 서버 상태라면 Fan 속도를 직접 조절할 필요도 있을 수 있음.

반응형
반응형

governor

CPU Frequency policy에 해아여 parameter 설정

Governor 타입

. OnDemand : 사용량에 따라 CPU Frequency를 변경 // <-- Default 인 경우 있음
. OnDemandX : 배터리 친화적인 OnDemand로서 I/O 스케쥴러에 따라 성능 변경
. Conservative : 느린 OnDemand. 가급적 최저 Frequence
. Interactive : OnDemand처럼 CPU에 위치한 부하 주파수에 따라 변경지만 빠르게 반응함
. Performance : CPU를 Maximum frequence로 고정 설정
. Powersave : CPU를 Minimum frequence로 고정 설정 // <-- Default 인 경우 있음

현재 설정 확인

 $ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor 

현재 CPU의 설정 가능 리스트 확인

0번 cpu로 예를 들지만 다른 cpu#를 확인해도 된다.

 $ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors

Governor 변경 설정

예제는 정규표현식으로 모든 CPU에 대해서 설정함. CPU#를 고정하여 설정해도 됨

 $ sudo echo performance | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
반응형

+ Recent posts