IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Un nouveau code Linux pourrait-il réduire de 30 % la consommation d'énergie des centres de données ? Cela est possible en modifiant une trentaine de lignes de code dans la pile réseau de Linux
Selon une étude

Le , par Mathis Lucas

0PARTAGES

6  0 
Une étude suggère que la modification d'une trentaine de lignes de code dans le noyau Linux pourrait réduire de 30 % la consommation d'énergie des centres de données. Plus précisément, elle propose de modifier la manière dont les serveurs traitent le trafic réseau entrant, ce qui améliorerait leurs performances et leur efficacité énergétique. Presque toutes les demandes de service sur Internet pourraient en être affectées positivement. Mais les 30 % annoncés sont obtenus dans des conditions de test idéales et certains critiques sceptiques affirment que « personne n'est susceptible de voir quelque chose de semblable dans des scénarios réels ».

Le matériel devient de plus en en plus rapide, mais il n'est pas inutile de prendre régulièrement du recul et de revoir votre code. Il se peut que vous découvriez une petite modification qui vous permettra d'obtenir plus d'efficacité ou de débit que vous ne l'auriez imaginé. C'est ce que les chercheurs de la Cheriton School of Computer Science de l'université de Waterloo ont réussi à faire. Ils ont trouvé un moyen d'améliorer l'efficacité énergétique des serveurs Linux.

Grâce à leurs recherches, Martin Karsten, professeur d'informatique à la faculté de mathématiques de l'université de Waterloo, et Peter Cai, étudiant diplômé en informatique, ont découvert que la manière dont les centres de données traitaient les paquets de trafic réseau était inefficace.

Ils ont conçu une petite modification pour la rendre plus efficace. « Le projet est né du désir d'expliquer comment il était possible que les approches de mise en réseau au niveau de l'utilisateur puissent atteindre des performances aussi grandioses par rapport aux approches au niveau du noyau », explique Martin Karsten.

Réduire le nombre de demandes d'interruption qui surcharge les serveurs

Leur découverte provient de la suspension des demandes d'interruption (IRQ), une technique qui optimise l'efficacité énergétique de l'unité centrale en réduisant les interruptions inutiles dans des conditions de trafic élevé. En général, lorsqu'un nouveau paquet de données entre dans le réseau, il déclenche une demande d'interruption, ce qui oblige le noyau du processeur à interrompre sa tâche en cours pour traiter les données, ce qui ralentit les choses.

Ce système était adapté aux environnements dans lesquels plusieurs utilisateurs pouvaient exécuter des tâches simultanément. « Dans l'ancien système, le système d'exploitation facilitait les activités multi-utilisateurs. Vous avez un serveur ; vous avez beaucoup de personnes connectées qui font toutes sortes de petites choses ; et le système d'exploitation doit constamment s'occuper de tout le monde et établir l'équité », explique Martin Karsten.

Beaucoup de choses ont changé depuis. De nombreuses charges de travail modernes axées sur le débit, comme les proxys inversés ou la mise en cache, peuvent consommer des ressources équivalentes à plusieurs systèmes traditionnels. Selon le professeur Martin Karsten, pour ce type d'applications, il peut être plus efficace pour l'application d'interroger le réseau lorsqu'elle est prête à prendre en charge plus de travail.


En réduisant le nombre de demandes d'interruption, le processeur hôte peut consacrer plus de temps à l'analyse des chiffres et moins à l'attente de paquets qui ne sont pas prêts à être traités. Le fait d'interroger constamment le réseau entraîne également des frais généraux. « Lorsque le trafic est faible, vous continuez à utiliser votre cœur, ce qui est extrêmement inefficace en matière de consommation d'énergie », explique le professeur Martin Karsten.

Forte de ce constat, l'équipe est parvenue à un correctif du noyau introduisant l'interrogation adaptative. Pendant les périodes de trafic intense, cela a permis à l'hôte d'interroger le réseau pour obtenir un nouveau morceau de données dès qu'il avait fini de traiter le dernier.

Si le trafic diminuait et qu'il n'y avait pas de nouveaux chiffres à traiter, le système pouvait alors revenir à une approche basée sur les interruptions, ce qui permettait d'économiser de l'énergie. Plus important encore, comme tout cela est géré dans le noyau, c'est essentiellement automatique.

Cette petite modification a été intégrée dans la version 6.13 du noyau Linux

En affinant la façon dont le noyau gère les demandes d'interruption, le débit des données s'améliore de 45 % tout en garantissant une faible latence. En d'autres termes, le système peut gérer plus de trafic sans retard pour les opérations les plus sensibles au temps. L'équipe a démontré pour la première fois une mise en œuvre rudimentaire de cette capacité dans un article publié en 2023. Elle a alors entrepris des travaux pour l'intégrer au noyau Linux.

Martin Karsten s'est associé à Joe Damato, ingénieur distingué de la société de cloud computing Fastly, spécialisée dans les réseaux de diffusion de contenu, pour développer une petite section de code (environ 30 lignes) qui améliorerait le traitement du trafic réseau de Linux. Selon les chercheurs, si elle cette nouvelle approche est adoptée, elle pourrait réduire de 30 % la consommation d'énergie des opérations importantes des centres de données.

La modification a été incorporée dans la version 6.13 du noyau Linux oubliée en janvier 2025. Le professeur Martin Karsten insiste sur le fait que son équipe n'a rien ajouté de nouveau. « Nous n'avons rien ajouté. Nous avons simplement réorganisé ce qui est fait et à quel moment », a-t-il déclaré.

« Cela a conduit à une bien meilleure utilisation des caches de l'unité centrale du centre de données. C'est un peu comme si l'on réorganisait le pipeline d'une usine de fabrication, de sorte qu'il n'y ait pas de gens qui courent dans tous les sens », a ajouté le professeur Martin Karsten.

L'université de Waterloo construit une salle de serveurs informatiques écologiques dans le cadre de son nouveau bâtiment de mathématiques, et Martin Karsten estime que la recherche sur le développement durable doit être une priorité pour les informaticiens afin de construire « un avenir plus vert ».

Analyse critique des résultats de l'étude

Comme souligné ci-dessus, les implications de ce correctif en matière de performances pourraient être très importantes. Les premiers tests ont montré qu'il pouvait augmenter le débit jusqu'à 45 % sans compromettre le temps de latence. Par ailleurs, pour la même charge, l'équipe a déclaré que la réduction des ressources précédemment gaspillées pour l'interruption des charges lourdes du réseau pourrait réduire la consommation d'énergie d'environ 30 %.

Cependant, il s'agit là de scénarios optimaux. Toutes les applications ne bénéficieront pas d'un tel niveau d'amélioration des performances. Martin Karsten a déclaré que ce sont les applications gourmandes en débit qui devraient en bénéficier le plus. « Il existe des applications telles que Memcached qui ne font pas grand-chose d'autre que de la communication réseau », a-t-il déclaré. De nombreux commentateurs ont également mis en lumière cet aspect.

Un critique affirme : « les 30 % annoncés ont été obtenus dans des conditions de test idéales. Personne n'est susceptible de voir quelque chose de semblable dans des scénarios réels, au point que dans toute application qui n'est pas un appareil de réseau, je doute que la différence de vitesse soit perceptible ».

Même si les économies sont beaucoup plus faibles en moyenne, Martin Karsten a déclaré que cela représente toujours une quantité considérable d'énergie pour toutes les boîtes Linux dans la nature. À ce propos, ces économies ne seront pas réalisées du jour au lendemain, car il faudra peut-être un certain temps avant qu'un noyau comportant ces modifications ne soit intégré dans les versions de support à long terme (LTS) privilégiées par les entreprises.

Mais il semble que même lorsque le noyau sera largement adopté dans les centres de données, il ne sera pas d'une grande utilité pour les clusters d'IA. En effet, dans les applications d'IA et de calcul intensif, une technologie appelée « Remote direct memory access » (RDMA) est depuis longtemps privilégiée.

« Cette approche élimine le besoin de cycles CPU dans le traitement des données du réseau, ce qui constitue la base des technologies d'interconnexion haute performance », a déclaré Gilad Shainer, SVP of Networking chez Nvidia. Néanmoins, pour Martin Karsten, l'étude souligne l'importance de revoir les piles logicielles.

Cela concerne non seulement le noyau ou l'application, mais aussi les intergiciels, les bibliothèques et tout le reste. Martin Karsten a déclaré que cette analyse devrait être pris à l'avenir. « Je pense qu'il y a tellement d'inefficacités que nous pouvons éradiquer et je pense que le moment est bientôt venu », a-t-il déclaré.

« Personne n'a dépensé d'argent dans ce domaine par le passé, car pourquoi s'inquiéter si le matériel est deux fois plus rapide l'année prochaine ? Mais si la fête s'arrête un jour, nous ferons mieux de nous pencher sur les logiciels », a déclaré le professeur Martin Karsten.

Sources : communiqué de presse, rapport de l'étude

Et vous ?

Quel est votre avis sur le sujet ?
Que pensez-vous des résultats de cette étude ? Sont-elles pertinentes selon vous ?
Cette modification du noyau Linux sera-t-elle réellement utile dans les scénarios réels ? Pourquoi ?

Voir aussi

Linux Kernel 6.13 est disponible : le noyau ajoute la prise en charge de la préemption paresseuse, poursuit l'intégration de Rust et apporte de nouvelles fonctionnalités pour l'optimisation du système

Grâce à Nvidia, une nouvelle génération d'ordinateurs personnels arrive et ils tourneront sous Linux qui bénéficie d'un nouveau couloir de vente liée pour aller bousculer Windows sur le desktop

Pourquoi la FSF est structurée comme elle l'est, les huit directeurs publient un article expliquant comment leur objectif et leurs principes sont protégés par la structure de gouvernance de l'organisation

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de jeanbart
Candidat au Club https://www.developpez.com
Le 04/02/2025 à 17:46
La réception des paquets par interruption provoque un changement de contexte dans le noyau et un dans certaines circonstances un appel au "scheduler". La routine d'it doit remplir une file de messages qui sera traitée lors de la restitution du contexte. Si un autre paquet survient, le paquet ne peut être traité immédiatement à cause du nouveau changement de contexte. Il en résulte une perte d'efficacité dû aux changements de contextes incessants. La solution en cas de forts trafic et de traiter les paquets par "pooling" plutôt que par interruption.
0  0