cpupower - CPU 빈도 및 Governor 제어 치트시트
cpupower는 Linux 커널의 CPU 빈도 스케일링 (cpufreq) 및 유휴 상태 (cpuidle) 서브시스템을 검사하고 제어합니다. 각 코어가 어느 속도로 실행 중인지 표시하고, scaling governor (예: performance로 최대 속도, powersave로 효율)를 전환하고, 빈도를 고정하거나 제한하고, 깨어남 지연을 추가하는 깊은 C-states를 검사/비활성화합니다. 머신에서 예측 가능한 성능을 짜내거나 노트북에서 전력을 절약하기 위한 표준 도구입니다.
설치
| 플랫폼 | 명령어 |
|---|
| Debian/Ubuntu | sudo apt install linux-cpupower |
| Fedora/RHEL | sudo dnf install kernel-tools |
| Arch Linux | sudo pacman -S cpupower |
| 확인 | cpupower --version |
상태 검사
| 명령어 | 표시 |
|---|
cpupower frequency-info | Governor, 현재/최소/최대 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 performance | Governor 설정 |
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-info | C-states 및 거주 나열 |
sudo cpupower idle-set -d 3 | 특정 C-state 비활성화 |
sudo cpupower idle-set -e 3 | C-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/cpupower | GOVERNOR="performance" 설정 |
| TuneD | tuned 프로필을 통해 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 관련 도구
| 도구 | 역할 |
|---|
| cpupower | CPU 빈도/governor + 유휴 상태 제어 |
| tuned | 전체 시스템 프로필 (governor + 더 많음 설정) |
| numactl | NUMA CPU/메모리 바인딩 |
taskset | 프로세스의 CPU 친화성 |
turbostat | 상세한 코어당 freq/전력 텔레메트리 |
일관된 전체 시스템 접근을 위해 tuned가 governor를 관리하도록 하세요. 직접 코어당 제어 및 검사에는 cpupower를 사용하세요.
자료