Cpu-frequtils
Optimiser son serveur Debian 9 avec Cpu-frequtils
Généralités
Installation
Les dossiers et fichiers de configuration
Configuration
Commandes de base
Tests
Cpufrequtils permettent de modifier selon ses besoins la vitesse du processeur (aussi connu sous le nom de mise à l'échelle de la vitesse du CPU), c'est un outil en ligne de commande. Il contient deux utilitaires pour inspecter et configurer la fréquence du processeur via les interfaces noyau sysfs et procfs de CPUFreq.
Une fois installé, le paquet cpufrequtils vous donne accès à deux commandes :
La commande "cpufreq-info" vous permet d'afficher l'état actuel du CPU.
La commande "cpufreq-set" vous permet de changer la fréquence et/ou de mode gouverneur.
Il suffit d'installer le paquet.
apt install cpufrequtils
Nous allons créer 3 fichiers.
/etc/init.d/cpugov.sh
/etc/init.d/cpufreq.sh
/etc/systemd/system/cpufreq.service
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
Tapez la commande cpufreq-info.
cpufreq-info
Vous devriez voir quelque chose comme ça (exemple le cpu7).
Vous pouvez voir que ces lignes nous montres 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.