Zum Inhalt springen

cpupower - CPU Frequency & Governor Control Cheatsheet

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

PlatformCommand
Debian/Ubuntusudo apt install linux-cpupower
Fedora/RHELsudo dnf install kernel-tools
Arch Linuxsudo pacman -S cpupower
Verifycpupower --version

Inspecting State

CommandZeigt
cpupower frequency-infoGovernor, Aktuelle/Min/Max Frequenz, Treiber
cpupower -c all frequency-infoInfo für alle Kerne
cpupower idle-infoVerfügbare C-States und Nutzung
cpupower monitorLive 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

GovernorVerhalten
performanceLaufe immer auf maximaler Frequenz
powersaveBevorzuge minimale Frequenz (oder Intel_pstate Min)
ondemandSkaliere schnell unter Last
conservativeSkaliere allmählich
schedutilScheduler-gesteuerte Skalierung (moderner Standard)
userspaceFrequenz setzen manuell
# See available governors
cpupower frequency-info -g

# Set the performance governor on all cores
sudo cpupower frequency-set -g performance

Setting Frequency

CommandEffekt
sudo cpupower frequency-set -g performanceSetze Governor
sudo cpupower frequency-set -d 2.0GHzSetze minimale Frequenz
sudo cpupower frequency-set -u 3.5GHzSetze maximale Frequenz
sudo cpupower frequency-set -f 3.0GHzPinne eine feste Frequenz (Userspace Gov)
sudo cpupower -c 0-3 frequency-set -g powersavePro-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.

CommandEffekt
cpupower idle-infoList C-States und Residency
sudo cpupower idle-set -d 3Deaktiviere einen spezifischen C-State
sudo cpupower idle-set -e 3Aktiviere einen C-State
sudo cpupower idle-set -D 10Deaktiviere 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:

MethodHow
systemd servicesystemctl enable cpupower mit /etc/default/cpupower
/etc/default/cpupowerSetze GOVERNOR="performance"
TuneDLass tuned den Governor über ein Profil verwalten
rc.local / unitFü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
ToolRolle
cpupowerCPU Frequenz/Governor + Idle-State Kontrolle
tunedGanzsystem-Profile (setzt Governor + mehr)
numactlNUMA CPU/Speicher Binding
tasksetCPU Affinity für einen Prozess
turbostatDetaillierte 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