cpupower - Cheatsheet Controllo Frequenza della CPU e Governor
cpupower ispeziona e controlla i sottosistemi CPU frequency scaling (cpufreq) e idle-state (cpuidle) del kernel Linux. Mostra a quale velocità gira ogni core, ti permette di cambiare il governor di scaling (ad es. performance per la massima velocità, powersave per l”efficienza), fissa o limita le frequenze e ispeziona/disabilita gli stati C profondi che aggiungono latenza di riattivazione. È lo strumento standard per estrarre prestazioni prevedibili da una macchina o risparmiare energia su un laptop.
Installazione
| Piattaforma | Comando |
|---|
| Debian/Ubuntu | sudo apt install linux-cpupower |
| Fedora/RHEL | sudo dnf install kernel-tools |
| Arch Linux | sudo pacman -S cpupower |
| Verifica | cpupower --version |
Ispezionare lo Stato
| Comando | Mostra |
|---|
cpupower frequency-info | Governor, frequenza corrente/min/max, driver |
cpupower -c all frequency-info | Info per tutti i core |
cpupower idle-info | C-state disponibili e utilizzo |
cpupower monitor | Residenza di frequenza/idle live per core |
watch -n1 'cpupower -c all frequency-info -f' | Frequenze live |
# Uno sguardo veloce al governor e alla velocità attuale
cpupower frequency-info
Governor
| Governor | Comportamento |
|---|
performance | Esegui sempre alla massima frequenza |
powersave | Preferisci la frequenza più bassa (o min di intel_pstate) |
ondemand | Aumenta di scala rapidamente sotto carico |
conservative | Aumenta di scala gradualmente |
schedutil | Scaling guidato dallo scheduler (predefinito moderno) |
userspace | Frequenza impostata manualmente |
# Vedi i governor disponibili
cpupower frequency-info -g
# Imposta il governor performance su tutti i core
sudo cpupower frequency-set -g performance
Impostazione Frequenza
| Comando | Effetto |
|---|
sudo cpupower frequency-set -g performance | Imposta il governor |
sudo cpupower frequency-set -d 2.0GHz | Imposta la frequenza minima |
sudo cpupower frequency-set -u 3.5GHz | Imposta la frequenza massima |
sudo cpupower frequency-set -f 3.0GHz | Fissa una frequenza (gov userspace) |
sudo cpupower -c 0-3 frequency-set -g powersave | Governor per core |
Stati Idle (C-state)
Gli stati C profondi risparmiano potenza ma aggiungono latenza di riattivazione — un problema per i carichi di lavoro sensibili alla latenza.
| Comando | Effetto |
|---|
cpupower idle-info | Elenca i C-state e la residenza |
sudo cpupower idle-set -d 3 | Disabilita uno specifico C-state |
sudo cpupower idle-set -e 3 | Abilita uno C-state |
sudo cpupower idle-set -D 10 | Disabilita i C-state con latenza > 10µs |
# Critico per la latenza: disabilita gli stati idle profondi per riattivazioni coerenti
sudo cpupower idle-set -D 5
Monitoraggio Sotto Carico
# Guarda come la frequenza e la residenza idle rispondono a un carico di lavoro
cpupower monitor -i 1
Mostra la frequenza per core e il tempo trascorso in ogni C-state — utile per confermare che un cambio di governor ha effettivamente avuto effetto.
Rendere Persistenti i Cambiamenti
cpupower frequency-set non è persistente tra i riavvii. Opzioni:
| Metodo | Come |
|---|
| servizio systemd | systemctl enable cpupower con /etc/default/cpupower |
/etc/default/cpupower | Imposta GOVERNOR="performance" |
| TuneD | Lascia che tuned gestisca il governor tramite un profilo |
| rc.local / unit | Esegui il comando frequency-set all”avvio |
Flussi di Lavoro Comuni
# Box di benchmark: blocca le prestazioni per numeri riproducibili
sudo cpupower frequency-set -g performance
cpupower frequency-info -f -c all # verifica
# Laptop: risparmia batteria
sudo cpupower frequency-set -g powersave
# Accordatura della latenza: governor performance + idle poco profondo
sudo cpupower frequency-set -g performance
sudo cpupower idle-set -D 5
cpupower vs Strumenti Correlati
| Strumento | Ruolo |
|---|
| cpupower | Controllo della frequenza della CPU/governor + stato idle |
| tuned | Profili a livello di sistema intero (imposta governor + altri) |
| numactl | Binding della CPU/memoria NUMA |
taskset | Affinità della CPU per un processo |
turbostat | Telemetria della frequenza/potenza per core dettagliata |
Per un approccio coerente a livello di sistema, lascia che tuned gestisca i governor; usa cpupower per il controllo e l”ispezionamento diretti per core.
Risorse