Depuis longtemps, c'est l'organe principal des ordinateurs. C'est lui qui effectue tous les calculs et donc lui qui consomme le plus. Différentes générations de processeurs se sont succédé mais certains principes pour l'économie d'énergie sont restés les mêmes.
Un des principes de base est d'abaisser la fréquence d'horloge du processeur ; mais attention, il ne faut le faire qu'au repos.
Installez le paquet
cpufrequtils de votre distribution.
Puis allez dans la configuration de votre noyau :
Code : Autre1
| Power management options ---> CPU Frequency scaling ---> |
Puis mettez en dur :
Code : Autre1
2
| <*> CPU frequency translation statistics
-*- 'ondemand' cpufreq policy governor |
Il faut ensuite sélectionner votre processeur dans le cadre en dessous dans ***
CPUFreq processor drivers ***, ce qui active la gestion d'énergie spécifique à votre processeur (voir plus bas).
Et si votre noyau est assez récent (2.6.24) :
Code : Autre1
| Default CPUFreq governor (ondemand) |
Ou sinon, lancez le service
cpufrequtils ou la commande :
Code : Console
Pour vérifier que votre processeur est bien en
ondemand (fréquence minimale à vide et fréquence maximale en pleine utilisation), tapez la commande suivante, vous devriez voir quelque chose du genre :
Code : Console | cpufreq-info
cpufrequtils 002: cpufreq-info (C) Dominik Brodowski 2004-2006
Report errors and bugs to linux@brodo.de, please.
analyzing CPU 0:
driver: powernow-k8
CPUs which need to switch frequency at the same time: 0 1
hardware limits: 1000 MHz - 2.30 GHz
available frequency steps: 2.30 GHz, 2.20 GHz, 2.00 GHz, 1.80 GHz, 1000 MHz
available cpufreq governors: powersave, ondemand, performance
current policy: frequency should be within 1000 MHz and 2.30 GHz.
The governor "ondemand" may decide which speed to use
within this range.
current CPU frequency is 1000 MHz (asserted by call to hardware).
analyzing CPU 1:
driver: powernow-k8
CPUs which need to switch frequency at the same time: 0 1
hardware limits: 1000 MHz - 2.30 GHz
available frequency steps: 2.30 GHz, 2.20 GHz, 2.00 GHz, 1.80 GHz, 1000 MHz
available cpufreq governors: powersave, ondemand, performance
current policy: frequency should be within 1000 MHz and 2.30 GHz.
The governor "ondemand" may decide which speed to use
within this range.
current CPU frequency is 1000 MHz (asserted by call to hardware). |
Ensuite, quelle que soit votre interface, il existe des outils pour voir en temps réel la fréquence de votre processeur tel que
kpowersave sous KDE.
C'est bien beau de mettre notre processeur en
ondemand, mais s'il est toujours utilisé alors qu'il est à vide, ça ne sert à rien, et Linux utilise des IRQ qui réveillent le processeur périodiquement, de 100 à 1000 fois par seconde. Depuis peu (la version 2.6.21 du noyau pour les versions 32 bits et 2.6.24 pour les version 64 bits), il existe un patch qui permet de réveiller le processeur uniquement en cas de besoin. Et le plus beau dans tout ça, c'est qu'il vous fera gagner en performances ; donc si vous avez au moins ce noyau, c'est par ici que ça ce passe :
Code : Autre1
| Processor type and features --> |
Puis mettre en dur :
Code : Autre1
| [*] Tickless System (Dynamic Ticks) |
Pour voir les IRQ et donc le nombre de fois où votre processeur se réveille chaque seconde, je vous invite à télécharger puis à utiliser le paquet
powertop, utilisable en console seulement.
Si vous avez bien suivi mes conseils, votre processeur à vide devrait être en dessous des 100 réveils par seconde. Sur un serveur, je suis à 79 par seconde.
Ensuite, il y a la gestion d'énergie spécifique à votre processeur, qui diminue les tensions en fonction de la fréquence, désactive les parties du processeur inutilisées, etc. Pour AMD, c'est la technologie
cool'and'quiet et chez Intel, c'est la technologie
speed step. Elle est très efficace dans la pratique, car cette méthode désactive les parties inutilisées et adapte le niveau de tension en fonction de la fréquence.