개요

CPU frequency governors란 CPU 주파수의 동작 속도를 동적으로 변환할 수 있는 정책에 대한 것이다. 대부분의 CPU는 동적 주파수에서 작동할 수 있는데, 이 CPU 동작 속도를 조절하는 것이 cpufreq governors이다.

종류

  1. Performace: CPU를 최고 출력으로 가동시킨다. (시스템 연구에서 default가 되는 설정)
  2. Powersave: CPU를 저전력 모드로 작동시킨다. 즉 주파수 한계를 낮춘다.
  3. Userspace: User programe (주로 root)이 CPU frequency를 동적으로 조절할 수 있게 한다. 이는 scaling_setspeed라는 cpu-device 폴더에 존재하는 파일에 따라서 정책이 이루어지게 된다.
  4. Ondemand: 현재 시스템에 가해지는 부하에 따라서 조절되게 한다.

파라미터

  1. sampling_rate: CPU측정값을 측정하기 위한 us단위
  2. up_threashold: 어느정도 sampling_rate이상이어야 cpu freq를 증가시킬건지
  3. sampling_down_factor: 어느정도 이하여야 cpu freq를 감소시킬건지
  4. etc: https://www.kernel.org/doc/Documentation/cpu-freq/governors.txt

명령어

기본

  1. 현재 설정: cat /sys/devices/system/cpu/cpu#/cpufreq/scaling_governor
  2. 사용가능한 설정: cat /sys/devices/system/cpu/cpu#/cpufreq/scaling_available_governors
  3. 설정 변경: echo /* type of governors (ex. performace) > /sys/devices/system/cpu/cpu#/cpufreq/scaling_governor

cpufrequtils

  1. cpufreq-set -g performance
  2. cpufreq-get cpu#
  3. 모든 코어의 governors 변경: sudo bash -c 'for ((i=0;i<$(nproc);i++)); do cpufreq-set -c $i -g performance; done'
  4. etc: man cpufrequtils