Passer au contenu

La gestion intelligente des modes de fonctionnement du CPU sur Linux

Les différents outils existants pour contrôler 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 peut 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 fournit 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 le 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'interface graphique
cpufreqctl En ligne de commande
cpufreq-indicator Fournit une icône 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épartit 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ésactiver 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 intelligents 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 aperçu de ce qui est recommandé
--live applique les recommandations
--install installe l'outil en tant que démon et donc il démarrera au démarrage de la machine également

Si 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 naître.

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

Dans tous les cas contribuez si le projet vous plaît et que vous en avez les compétences.



juniko
4 min