Aller au contenu principal
Aller au contenu principal
← retour au blog

Tuned : optimiser automatiquement les performances de Linux par profil

Ajuster automatiquement les performances de son système selon l'usage sans bricoler ses sysctl à la main.

Régler manuellement les paramètres du noyau Linux pour adapter une machine à sa charge de travail peut vite devenir chronophage : gouverneur CPU, ordonnanceur d'E/S disque, gestion d'énergie PCIe (ASPM), paramètres mémoire (vm.dirty_ratio, swappiness)...

Sur les distributions dérivées de Red Hat (RHEL, Rocky, Alma, Fedora) mais aussi sous Debian et Ubuntu, Tuned est le démon de référence pour automatiser tout ça proprement grâce à des profils pré-calibrés.

Le principe en deux mots

Tuned tourne en tâche de fond comme service systemd (tuned.service). Au lieu d'écrire des scripts sysctl ou des règles udev à la main un peu partout, on applique simplement un profil adapté à ce que fait la machine. Tuned ajuste alors l'ensemble des paramètres noyau de façon cohérente.

Les profils intégrés les plus utiles

Tuned est livré avec plusieurs profils prêts à l'emploi :

Profil Usage typique Ce qu'il ajuste
balanced Postes de travail et serveurs généralistes Bon compromis entre réactivité et consommation électrique.
throughput-performance Serveurs de calcul, bases de données Gouverneur CPU en mode performance, augmentation des tampons réseau et I/O, économies d'énergie désactivées.
latency-performance Traitement temps réel, audio, faible latence Priorité à la latence minimale (désactivation des états C profonds du processeur).
powersave PC portables, petites machines au repos Fréquence CPU réduite, mise en veille agressive des périphériques inactifs (PCIe ASPM, disques).
virtual-guest Machines virtuelles (KVM/QEMU) Réduction du swappiness, ajustement des caches disque pour l'hyperviseur.
virtual-host Hyperviseurs (KVM, Proxmox) Augmentation des limites de mémoire partagée et files d'attente d'E/S.
accelerator-performance Calculs intensifs sur GPU Maintien du processeur et des bus PCIe à leur cadence maximale en continu.

Installation et prise en main

Sur Debian / Ubuntu :

sudo apt update
sudo apt install tuned
sudo systemctl enable --now tuned

Sur RHEL / Rocky Linux / Fedora :

sudo dnf install tuned
sudo systemctl enable --now tuned

Les commandes à connaître au quotidien

Tout se pilote avec la commande tuned-adm :

# Voir le profil actuellement actif
tuned-adm active

# Lister tous les profils disponibles
tuned-adm list

# Laisser Tuned analyser la machine et recommander le meilleur profil
tuned-adm recommend

# Appliquer un profil (ex: orienté débit pour un serveur de base de données)
sudo tuned-adm profile throughput-performance

# Revenir à la normale / désactiver le tuning
sudo tuned-adm off

Créer son propre profil sur mesure

Si un profil existant est presque parfait mais qu'il vous manque deux ou trois réglages spécifiques, pas besoin de repartir de zéro : Tuned gère l'héritage de profils.

On crée un dossier dans /etc/tuned/ avec un fichier tuned.conf :

Exemple pour /etc/tuned/mon-serveur-db/tuned.conf :

[main]
summary=Tuning maison pour serveur PostgreSQL
include=throughput-performance

[sysctl]
# On limite le recours au swap à 10%
vm.swappiness=10
# On augmente la file d'attente des connexions réseau
net.core.somaxconn=4096

[cpu]
# Forcer la fréquence max sur tous les cœurs
governor=performance
energy_perf_bias=performance

Pour l'activer :

sudo tuned-adm profile mon-serveur-db

Et pour ceux qui cherchent la vitesse brute ?

Sur un poste de dev ou de jeu où l'on veut des performances maximales sans rien configurer, des distributions comme CachyOS (basée sur Arch) intègrent déjà des noyaux optimisés (schedulers BORE / EEVDF / sched-ext) et des flags de compilation agressifs. Pour un serveur sous Debian ou Ubuntu, Tuned reste la solution la plus propre et la plus modulaire à mettre en place.

En résumé

  • Tuned évite d'éparpiller des réglages sysctl et scripts perso au quatre coins du système.
  • La commande tuned-adm recommend donne une excellente base de départ.
  • L'héritage via include=... permet de surcharger quelques paramètres sans réinventer la roue ;)