Aller au menu - Aller au contenu

[Plan du site] Vous êtes ici --- > Le Site du Zéro > Les tutoriels > Non-Officiels > Systèmes d'exploitation > Linux > La gestion d'énergie sous Linux > Lecture du tutoriel

La gestion d'énergie sous Linux

Vous vous apprêtez à lire un tutoriel rédigé par un membre de ce site. Malgré tout le soin que ce membre a pu apporter au tutoriel, nous ne pouvons pas garantir que les informations contenues sur cette page sont exactes à 100%. Merci de garder cela en tête lorsque vous lirez cette page ;o)
Avatar
Auteur : alpha_one_x86
Note : 10 / 20 (3 votes)
Visualisations : 4 583

Plus d'informations Plus d'informations
Je vais vous parler de la gestion d'énergie sous Linux. Pourquoi ? Pour protéger l'environnement ! Mince, ça ne vous a pas convaincus ? Ça peut aussi servir à : réduire le bruit de votre ordinateur, le transformer en ordinateur silencieux, réduire votre facture d'électricité, augmenter vos performances (dans certains cas) ou plus simplement allonger la durée de vie de votre matériel en réduisant la température de ses composants.
Sommaire du tutoriel :
Icône du chapitre

Préparer le terrain

Tout d'abord, commençons par nous demander ce qui consomme le plus. Pour voir cela, il suffit d'ouvrir notre ordinateur et de trouver tous les composants qui dégagent de la chaleur et qui ont peut-être un ventilateur en plus.
Pour tous les ordinateurs, ce qui consomme beaucoup c'est le processeur. Ensuite on peut penser à la carte graphique, puis au chipset, et enfin aux autres éléments composant l'ordinateur.

Pour commencer, il vous faut : une distribution Linux, le noyau Linux (et savoir le compiler : référez-vous à Google pour savoir comment procéder, je vous conseille ce lien qui est particulièrement bien fait: http://www.lea-linux.org/cached/index/Kernel-kernel.html), les utilitaires pour votre carte graphique, et les utilitaires hdparm, lm_sensors et powertop.
Par exemple, sous Windows en idle, un processeur AMD-BE2300 consomme 22 W et sous Linux après optimisation, il ne consomme que 4 W, consommation de configuration moyenne à vide sous Linux 30 W contre 90 W sous Windows.
Bien sûr, si vous pouvez optimiser le matériel, faites-le, mais puisque c'est long et coûteux, je me restreindrai aux modifications logicielles.
Je tiens à signaler que toutes ces manipulations n'affecteront en rien vos performances.

Le processeur

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ées 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 : Autre
1
Power management options  ---> CPU Frequency scaling  --->

Puis mettez en dur :
Code : Autre
1
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 : Autre
1
Default CPUFreq governor (ondemand)

Ou sinon, lancez le service cpufrequtils ou la commande :
Code : Console
cpufreq-set -g ondemand


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 : Autre
1
Processor type and features -->

Puis mettre en dur :
Code : Autre
1
[*] 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.

La carte graphique

Comme bien sûr il existe une multitude de cartes graphiques et que, hélas, il n'existe pas une seule méthode commune, je ne vais vous décrire que le principe.
Chaque carte graphique récente a une gestion des fréquences et un utilitaire associé. Je vous invite donc à abaisser automatiquement la fréquence de votre carte graphique en 2D, donc sur votre bureau, car c'est à ce moment-là que vous l'utiliserez le moins. Même si la question se pose pour les utilisateurs de Vista...

Pour les GeForce, installez le driver propriétaire. Vous aurez l'utilitaire graphique, il vous suffira seulement d'ajouter une option à votre xorg.conf :
Code : Autre
1
Option         "Coolbits" "1"


Pour les ATI, il existe un petit utilitaire en console qui permet aussi de changer les fréquences.

Contentez-vous de diminuer vos fréquences, ne les augmentez pas sous risque d'endommager votre matériel.

Le chipset

Dans le chipset, on trouve tous les périphériques internes de la carte mère.
Nous allons commencer par nous occuper du timer, l'horloge interne du système. Ces nouvelles méthodes, plus performantes, permettent un découpage du temps plus fin et par là même une diminution de la consommation et une meilleure réactivité du système.
Voici les options à changer ; dans Processor type and features, mettez-les en dur si votre noyau le permet :
Code : Autre
1
[*] High Resolution Timer Support

Dans Device Drivers ---> Character devices :
Code : Autre
1
2
3
[*] HPET - High Precision Event Timer
[*]   HPET Control RTC IRQ
[*]   Allow mmap of HPET


Ensuite, votre carte son peut sûrement se mettre aussi en veille, voir dans Device Drivers ---> Sound ---> Advanced Linux Sound Architecture --> PCI devices. Ici, j'ai choisi la mise en veille après 120 secondes :
Code : Autre
1
2
3
4
5
[*] Aggressive power-saving on HD-audio
(120) Default time-out for HD-audio power-save mode
...
[*] AC97 Power-Saving Mode
(120)   Default time-out for AC97 power-save mode

Attention : sur certaines cartes son, j'ai remarqué des craquements à l'entrée et à la mise en veille de celles-ci.

Même sort pour l'USB ; allons dans Device Drivers ---> USB support :
Code : Autre
1
[*]     USB selective suspend/resume and wakeup

Autres

Donc, si vous savez compiler votre noyau, je n'ai rien à vous apprendre mais un petit rappel ne fait pas de mal. Mettez en dur la prise en charge de votre matériel, désactivez les options que vous comprenez et que vous n'utiliserez jamais ; de plus, mettez en modules les options que vous utiliserez occasionnellement. N'oubliez pas vos périphériques I2C pour vos capteurs de température.

Ensuite, si votre disque dur n'est pas utilisé, coupez-le (ici après 10 minutes) avec cette commande à lancer au démarrage :
Code : Autre
1
hdparm -S 120 /dev/sdX

Pour certaines distributions, il existe le service hdparm qui permet d'utiliser l'utilitaire hdparm, pour faire ce réglage automatiquement.

Arrêtez les services que vous n'utilisez pas, vous gagnerez en performances et donc, vous consommerez moins. Idem pour les applications que vous utilisez souvent : essayez de les optimiser ou de trouver des équivalents légers, le tout sera plus réactif et consommera moins.
Utilisez le boot pxe pour regrouper vos disques durs, cela fait une gestion plus simple et une consommation centralisée, donc optimisée. Le boot pxe sous Linux sera peut-être le sujet de mon prochain tutoriel. Cela demande une infrastructure et des connaissances particulières.

Ensuite dans votre BIOS, activez aussi la gestion d'énergie, la gestion de ventilation du processeur, désactivez les périphériques de réveil (qui sont allumés pour que vous puissiez allumer votre ordinateur par d'autres moyens que l'utilisation du bouton on / off) : on voit rarement quelqu'un allumer son ordinateur par le réseau, le modem, ou l'USB.

Les écrans consomment énormément, surtout les écrans cathodiques, mais ce que je vais vous dire est aussi valable pour les écrans à LED. Augmentez vos contrastes et baissez votre luminosité pour que ce soit confortable, mais le moins lumineux possible.

Vous pouvez ensuite éteindre l'écran ou mettre votre ordinateur en veille, voire en hibernation, au bout d'une certaine période d'inactivité.

Grâce à ce tutoriel, vous avez tous les outils en mains pour consommer moins. Alors sauvez des arbres, et pour les amateurs de tuning, amusez-vous bien avec vos nouveaux ordinateurs basse consommation !

Conseils au sujet du matériel


Retour en haut Retour en haut


Créé : le 15/02/2008 à 21:16:05
Modifié : le 22/08/2008 à 16:06:34
Avancement : 100%
Licence : Copie non autorisée

Changer de design | En savoir plus | Plan du site | Politique d'accessibilité | Règles | RSS tutoriels | RSS news
Édité par Simple IT SARL : Nous contacter | Notre blog | Revue de presse | Publicité

Y'a plus rien à lire, faut remonter maintenant !

Hébergement web - Correction de tutoriels - Créer un site
Vous souhaitez apparaître ici ? Contactez-nous.

Nombre de connectés 246 Zéros connectés | Requêtes SQL 9 requêtes | Temps de génération de la page : Total (SQL) 0.041s (0.0277s)