2.2. PowerTOP

Le lancement du nouveau noyau sans tic (de l'anglais, « tickless kernel ») dans Red Hat Enterprise Linux 6 (reportez-vous à la Section 3.4, « Noyau Tickless ») permet au CPU d'entrer en état inactif plus fréquemment, en réduisant la consommation d'éléctricité et en améliorant la gestion de l'alimentation. Le nouvel outil PowerTOP identifie les composants spécifiques des applications du noyau et de l'espace utilisateur qui réveillent fréquemment le CPU. PowerTOP était utilisé dans le développement afin de procéder à des audits décrits dans la Section 3.11, « Optimisations dans l'espace utilisateur » qui ont conduits des applications à être ajustées dans cette version, réduisant ainsi le nombre de réveils CPU non-nécessaires par un facteur 10.
Installez PowerTOP avec cette commande :
yum install powertop
Exécutez PowerTOP avec cette commande :
powertop
Remarquez que vous devrez exécuter PowerTOP avec des privilèges root afin de permettre à l'application de se rendre utile.
Lorsqu'il est exécuté, PowerTOP rassemble des statistiques du système et vous fournit la liste des composants qui envoient des réveils CPU le plus fréquemment. PowerTOP vous fait aussi des suggestions quant au paramétrage du système pour obtenir une consommation plus basse. Ces suggestions apparaissent au bas de l'écran, et vous spécifient une touche à saisir pour accepter la suggestion de PowerTOP. Comme PowerTOP se réactualise périodiquement, des suggestions supplémentaires apparaissent. Dans la Figure 2.1, « Opération de PowerTOP », remarquez la suggestion « increase the VM dirty writeback time », et la touche (W) sur laquelle appuyer pour accepter la suggestion.
Lorsqu'il est exécuté, PowerTOP collecte des statistiques du système et vous présente plusieurs listes d'informations importantes. Tout en haut figure la liste vous indiquant depuis combien de temps les coeurs de CPU ont été dans chaque états C et P disponible. Plus le CPU reste longtemps dans des états C ou P hauts (C4 étant plus haut que C3), mieux c'est ; de plus, cela indique aussi que le système est paramétré dans le but d'utiliser le CPU de manière plus efficace. L'idéal étant que le CPU soit à 90% ou plus dans l'état C ou P le plus haut lorsque le système est inactif.
Le deuxième élément est un sommaire des réveils par seconde sur la machine. Le nombre de réveils par seconde présent une mesure correcte de la manière dont les services ou périphériques et les pilotes du noyau s'exécutent en relation à la consommation de l'alimentation sur votre système. Plus il y a de réveils par secondes, plus l'énergie est consommée ; dans le cas présent, moins il y aura de réveils, meilleur ce sera.
Si disponible, PowerTOP offre une estimation de la consommation actuelle du système. Attendez-vous à ce que PowerTOP rapporte ce chiffre sur les ordinateurs portables lorsqu'ils sont en mode batterie.
Toute estimation disponible de la consommation de l'alimentation est suivie par une liste détaillée des composants qui envoient des réveils au CPU le plus fréquemment. En haut de la liste figurent les composants que vous devriez étudier de plus près afin d'optimiser votre système de manière à réduire la consommation. Si ceux-ci se révèlent être des composants du noyau, (ce qui est indiqué lorsque le composant se trouve dans <>), alors les réveils sont souvent associés au pilote spécifique qui les provoque. Paramétrer les pilotes requiert habituellement des modifications du noyau allant au-delà de la portée de ce document. Cependant, les processus de l'espace utilisateur qui envoient des réveils sont plus faciles à gérer. Commencez par identifier si ce service ou cette application doit réellement s'exécuter sur le système ou non. Si non, désactivez-le (ou désactivez-la). Pour désactiver un service de manière permanente, exécutez :
chkconfig nomduservice off
Si vous avez besoin de plus de détails sur la fonction exacte du le compo, exécutez :ant
ps -awux | grep nomducomposant 
strace -p idprocessus
Si le suivi à l'air de se répéter, vous avez probablement trouvé une attente active (de l'anglais, busy loop). Corriger ceci nécessiterait une modification du code du composant, ce qui, une fois de plus, se trouve au-delà de la portée de ce document.
Finalement, PowerTOP fait aussi des suggestions pour paramétrer le système de manière à réduire la consommation de l'alimentation. Ces suggestions apparaissent au bas de l'écran, ainsi qu'une touche sur laquelle appuyer afin d'accepter la suggestion de PowerTOP. Comme PowerTOP se réactualise de manière périodique, des suggestions supplémentaires apparaissent. Dans la Figure 2.1, « Opération de PowerTOP », remarquez la suggestion increase the VM dirty writeback time, ainsi que la touche (W) sur laquelle appuyer pour accepter la suggestion. Ces changements ne seront actifs que lors du prochain redémarrage. Pour vous aider à rendre ces changements permanents, PowerTOP affiche la commande exacte qu'il utilise pour effectuer cette optimisation. Ajoutez la commande à votre fichier /etc/rc.local à l'aide de votre éditeur de texte préféré afin que ce changement soit effectué à chaque fois que l'ordinateur est démarré.
Opération de PowerTOP

Figure 2.1. Opération de PowerTOP

Le site web Less Watts publie une liste d'applications que PowerTOP a identifié comme gardant les CPUs actifs. Reportez-vous à http://www.lesswatts.org/projects/powertop/known.php.