La gestion inteligente des modes de fonctionnement du CPU sur Linux

Les différents outils existants pour controller et automatiser la gestion des performances
Tout d'abord sachez qu'il est possible de configurer facilement les modes de fonctionnement du processeur sur Linux.

Par exemple j'ai un petit laptop avec un i3 sur Ubuntu.
Le noyau Linux inclut un module cpufreq, c'est celui-ci qui interagit, je pense, avec le driver du processeur. Et ce petit module on peut le contrôler, pour cela il existe plusieurs solutions. Je précise que les outils que je vais citer ne s'occupent que du processeur à part TLP qui peux faire plus en s'occupant des disques, bus pci, usb, etc.

indicator-cpu-freq  (daté)

voir la doc Ubuntu (https://doc.ubuntu-fr.org/indicator-cpufreq)
voir le dépôt source du projet (https://launchpad.net/indicator-cpufreq)

Si vous allez voir le dépôt du projet vous verrez qu'il est mort, bien que toujours fonctionnel mais non sans bogues, il fourni une icône de notification (ne fonctionne pas avec Wayland). Dans mon cas il permet deux choses un mode performance et un mode économie.

Pour installer :  sudo apt install indicator-cpu  ou cliquez ici apt://indicator-cpufreq


cpufreq  (projet récent)

voir de dépôt source (https://github.com/konkor/cpufreq)

Ce projet est né d'un financement participatif, est opensourcé et sous licence GPLv3.

cpufreq
Il permet d'avoir un aperçu de la configuration actuelle et de définir le mode de fonctionnement manuellement.

il propose plusieurs interfaces :
cpufreq-application     Pour lancer l'inerface graphique
cpufreqctl                      En ligne de commande
cpufreq-indicator         Fourni une icone de notification
cpufreq-preferences    Ouvre les préférences de l'application
cpufreq-service             Fonctionne en tant que service
Je ne vais pas détailler chaque élément mais sachez que pour utiliser cet outil il y a une prérogative pour en profiter pleinement.
Il faut désinstaller le paquet irq-balance : sudo apt purge irq-balance et redémarrer.
Ce paquet est présent par défaut car utile en environnement serveur. Il réparti la charge équitablement entre les cœurs et empêche la configuration complète. https://github.com/konkor/cpufreq/issues/48
L'intérêt de cet outil est qu'il vous permet de définir des profils assez précis de consommation et performance par rapport au processeur.

TLP

voir la doc Ubuntu (https://doc.ubuntu-fr.org/tlp)
voir la doc complète en anglais (https://linrunner.de/en/tlp/docs/tlp-configuration.html)

Je ne vais pas le présenter car je ne l'ai pas assez utilisé, mais c'est une solution qui existe.

Sachez qu'il existe une possibilité de combiner TLP avec les autres outils cités de cet article :
https://askubuntu.com/questions/556894/tlp-dont-change-cpu-frequency

En gros il faut déactiver les gestions du processeur de TLP.


Et maintenant le sujet du jour !
auto-cpufreq

voir le dépôt source (https://github.com/AdnanHodzic/auto-cpufreq)

Cet outil va rendre intelligent les modes de consommation du processeur. Il est destiné à remplacer les outils cités précédemment (sauf TLP qui nécessite une configuration particulière dans ce cas voir section TLP de cet article).

Pour l'installer très simple en utilisant le snap store

sudo snap install auto-cpufreq

ou alors vous pouvez l'installer avec les sources

git clone https://github.com/AdnanHodzic/auto-cpufreq.git
cd auto-cpufreq && sudo ./auto-cpufreq-installer


Utilisations
Usage: auto-cpufreq [OPTIONS]

Options:
  --monitor             Monitor and suggest CPU optimizations
  --live                Monitor and make suggested CPU optimizations
  --install / --remove  Install/remove daemon for automatic CPU optimizations
  --log                 View live CPU optimization log made by daemon
  --help                Show this message and exit.

--monitor vous permet d'avoir un apperçu de ce qui est recommandé
-- live applique les recommandations
-- install  install l'outil en tant que démon et donc il démarera au démarrage de la machine également
 vous voulez appeler le script en tant que démon il existe aussi auto-cpufreq --daemon

Vous pouvez voir ce que fait exactement l'outil en lisant le code source ici
https://github.com/AdnanHodzic/auto-cpufreq/blob/master/source/core.py

J'ai pu voir une fonction qui agit sur le Bluetooth également en empêchant son activation automatique, mais elle ne s'active pas sur la version snap.

Autrement il n'y a pas de fichier de configuration, cet outil est plutôt un "run and forget".
Mais l'auteur est intéressé par cette fonctionnalité : https://github.com/AdnanHodzic/auto-cpufreq/issues/26
N'hésitez pas à contribuer si vous voulez voir cette fonction naitre.

Cet outil ne supporte pas les processeurs AMD.
https://github.com/AdnanHodzic/auto-cpufreq/issues/17

Dans tout les cas contribuez si le projet vous plait et que vous en avez les compétences.



 

mercredi 27 mai 2020