Aller au contenu

cpupower - Contrôle de la fréquence CPU et du gouverneur

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

PlateformeCommande
Debian/Ubuntusudo apt install linux-cpupower
Fedora/RHELsudo dnf install kernel-tools
Arch Linuxsudo pacman -S cpupower
Vérifiercpupower --version

Inspection d’état

CommandeAffiche
cpupower frequency-infoGouverneur, fréquence actuelle/min/max, driver
cpupower -c all frequency-infoInfo pour tous les cœurs
cpupower idle-infoC-states disponibles et usage
cpupower monitorRé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

GouverneurComportement
performanceToujours exécuter à la fréquence maximale
powersavePréférer la fréquence la plus basse (ou min intel_pstate)
ondemandMonter rapidement sous charge
conservativeMonter progressivement
schedutilScaling piloté par l’ordonnanceur (défaut moderne)
userspaceFré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

CommandeEffet
sudo cpupower frequency-set -g performanceDéfinir le gouverneur
sudo cpupower frequency-set -d 2.0GHzDéfinir la fréquence minimale
sudo cpupower frequency-set -u 3.5GHzDé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 powersaveGouverneur 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.

CommandeEffet
cpupower idle-infoLister les C-states et la résidence
sudo cpupower idle-set -d 3Désactiver un C-state spécifique
sudo cpupower idle-set -e 3Activer un C-state
sudo cpupower idle-set -D 10Dé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éthodeComment
Service systemdsystemctl enable cpupower avec /etc/default/cpupower
/etc/default/cpupowerDéfinir GOVERNOR="performance"
TuneDLaisser tuned gérer le gouverneur via un profil
rc.local / unitExé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

OutilRôle
cpupowerContrôle fréquence/gouverneur CPU + état inactif
tunedProfils au niveau du système (définit le gouverneur + plus)
numactlLiaison CPU/mémoire NUMA
tasksetAffinité CPU pour un processus
turbostatTé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