cpupower - Contrôle de la fréquence CPU et du gouverneur
cpupower inspecte et contrôle les sous-systèmes CPU frequency scaling (cpufreq) et idle-state (cpuidle) du noyau Linux. Il affiche à quelle vitesse chaque cœur s’exécute, vous permet de basculer le gouverneur de scaling (par ex. performance pour la vitesse maximale, powersave pour l’efficacité), d’épingler ou de borner les fréquences et d’inspecter/désactiver les deep C-states qui ajoutent une latence de réveil. C’est l’outil standard pour tirer une performance prévisible d’une machine ou économiser de l’énergie sur un ordinateur portable.
Installation
| Plateforme | Commande |
|---|
| Debian/Ubuntu | sudo apt install linux-cpupower |
| Fedora/RHEL | sudo dnf install kernel-tools |
| Arch Linux | sudo pacman -S cpupower |
| Vérifier | cpupower --version |
Inspection d’état
| Commande | Affiche |
|---|
cpupower frequency-info | Gouverneur, fréquence actuelle/min/max, driver |
cpupower -c all frequency-info | Info pour tous les cœurs |
cpupower idle-info | C-states disponibles et usage |
cpupower monitor | Résidence fréquence/idle par cœur en direct |
watch -n1 'cpupower -c all frequency-info -f' | Fréquences en direct |
# Quick look at the governor and current speed
cpupower frequency-info
Gouverneurs
| Gouverneur | Comportement |
|---|
performance | Toujours exécuter à la fréquence maximale |
powersave | Préférer la fréquence la plus basse (ou min intel_pstate) |
ondemand | Monter rapidement sous charge |
conservative | Monter progressivement |
schedutil | Scaling piloté par l’ordonnanceur (défaut moderne) |
userspace | Fréquence définie manuellement |
# See available governors
cpupower frequency-info -g
# Set the performance governor on all cores
sudo cpupower frequency-set -g performance
Définition de la fréquence
| Commande | Effet |
|---|
sudo cpupower frequency-set -g performance | Définir le gouverneur |
sudo cpupower frequency-set -d 2.0GHz | Définir la fréquence minimale |
sudo cpupower frequency-set -u 3.5GHz | Définir la fréquence maximale |
sudo cpupower frequency-set -f 3.0GHz | Épingler une fréquence fixe (gouverneur userspace) |
sudo cpupower -c 0-3 frequency-set -g powersave | Gouverneur par cœur |
États inactifs (C-states)
Les C-states profonds économisent l’énergie mais ajoutent une latence de réveil — un problème pour les charges de travail sensibles à la latence.
| Commande | Effet |
|---|
cpupower idle-info | Lister les C-states et la résidence |
sudo cpupower idle-set -d 3 | Désactiver un C-state spécifique |
sudo cpupower idle-set -e 3 | Activer un C-state |
sudo cpupower idle-set -D 10 | Désactiver les C-states avec latence > 10µs |
# Latency-critical: disable deep idle states for consistent wake-ups
sudo cpupower idle-set -D 5
Surveillance sous charge
# Watch how frequency and idle residency respond to a workload
cpupower monitor -i 1
Affiche la fréquence par cœur et le temps passé dans chaque C-state — utile pour confirmer qu’un changement de gouverneur a réellement pris effet.
Rendre les changements persistants
cpupower frequency-set n’est pas persistant entre les redémarrages. Options :
| Méthode | Comment |
|---|
| Service systemd | systemctl enable cpupower avec /etc/default/cpupower |
/etc/default/cpupower | Définir GOVERNOR="performance" |
| TuneD | Laisser tuned gérer le gouverneur via un profil |
| rc.local / unit | Exécuter la commande frequency-set au démarrage |
Flux de travail courants
# 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
cpupower vs outils associés
| Outil | Rôle |
|---|
| cpupower | Contrôle fréquence/gouverneur CPU + état inactif |
| tuned | Profils au niveau du système (définit le gouverneur + plus) |
| numactl | Liaison CPU/mémoire NUMA |
taskset | Affinité CPU pour un processus |
turbostat | Télémétrie fréquence/puissance détaillée par cœur |
Pour une approche cohérente au niveau du système, laisser tuned gérer les gouverneurs ; utilisez cpupower pour le contrôle et l’inspection directs par cœur.
Ressources