Généralités
Cpufrequtils est un outil en ligne de commande permettant d’ajuster la fréquence du processeur en fonction des besoins (mise à l’échelle de la vitesse CPU). Il fournit deux utilitaires destinés à inspecter et configurer la fréquence via les interfaces du noyau CPUFreq, accessibles à travers sysfs et procfs.
Une fois installé, le paquet cpufrequtils vous donne accès à deux commandes :
cpufreq-info : vous permet d’afficher l’état actuel du CPU.
cpufreq-set : vous permet de changer la fréquence et/ou de mode gouverneur.
Installation
Il suffit d’installer le paquet.
apt install cpufrequtils
Les dossiers et fichiers de configuration
Nous allons créer 3 fichiers.
/etc/init.d/cpugov.sh
/etc/init.d/cpufreq.sh
/etc/systemd/system/cpufreq.service
Configuration
Il y à cinq modes de modulation de la fréquence CPU (conservative, ondemand, performance, powersave et userspace) que l’on appelle gouverneurs.Ils permêttent de changer la fréquence du CPU selon la charge d’utilisation.
Voyont les différents gouverneurs en détails :
userspace : Utilise la frequence prédéfinie par l’utilisateur
powersave : Utilise la fréquence minimum du CPU
performance : Utilise la fréquence maximum du CPU
ondemand : Utilise la fréquence minimale puis augmente au maximum dès que la charge processeur atteint 100% de la fréquence minimale
conservative : Utilise le même principe que « ondemand » mais augmente progressivement par l’utilisation de fréquence intermédiaire avant de tourner au maximum
Fixons maintenant les performances permanentes du processeur au maximum, en créant un nouveau fichier /etc/init.d/cpugov.sh.
nano /etc/init.d/cpugov.sh
Et ajouter le script ci-dessous dedans. Modifiez les paramètres en fonction de votre processeur !
Exemple avec un processeur Intel C2750 (Fréquence : 2.4 GHz / 2.6 GHz – Nombre de threads : 8)
#!/bin/bash
cpufreq-set --cpu 0 --governor performance
cpufreq-set --cpu 1 --governor performance
cpufreq-set --cpu 2 --governor performance
cpufreq-set --cpu 3 --governor performance
cpufreq-set --cpu 4 --governor performance
cpufreq-set --cpu 5 --governor performance
cpufreq-set --cpu 6 --governor performance
cpufreq-set --cpu 7 --governor performance
cpufreq-set -u 2.40GHz
cpufreq-set -d 2.40GHz
cpufreq-set -r -g performance
Rendez le script exécutable.
chmod +x /etc/init.d/cpugov.sh
Nous allons créer maintenent le second fichier /etc/init.d/cpufreq.sh.
nano /etc/init.d/cpufreq.sh
Et ajouter le script ci-dessous dedans.
#!/bin/sh -e
/bin/sh /etc/init.d/cpugov.sh || exit 1
exit 0
Rendez le script exécutable.
chmod +x /etc/init.d/cpufreq.sh
Pour finir nous allons créer un service pour executer le script cpufreq.sh au démarrage du système.
Créer un nouveau fichier nommé /etc/systemd/system/cpufreq.service.
nano /etc/systemd/system/cpufreq.service
Et ajouter le script ci-dessous dedans.
[Unit]
Description=/etc/init.d/cpufreq.sh
ConditionPathExists=/etc/init.d/cpufreq.sh
[Service]
Type=forking
ExecStart=/etc/init.d/cpufreq.sh
TimeoutSec=0
StandardOutput=tty
RemainAfterExit=yes
SysVStartPriority=99
[Install]
WantedBy=multi-user.target
Notifier systemd qu’un nouveau fichier cpufreq.service existe en exécutant la commande suivante.
systemctl daemon-reload
Pour que le service soit lancé au démarrage du système.
systemctl enable cpufreq.service
Et pour démarrer le service.
systemctl start cpufreq.service
Commandes de base
Mettre le processeur sur le mode ondemand.
cpufreq-set --governor ondemand
Mettre le deuxième coeur sur le mode performance.
cpufreq-set --cpu 1 --governor performance
Mettre le premier coeur sur le mode performance avec une fréquence minimale de 2,40GHz.
cpufreq-set --cpu 0 --governor performance -d 2.40GHz
Mettre le premier coeur sur le mode performance avec une fréquence maximale de 2,40GHz
cpufreq-set --cpu 0 --governor performance -u 2.40GHz
Mettre tous les coeurs sur le mode powersave avec une fréquence maximale de 1,80GHz
cpufreq-set -r --governor powersave -u 1.80GHz
Tests
Tapez la commande cpufreq-info.
cpufreq-info
Vous pouvez voir les différentes fréquences possibles ainsi que les modes gouverneurs supportés.
Plage de fréquence : 2.40 GHz, 2.40 GHz, 2.30 GHz, 2.20 GHz, 2.10 GHz, 2.00 GHz, 1.90 GHz, 1.80 GHz, 1.70 GHz, 1.60 GHz, 1.50 GHz, 1.40 GHz, 1.30 GHz, 1.20 GHz
Régulateurs disponibles : userspace, powersave, conservative, ondemand, performance, schedutil
Et ces deux lignes nous indique la configuration actuel.
Le régulateur « performance » est libre de choisir la vitesse.
la fréquence actuelle de ce CPU est 2.40 GHz.