Profils optimisés pour l'optimisation de la charge de travail des serveurs Linux

16 min de lecture - 9 juin 2026

hero section cover
Table des matières
  • Profils optimisés pour l'optimisation de la charge de travail des serveurs
  • Fonctionnement des profils optimisés
  • Choisir le profil adapté à votre charge de travail
  • Installation et application des profils
  • Création d'un profil personnalisé pour l'IA, le ML et les charges de travail à haut débit
  • Gestion des profils sur un parc de serveurs
  • Conclusion
Partager

Comment choisir, appliquer et personnaliser les profils accordés pour les GPU, les bases de données et les serveurs Linux à large bande passante, avec des exemples et des conseils de déploiement Ansible.

Profils optimisés pour l'optimisation de la charge de travail des serveurs

Les paramètres par défaut de Linux sont optimisés pour la compatibilité, et non pour les performances. Le démon tuned fournit des profils prédéfinis qui ajustent les régulateurs de CPU, les planificateurs d'E/S, les paramètres du noyau et les tampons réseau afin de s'adapter à une charge de travail spécifique. Cet article explique le fonctionnement des profils, lequel choisir pour les rôles de serveur courants, et comment créer et déployer des profils personnalisés sur un parc de serveurs.


 

Fonctionnement des profils optimisés

Un profil est un répertoire situé sous /usr/lib/tuned/profiles/ (système) ou /etc/tuned/profiles/ (custom) contenant un tuned.conf fichier. Le fichier de configuration regroupe les paramètres par plugin : [cpu], [disk], [sysctl], [vm], [bootloader], et ainsi de suite. Activez un profil et le démon tuned applique tous les paramètres en une seule fois, plutôt que d'exécuter des dizaines de sysctl et sysfs commandes manuellement.

Les profils peuvent hériter les uns des autres grâce à la include . Le throughput-performance profil, par exemple, peut servir de base à un profil de base de données personnalisé qui ne remplace que vm.swappiness le paramètre Transparent Huge Pages.

tuned fonctionne selon deux modes. L'optimisation statique applique le profil une seule fois lors de l'activation et n'intervient plus sur le système, ce qui est souhaitable sur les serveurs de production où la cohérence prime sur les économies d'énergie. L'optimisation dynamique surveille l'utilisation du disque, du réseau et de la charge en temps réel et ajuste les paramètres à la volée. Les profils de performances désactivent l'optimisation dynamique par défaut afin d'éviter la surcharge liée à la surveillance.

Choisir le profil adapté à votre charge de travail

tuned propose une douzaine de profils couvrant les charges de travail les plus courantes. Choisissez celui qui correspond à ce que fait réellement le serveur, plutôt que de laisser le balanced en place.

Charge de travailProfilFonction
Entraînement et inférence GPUaccelerator-performanceVerrouille le CPU dans des états C bas, maintenant la latence CPU-GPU sous 100 µs
Bases de données (Postgres, MySQL, Redis)throughput-performanceDésactive les économies d'énergie, optimise les E/S disque et réseau, désactive les Transparent Huge Pages
Réseaux à haut débit (CDN, réplication, pipelines de données)network-throughputAugmente la taille des tampons réseau du noyau pour des transferts à haut débit soutenus
Services sensibles à la latencenetwork-latency ou latency-performanceFixe le régulateur du processeur sur performance, désactive les états C profonds
Clusters HPC et de calculhpc-computeAméliore les performances en termes de latence grâce à NUMA et à l'optimisation de la mémoire
Instances VPS (système d'exploitation invité)virtual-guestRéduit le niveau de swappiness, augmente la lecture anticipée du disque pour les E/S paravirtualisées
Hôtes d'hyperviseur KVMvirtual-hostOptimise la réécriture des pages sales pour les charges de travail des machines virtuelles
Mixte ou inconnubalancedPar défaut. Privilégie l'efficacité énergétique au détriment des performances

Pour certains moteurs de base de données, tuned est également fourni postgresql, mssql, ainsi que oracle des profils qui vont plus loin que throughput-performance en ajustant les paramètres de la mémoire partagée et du planificateur du noyau pour ces moteurs.

Sur les serveurs à plusieurs sockets, la topologie NUMA est importante. L'accès à la mémoire d'un nœud distant peut être deux à trois fois plus lent que l'accès local. Pour les charges de travail où la latence est critique sur des machines à deux sockets, désactivez l'équilibrage NUMA automatique dans le profil et affectez manuellement les processus à des nœuds spécifiques.

Installation et application des profils

Installez tuned sur RHEL, Rocky, AlmaLinux ou Fedora :

dnf install tuned
systemctl enable --now tuned

Sur Debian et Ubuntu, le paquet s'appelle également tuned et s'installe via apt. Si power-profiles-daemon est déjà en cours d'exécution, masquez-le pour éviter les conflits :

systemctl mask --now power-profiles-daemon

Répertoriez les profils disponibles, demandez à tuned ce qu'il recommande pour le matériel, appliquez un profil et vérifiez-le :

tuned-adm list
tuned-adm recommend
tuned-adm profile throughput-performance
tuned-adm verify

Le profil actif est stocké dans /etc/tuned/active_profile et persiste après les redémarrages. Pour supprimer entièrement le réglage et mesurer la valeur de référence, exécutez tuned-adm off.

Création d'un profil personnalisé pour l'IA, le ML et les charges de travail à haut débit

Lorsque les profils par défaut vous permettent d'atteindre 90 % de votre objectif, créez un profil personnalisé qui hérite du profil le plus proche et remplace les paramètres restants. Commencez par un répertoire et un fichier de configuration :

mkdir -p /etc/tuned/ai-gpu
cat > /etc/tuned/ai-gpu/tuned.conf <<'EOF'
[main]
summary=Custom profile for GPU training with high-bandwidth networking
include=accelerator-performance
 
[cpu]
governor=performance
 
[sysctl]
kernel.numa_balancing=0
net.core.rmem_max=268435456
net.core.wmem_max=268435456
net.ipv4.tcp_rmem=4096 87380 268435456
net.ipv4.tcp_wmem=4096 65536 268435456
 
[vm]
transparent_hugepages=never
 
[bootloader]
cmdline=hugepagesz=2M hugepages=16384 <a target="_blank" rel="noopener noreferrer" href="https://en.wikipedia.org/wiki/Input%E2%80%93output_memory_management_unit">iommu</a>=pt
EOF
 
tuned-adm profile ai-gpu

Les choix clés ici :

  • numa_balancing=0 empêche le noyau de migrer la mémoire entre les sockets pendant les sessions d'entraînement, une source courante de ralentissement sur les machines GPU à double socket.
  • Le rmem_max et tcp_rmem augmentent la limite maximale du tampon de socket à 256 Mo. Sur des interconnexions 25G, 40G ou 100G entre les nœuds d'entraînement, les tailles de tampon par défaut limitent le débit bien en dessous du débit de ligne.
  • transparent_hugepages=never supprime la gigue de latence causée par le THP pour les frameworks tels que PyTorch et TensorFlow qui allouent de grands tenseurs.
  • iommu=pt met l'IOMMU en mode passthrough, nécessaire pour le passthrough GPU et NIC, et réduit la surcharge sur le DMA bare-metal.

Toute valeur inférieure à [bootloader] nécessite un redémarrage. Après avoir activé le profil, exécutez tuned-adm verify pour confirmer que les paramètres d'exécution ont été appliqués, et vérifiez journalctl -u tuned s'il y a des erreurs. Effectuez un benchmark avant et après avec iostat -xz, numastatet l'outil de charge de travail pertinent (iperf3, fioou l'exécution réelle de l'entraînement).

Un compromis qu’il convient de préciser : la désactivation des mesures de sécurité du CPU permet de gagner environ 3 à 8 % sur les charges de travail GPU, mais coûte 15 à 30 % sur les charges de travail présentant des schémas d’appels système intensifs. Prenez votre décision en fonction du modèle de menace pour la machine. Au sein d’un cluster de formation dédié derrière un pare-feu, le calcul mathématique penche généralement en faveur de leur désactivation. Sur un hôte multi-locataires, laissez-les activées.

Gestion des profils sur un parc de serveurs

L'application manuelle de tuned n'est plus viable au-delà d'une poignée de serveurs. Ansible gère cela de manière efficace. Un seul playbook installe tuned, place les répertoires de profils personnalisés sous /etc/tuned/ via le template module, et applique le profil approprié à chaque groupe d'inventaire.

Mapper les profils aux rôles dans l'inventaire :

  • Nœuds GPU et IA : accelerator-performance, ou un profil personnalisé qui en hérite
  • Serveurs de base de données : throughput-performance ou le profil spécifique au moteur
  • Nœuds CDN et périphériques générant un trafic à haut débit : network-throughput
  • Serveurs API et Web derrière un équilibreur de charge : network-latency
  • VPS et invités KVM : virtual-guest
  • Hôtes d'hyperviseurs : virtual-host

La dérive est le véritable problème opérationnel. Les modifications manuelles sysctl , les mises à jour de paquets qui introduisent de nouvelles valeurs par défaut, ou un autre outil de gestion de configuration qui interfère avec Tuned entraîneront tous des divergences entre les paramètres et ce que spécifie le profil. Planifiez une tâche Ansible pour exécuter tuned-adm active et tuned-adm verify sur cron et déclenchez une alerte en cas d'échec. Surveillez /var/log/tuned/tuned.log les lignes « Échec de la vérification ».

Conclusion

tuned élimine la plupart des approximations liées au réglage du noyau et de sysctl. Les paramètres par défaut sont suffisants pour une utilisation générale, et les profils spécifiques à la charge de travail, tels que accelerator-performance, throughput-performance, et network-throughput vous permettent d’atteindre un niveau d’optimisation quasi total sans avoir à écrire un seul fichier de configuration.

  • Choisissez le profil par défaut le plus proche, exécutez tuned-adm verify, puis effectuez un benchmark
  • Créez des profils personnalisés en héritant d'un profil standard et en ne modifiant que ce dont vous avez besoin
  • Réfléchissez bien à l'équilibrage NUMA, aux pages géantes et à la taille des tampons réseau sur les machines équipées de GPU et à large bande passante
  • Déployez avec Ansible et effectuez des audits réguliers pour détecter les dérives

Vous avez besoin d'une capacité bare-metal avec une marge de bande passante suffisante pour utiliser réellement ces paramètres ? Contactez FDC pour discuter de serveurs dédiés conçus pour les charges de travail à haut débit et les charges de travail GPU.

Blog

À l'honneur cette semaine

Plus d'articles
Profils optimisés pour l'optimisation de la charge de travail des serveurs Linux

Profils optimisés pour l'optimisation de la charge de travail des serveurs Linux

Comment choisir, appliquer et personnaliser les profils accordés pour les GPU, les bases de données et les serveurs Linux à large bande passante, avec des exemples et des conseils de déploiement Ansible.

16 min de lecture - 9 juin 2026

Linux OOM Killer Tuning for VPS : A Practical Guide (en anglais)

12 min de lecture - 8 juin 2026

Plus d'articles