Optimisation des performances avec tuned
Table des matières
Tuned est un outil de gestion de performance pour les systèmes Linux, conçu pour optimiser les performances. Il permet d'ajuster les paramètres du système en temps réel, en appliquant des profils prédéfinis ou personnalisés.
Tuned est installé et activé par défaut sur certaines distributions Linux comme RHEL par exemple. Si tel n'est pas le cas :
Fedora, RHEL et dérivées :
Debian, Ubuntu et dérivées :
Une fois tuned installé, il fonctionne avec un service, qu'il sera nécessaire de démarrer et d'activer :
Pour vérifier le fonctionnement de tuned et le profil actif :
Par exemple :
Pour lister les profils disponibles :
tuned propose plusieurs profils optimisés pour différents scénarios, parmis ceux listés sur ma RHEL 8 :
- accelerator-performance : Optimisation des performances axée sur le débit avec désactivation des états STOP à latence plus élevée.
- aws : Optimisation pour les instances AWS EC2.
- balanced : Profil général non spécialisé.
- desktop : Optimisation pour un usage de bureau.
- epyc-eda : Optimisation pour les charges de travail de calcul EDA sur les processeurs AMD EPYC.
- hpc-compute : Optimisation pour les charges de travail de calcul HPC (High Performance Computing).
- intel-sst : Configuration pour la fréquence de base Intel Speed Select.
- latency-performance : Optimisation pour des performances déterministes au prix d'une consommation d'énergie accrue.
- network-latency : Optimisation pour des performances déterministes au prix d'une consommation d'énergie accrue, axée sur des performances réseau à faible latence.
- network-throughput : Optimisation pour le débit réseau en streaming, généralement nécessaire uniquement sur les anciens processeurs ou les réseaux 40G+.
- optimize-serial-console : Optimisation pour l'utilisation de la console série.
- powersave : Optimisation pour une faible consommation d'énergie.
- throughput-performance : Réglage largement applicable qui offre d'excellentes performances sur une variété de charges de travail serveur courantes.
- virtual-guest : Optimisation pour l'exécution à l'intérieur d'un invité virtuel.
- virtual-host : Optimisation pour l'exécution d'invités KVM.
Pour changer de profil, suivant notre usage de la machine :
Par exemple, pour passer au profil "throughput-performance", utilisez :
Les profils par défaut sont situés dans /usr/lib/tuned
Les profils personnalisés doivent être dans /etc/tuned/profiles (si le dossier profiles n'existe pas, directement dans /etc/tuned )
Pour créer des profils personnalisés, on créra un dossier avec comme nom le profil :
On paramètre le tout dans un fichier tuned.conf :
Voici un exemple de config :
Le profil est disponible directement, et il est activable avec les commandes vues précédemment :
On peut constater que les paramètres sont appliqués dans la foulée. Vérifier avec par exemple :
Il y a plein de plugins disponibles (acpi, disk, cpu, video, ...)
Il est possible de basculer de profils en profils tuned à travers l'interface cockpit :
Introduction
Tuned est un outil de gestion de performance pour les systèmes Linux, conçu pour optimiser les performances. Il permet d'ajuster les paramètres du système en temps réel, en appliquant des profils prédéfinis ou personnalisés.
Installation
Tuned est installé et activé par défaut sur certaines distributions Linux comme RHEL par exemple. Si tel n'est pas le cas :
Fedora, RHEL et dérivées :
Code BASH :
dnf install tuned
Debian, Ubuntu et dérivées :
Code BASH :
apt install tuned
Une fois tuned installé, il fonctionne avec un service, qu'il sera nécessaire de démarrer et d'activer :
Code BASH :
systemctl enable --now tuned
Utilisation
Pour vérifier le fonctionnement de tuned et le profil actif :
Code BASH :
tuned-adm active
Par exemple :
Code TEXT :
Current active profile: virtual-guest
Pour lister les profils disponibles :
Code BASH :
tuned-adm list
tuned propose plusieurs profils optimisés pour différents scénarios, parmis ceux listés sur ma RHEL 8 :
- accelerator-performance : Optimisation des performances axée sur le débit avec désactivation des états STOP à latence plus élevée.
- aws : Optimisation pour les instances AWS EC2.
- balanced : Profil général non spécialisé.
- desktop : Optimisation pour un usage de bureau.
- epyc-eda : Optimisation pour les charges de travail de calcul EDA sur les processeurs AMD EPYC.
- hpc-compute : Optimisation pour les charges de travail de calcul HPC (High Performance Computing).
- intel-sst : Configuration pour la fréquence de base Intel Speed Select.
- latency-performance : Optimisation pour des performances déterministes au prix d'une consommation d'énergie accrue.
- network-latency : Optimisation pour des performances déterministes au prix d'une consommation d'énergie accrue, axée sur des performances réseau à faible latence.
- network-throughput : Optimisation pour le débit réseau en streaming, généralement nécessaire uniquement sur les anciens processeurs ou les réseaux 40G+.
- optimize-serial-console : Optimisation pour l'utilisation de la console série.
- powersave : Optimisation pour une faible consommation d'énergie.
- throughput-performance : Réglage largement applicable qui offre d'excellentes performances sur une variété de charges de travail serveur courantes.
- virtual-guest : Optimisation pour l'exécution à l'intérieur d'un invité virtuel.
- virtual-host : Optimisation pour l'exécution d'invités KVM.
Pour changer de profil, suivant notre usage de la machine :
Code BASH :
tuned-adm profile nom_du_profil
Par exemple, pour passer au profil "throughput-performance", utilisez :
Code BASH :
tuned-adm profile throughput-performance
Création de profils personnalisés
Les profils par défaut sont situés dans /usr/lib/tuned
Les profils personnalisés doivent être dans /etc/tuned/profiles (si le dossier profiles n'existe pas, directement dans /etc/tuned )
Pour créer des profils personnalisés, on créra un dossier avec comme nom le profil :
Code BASH :
mkdir /etc/tuned/profiles/perso-adrien
On paramètre le tout dans un fichier tuned.conf :
Code BASH :
vim /etc/tuned/profiles/perso-adrien/tuned.conf
Voici un exemple de config :
Code BASH :
# TuneD config [main] summary=Profil perso adrien include=throughput-performance [sysctl] vm.swappiness = 5 kernel.sysrq = 1 kernel.panic = 5
Le profil est disponible directement, et il est activable avec les commandes vues précédemment :
Code BASH :
tuned-adm profile perso-adrien
On peut constater que les paramètres sont appliqués dans la foulée. Vérifier avec par exemple :
Code BASH :
cat /proc/sys/vm/swappiness
Il y a plein de plugins disponibles (acpi, disk, cpu, video, ...)
Utilisation à travers Cockpit
Il est possible de basculer de profils en profils tuned à travers l'interface cockpit :