Votre serveur Linux consomme un tiers d’électricité en trop : la correction tient en 30 lignes et personne ne l’applique encore

Trente lignes. C’est tout ce qu’il a fallu à des chercheurs de l’Université de Waterloo pour potentiellement économiser un tiers de la consommation électrique des serveurs Linux dans les datacenters du monde entier. Le kernel Linux 6.13, sorti le 19 janvier 2025, introduit une modification de 30 lignes de code qui pourrait réduire la consommation énergétique des datacenters jusqu’à 30%. Et pourtant, la plupart des admins sys n’ont toujours pas activé cette fonctionnalité. Voici pourquoi c’est un problème, et surtout comment y remédier concrètement.

À retenir

  • Une modification mineure du noyau pourrait économiser des gigawatt-heures d’énergie à l’échelle mondiale
  • L’adaptive polling change radicalement la gestion des interruptions réseau sans reconfiguration d’application
  • Trois paramètres NAPI à activer, mais presque personne ne le sait encore

Le vrai coupable : comment Linux gère le réseau depuis trente ans

Traditionnellement, Linux repose sur une approche pilotée par interruptions pour traiter les données réseau, ce qui, bien qu’efficace, peut être très gourmand en énergie. Le principe est simple, voire brutal : à chaque paquet qui arrive sur la carte réseau, le noyau envoie une interruption matérielle (IRQ), le CPU abandonne ce qu’il est en train de faire, et traite le paquet. Multiply ça par des millions de requêtes par seconde sur un reverse proxy ou un cache, et vous obtenez un processeur qui passe son temps à courir après sa propre queue.

Lors des périodes de faible trafic, le polling continue même sans paquet à traiter, générant une consommation d’énergie inutile. C’est le paradoxe du serveur Linux moderne : l’architecture pensée pour des dizaines d’utilisateurs en terminal dans les années 1980 se révèle inadaptée aux charges réseau massives d’aujourd’hui. Beaucoup de workloads modernes orientés débit, comme les reverse proxies ou les caches, peuvent consommer des ressources équivalentes à plusieurs systèmes traditionnels. Pour ces applications, il est plus efficace de laisser l’application interroger le réseau quand elle est prête à traiter davantage de travail.

La correction en 30 lignes : ce que fait vraiment le kernel 6.13

Cette modification représente un changement fondamental dans la façon dont la pile réseau Linux gère le traitement des interruptions et le polling, apportant des améliorations significatives en termes de débit et d’efficacité énergétique. L’innovation, développée par le professeur Martin Karsten de l’École d’informatique Cheriton de l’Université de Waterloo et Joe Damato, ingénieur chez Fastly, démontre comment des optimisations ciblées au niveau du noyau peuvent avoir un impact massif dans la pratique.

Les chercheurs n’ont pas eu à écrire de nouveau code. « C’est vraiment juste une réorganisation de la façon dont les données circulent et dont le traitement se fait », explique Damato. « On s’appuie sur du code existant dans le noyau Linux, et on change l’ordre des opérations. » Ce changement a abouti à environ 30 lignes de code modifiées.

Le mécanisme s’appelle adaptive polling. La nouvelle méthode de polling adaptatif s’ajuste automatiquement au trafic réseau, interrogeant davantage lors des charges lourdes et revenant aux interruptions quand le trafic se calme. Le résultat concret ? Les premiers tests montrent que cette approche peut booster le débit de 45% tout en réduisant la consommation électrique de 30%.

Le paramètre clé à connaître s’appelle irq_suspend_timeout. Il ajoute un nouveau paramètre de configuration NAPI, irq_suspend_timeout, pour équilibrer l’utilisation du CPU et l’efficacité du traitement réseau lors de l’utilisation du différé d’IRQ et du busy poll NAPI.

Comment activer l’adaptive polling sur votre serveur

Bonne nouvelle pour ceux qui redoutent les manipulations du noyau : ce patch est particulièrement séduisant par son caractère automatique. Les administrateurs système n’ont pas besoin de modifier des paramètres ou de reconfigurer leurs applications pour en bénéficier. Le noyau gère automatiquement le basculement entre polling et interruptions.

La première étape, et de loin la plus banale, est de vérifier votre version de kernel. Si vous tournez sur un Ubuntu 24.04 LTS récent, un Fedora 41+ ou un Debian Trixie, vous êtes probablement déjà sur un noyau ≥ 6.13. Pour activer le mécanisme sur une interface réseau (par exemple eth0), les paramètres se configurent ainsi :
echo 10000000 > /sys/class/net/eth0/napi_defer_hard_irqs,
echo 10000000 > /sys/class/net/eth0/gro_flush_timeout et
echo 50000000 > /sys/class/net/eth0/irq_suspend_timeout.

Mais il y a un angle mort que beaucoup ignorent : l’adaptive polling réseau ne représente qu’une partie du gâchis énergétique. L’autre couche, tout aussi silencieuse, concerne la gestion de la fréquence CPU. La plupart des périphériques disposent d’un mode d’économie d’énergie, et contrairement à Windows, les systèmes Linux ne les configurent pas en mode économie d’énergie par défaut. votre serveur tourne probablement à plein régime même quand il ne fait rien de particulier.

Durant les périodes de faible activité, les fonctionnalités de gestion d’énergie du processeur peuvent potentiellement abaisser les besoins en puissance du serveur de plus de 20%. La solution passe par PowerTOP et tuned, deux outils qui font le travail lourd sans drama. Si PowerTOP est exécuté comme service, il applique automatiquement un diagnostic système au démarrage et applique toutes les suggestions de l’onglet Tunables. Pour aller encore plus loin, l’outil powertop2tuned peut créer des profils Tuned personnalisés basés sur les suggestions de PowerTOP.

Pour rendre tout ça persistant au redémarrage, la solution élégante consiste à créer un fichier systemd unit qui lance PowerTOP avec l’option --auto-tune au démarrage, avec [Service] Type=oneshot ExecStart=/usr/sbin/powertop --auto-tune, puis à activer le service avec systemctl enable --now powertop.

Ce que ça change à grande échelle (et pourquoi attendre est une mauvaise idée)

Selon le Southwest Energy Efficiency Project, les datacenters représentent environ 4,5% de la consommation totale d’électricité américaine en 2025, contre environ 3% il y a dix ans. L’enjeu dépasse largement les quelques watts économisés sur votre VPS perso. Si les grandes entreprises choisissent d’activer cette méthode dans leurs datacenters, cela pourrait économiser des gigawatt-heures d’énergie dans le monde entier. « Presque chaque requête de service qui se produit sur Internet pourrait être positivement affectée par cela », note le professeur Karsten.

Le hic, c’est la lenteur de la chaîne de distribution. Ces économies ne seront pas réalisées du jour au lendemain, car il pourrait s’écouler du temps avant qu’un noyau intégrant ces modifications ne se retrouve dans les versions LTS favorisées par les clients enterprise. Sur Amazon Linux 2023 par exemple, le kernel déclaré stable longterm en décembre 2025 devrait être disponible avec ses améliorations début 2026. Les systèmes d’entreprise figés sur des kernels 5.x resteront sur le carreau encore un moment.

La leçon pratique : si vous administrez des serveurs Linux exposés à un trafic réseau significatif, la vérification de votre version de noyau et l’activation des trois paramètres NAPI ci-dessus prend moins de dix minutes. Les données de benchmarks d’efficacité des serveurs, publiées notamment par le Standard Performance Evaluation Corporation et The Green Grid, indiquent que les serveurs modernes atteignent la meilleure efficacité énergétique quand leur enveloppe de performance est limitée, car cela empêche le chip de chercher agressivement les fréquences d’horloge les plus élevées sur tous les cœurs. Toute la philosophie du kernel 6.13 résumée en une phrase : faire plus avec ce qui existe déjà, sans changer le matériel.

Leave a Comment