콘텐츠로 이동

cpupower - CPU 빈도 및 Governor 제어 치트시트

cpupower - CPU 빈도 및 Governor 제어 치트시트

cpupower는 Linux 커널의 CPU 빈도 스케일링 (cpufreq)유휴 상태 (cpuidle) 서브시스템을 검사하고 제어합니다. 각 코어가 어느 속도로 실행 중인지 표시하고, scaling governor (예: performance로 최대 속도, powersave로 효율)를 전환하고, 빈도를 고정하거나 제한하고, 깨어남 지연을 추가하는 깊은 C-states를 검사/비활성화합니다. 머신에서 예측 가능한 성능을 짜내거나 노트북에서 전력을 절약하기 위한 표준 도구입니다.

설치

플랫폼명령어
Debian/Ubuntusudo apt install linux-cpupower
Fedora/RHELsudo dnf install kernel-tools
Arch Linuxsudo pacman -S cpupower
확인cpupower --version

상태 검사

명령어표시
cpupower frequency-infoGovernor, 현재/최소/최대 freq, 드라이버
cpupower -c all frequency-info모든 코어의 정보
cpupower idle-info사용 가능한 C-states 및 사용
cpupower monitor라이브 코어당 빈도/유휴 거주
watch -n1 'cpupower -c all frequency-info -f'라이브 빈도
# governor와 현재 속도를 빠르게 확인
cpupower frequency-info

Governor

Governor동작
performance항상 최대 빈도에서 실행
powersave가장 낮은 빈도 선호 (또는 intel_pstate min)
ondemand부하 하에서 빠르게 스케일 업
conservative점진적으로 스케일 업
schedutil스케줄러 주도 스케일링 (현대 기본값)
userspace수동 빈도 설정
# 사용 가능한 governor 보기
cpupower frequency-info -g

# 모든 코어에서 성능 governor 설정
sudo cpupower frequency-set -g performance

빈도 설정

명령어효과
sudo cpupower frequency-set -g performanceGovernor 설정
sudo cpupower frequency-set -d 2.0GHz최소 빈도 설정
sudo cpupower frequency-set -u 3.5GHz최대 빈도 설정
sudo cpupower frequency-set -f 3.0GHz고정 빈도 고정 (userspace gov)
sudo cpupower -c 0-3 frequency-set -g powersave코어당 governor

유휴 상태 (C-states)

깊은 C-states는 전력을 절약하지만 깨어남 지연을 추가합니다 — 지연 민감 워크로드에 문제입니다.

명령어효과
cpupower idle-infoC-states 및 거주 나열
sudo cpupower idle-set -d 3특정 C-state 비활성화
sudo cpupower idle-set -e 3C-state 활성화
sudo cpupower idle-set -D 10지연 > 10µs인 C-states 비활성화
# 지연 중요: 일관된 깨어남을 위해 깊은 유휴 상태 비활성화
sudo cpupower idle-set -D 5

부하 하에서 모니터링

# 빈도 및 유휴 거주가 워크로드에 어떻게 반응하는지 감시
cpupower monitor -i 1

코어당 빈도 및 각 C-state에서 소비한 시간을 표시합니다 — governor 변경이 실제로 효과가 있었는지 확인하기에 유용합니다.

변경을 지속적으로 만들기

cpupower frequency-set은 재부트에 걸쳐 지속되지 않습니다. 옵션:

방법방식
systemd 서비스systemctl enable cpupower/etc/default/cpupower
/etc/default/cpupowerGOVERNOR="performance" 설정
TuneDtuned 프로필을 통해 governor 관리하도록 함
rc.local / 단위부트 시 frequency-set 명령어 실행

일반적인 워크플로우

# 벤치마크 박스: 재현 가능한 숫자를 위해 성능으로 잠금
sudo cpupower frequency-set -g performance
cpupower frequency-info -f -c all      # 검증

# 노트북: 배터리 절약
sudo cpupower frequency-set -g powersave

# 지연 튜닝: 성능 governor + 얕은 유휴
sudo cpupower frequency-set -g performance
sudo cpupower idle-set -D 5

cpupower vs 관련 도구

도구역할
cpupowerCPU 빈도/governor + 유휴 상태 제어
tuned전체 시스템 프로필 (governor + 더 많음 설정)
numactlNUMA CPU/메모리 바인딩
taskset프로세스의 CPU 친화성
turbostat상세한 코어당 freq/전력 텔레메트리

일관된 전체 시스템 접근을 위해 tuned가 governor를 관리하도록 하세요. 직접 코어당 제어 및 검사에는 cpupower를 사용하세요.

자료