cpupower - CPU Frequency & Governor Control Cheatsheet
cpupower inspektiert und steuert des Linux-Kernels CPU-Frequenzskalierung (cpufreq) und Leerlaufzustand (cpuidle) Subsysteme. Es zeigt, in welcher Geschwindigkeit jeder Kern läuft, lässt dich den Skalierungs- Governor wechseln (z.B. performance für max Geschwindigkeit, powersave für Effizienz), Frequenzen pinnen oder begrenzen, und inspektiert/deaktiviert tiefe C-States, die Wake-Up-Latenz hinzufügen. Es ist das Standard-Werkzeug zum Quetschen von vorhersehbarer Leistung aus einer Maschine oder zum Sparen von Energie auf einem Laptop.
Installation
| Platform | Command |
|---|
| Debian/Ubuntu | sudo apt install linux-cpupower |
| Fedora/RHEL | sudo dnf install kernel-tools |
| Arch Linux | sudo pacman -S cpupower |
| Verify | cpupower --version |
Inspecting State
| Command | Zeigt |
|---|
cpupower frequency-info | Governor, Aktuelle/Min/Max Frequenz, Treiber |
cpupower -c all frequency-info | Info für alle Kerne |
cpupower idle-info | Verfügbare C-States und Nutzung |
cpupower monitor | Live Pro-Kern Frequenz/Idle Residency |
watch -n1 'cpupower -c all frequency-info -f' | Live Frequenzen |
# Quick look at the governor and current speed
cpupower frequency-info
Governors
| Governor | Verhalten |
|---|
performance | Laufe immer auf maximaler Frequenz |
powersave | Bevorzuge minimale Frequenz (oder Intel_pstate Min) |
ondemand | Skaliere schnell unter Last |
conservative | Skaliere allmählich |
schedutil | Scheduler-gesteuerte Skalierung (moderner Standard) |
userspace | Frequenz setzen manuell |
# See available governors
cpupower frequency-info -g
# Set the performance governor on all cores
sudo cpupower frequency-set -g performance
Setting Frequency
| Command | Effekt |
|---|
sudo cpupower frequency-set -g performance | Setze Governor |
sudo cpupower frequency-set -d 2.0GHz | Setze minimale Frequenz |
sudo cpupower frequency-set -u 3.5GHz | Setze maximale Frequenz |
sudo cpupower frequency-set -f 3.0GHz | Pinne eine feste Frequenz (Userspace Gov) |
sudo cpupower -c 0-3 frequency-set -g powersave | Pro-Kern Governor |
Idle States (C-states)
Tiefe C-States sparen Energie, aber fügen Wake-Up-Latenz hinzu — ein Problem für Latenz-sensitive Workloads.
| Command | Effekt |
|---|
cpupower idle-info | List C-States und Residency |
sudo cpupower idle-set -d 3 | Deaktiviere einen spezifischen C-State |
sudo cpupower idle-set -e 3 | Aktiviere einen C-State |
sudo cpupower idle-set -D 10 | Deaktiviere C-States mit Latenz > 10µs |
# Latency-critical: disable deep idle states for consistent wake-ups
sudo cpupower idle-set -D 5
Monitoring Under Load
# Watch how frequency and idle residency respond to a workload
cpupower monitor -i 1
Zeigt Pro-Kern Frequenz und Zeit in jedem C-State — nützlich, um zu bestätigen, dass eine Governor-Änderung tatsächlich wirksam wurde.
Making Changes Persist
cpupower frequency-set ist nicht über Reboots hinweg persistent. Optionen:
| Method | How |
|---|
| systemd service | systemctl enable cpupower mit /etc/default/cpupower |
/etc/default/cpupower | Setze GOVERNOR="performance" |
| TuneD | Lass tuned den Governor über ein Profil verwalten |
| rc.local / unit | Führe den frequency-set-Befehl beim Boot aus |
Common Workflows
# Benchmark box: lock to performance for reproducible numbers
sudo cpupower frequency-set -g performance
cpupower frequency-info -f -c all # verify
# Laptop: save battery
sudo cpupower frequency-set -g powersave
# Latency tuning: performance governor + shallow idle
sudo cpupower frequency-set -g performance
sudo cpupower idle-set -D 5
| Tool | Rolle |
|---|
| cpupower | CPU Frequenz/Governor + Idle-State Kontrolle |
| tuned | Ganzsystem-Profile (setzt Governor + mehr) |
| numactl | NUMA CPU/Speicher Binding |
taskset | CPU Affinity für einen Prozess |
turbostat | Detaillierte Pro-Kern Frequenz/Kraft Telemetrie |
Für einen kohärenten Ganzsystem-Ansatz, lass tuned Governoren verwalten; verwende cpupower für direkte, Pro-Kern Kontrolle und Inspektierung.
Resources