Définir le gouverneur CPU Linux sur Schedutil
Un guide rapide pour définir le gouverneur CPU Linux sur « schedutil » afin d'équilibrer performance et efficacité énergétique, y compris la persistance après redémarrage.
Le gouverneur schedutil est souvent le meilleur choix pour les noyaux modernes, car il utilise les données d’utilisation de l’ordonnanceur pour prendre des décisions de fréquence plus rapides et plus précises que les anciens gouverneurs comme ondemand.
Voici comment l’activer et le rendre persistant.
1. Installer les outils
Tout d’abord, assurez-vous d’avoir les outils nécessaires installés. Sur Ubuntu/Debian :
sudo apt update
sudo apt install linux-tools-common linux-tools-generic
2. Définir le gouverneur (immédiat)
Vous pouvez définir le gouverneur immédiatement pour la session en cours. Il est également recommandé de définir les limites de fréquence.
sudo cpupower frequency-set -g schedutil
# Optional: explicitly set limits if needed, though usually automatic
# sudo cpupower frequency-set -g powersave
# sudo cpupower frequency-set -g performance
Vérifier
Vérifiez si la stratégie a été appliquée :
cpupower frequency-info | grep "current policy" -A2
Vous devriez voir une sortie similaire à :
current policy: frequency should be within 1.20 GHz and 3.60 GHz.
The governor "schedutil" may decide which speed to use
Pour vérifier chaque CPU individuellement :
grep . /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
Tous les cœurs doivent indiquer schedutil.
3. Rendre persistant (Systemd)
Pour que ce paramètre persiste après un redémarrage, créez un service systemd simple.
Créez le fichier de service :
sudo tee /etc/systemd/system/cpupower-schedutil.service >/dev/null << 'EOF'
[Unit]
Description=Set CPU governor to schedutil
After=multi-user.target
[Service]
Type=oneshot
ExecStart=/usr/bin/cpupower frequency-set -g schedutil
[Install]
WantedBy=multi-user.target
EOF
Activez et démarrez le service :
sudo systemctl daemon-reload
sudo systemctl enable cpupower-schedutil.service
sudo systemctl start cpupower-schedutil.service
Après avoir démarré le service, exécutez à nouveau la commande de vérification pour confirmer qu’il fonctionne.
4. Nettoyage (optionnel)
Si vous aviez précédemment créé un service pour des performances élevées (par exemple, cpupower-performance.service), vous devriez le désactiver et le supprimer pour éviter les conflits.
sudo systemctl disable --now cpupower-performance.service
sudo rm /etc/systemd/system/cpupower-performance.service
sudo systemctl daemon-reload
Votre serveur est maintenant configuré pour utiliser schedutil automatiquement à chaque démarrage.