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

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

  1. #1
    Chroniqueur Actualités
    Avatar de Bruno
    Homme Profil pro
    Rédacteur technique
    Inscrit en
    Mai 2019
    Messages
    1 975
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Rédacteur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mai 2019
    Messages : 1 975
    Points : 38 419
    Points
    38 419
    Par défaut Intel détecte une amélioration des performances de 3888,9 % dans le noyau Linux à partir d'une ligne de code
    Intel détecte une amélioration des performances de 3888,9 % dans le noyau Linux,
    à partir d'une ligne de code

    Récemment, Intel a rapporté une amélioration spectaculaire de 3888,9 % dans son test d'évolutivité « will-it-scale.per_process_ops », exécuté sur un serveur Intel Xeon Platinum, suite à l'ajout d'une simple ligne de code. Cette modification concerne l'alignement des mappings anonymes dans les Transparent Huge Pages (THP), un mécanisme visant à optimiser la gestion de la mémoire. Bien que cet énorme gain de performance soit impressionnant, il est essentiel de noter qu'il s'applique à des cas spécifiques et ne se traduira probablement pas par des améliorations aussi marquées pour tous les utilisateurs de Linux.

    Le noyau Linux, cœur du système d'exploitation, assure la communication entre le matériel de l'ordinateur et les processus logiciels, tout en gérant les ressources matérielles de manière optimale pour garantir le bon fonctionnement des applications. Il contrôle toutes les fonctions principales du matériel, y compris la gestion de la mémoire, des périphériques et des processus. Il alloue et gère la mémoire en utilisant des pages de 4 Ko chacune. Lorsqu'une application nécessite plus de mémoire, le noyau divise cette mémoire en pages, qui sont ensuite référencées dans des tables de pages. Cependant, avec l'augmentation de la quantité de mémoire, cette gestion devient plus complexe, car le matériel ne peut gérer qu'un nombre limité d'entrées de table de pages. Ainsi, pour de grandes quantités de mémoire, il est nécessaire d'utiliser des Huge Pages, qui sont des blocs de mémoire de tailles plus grandes (2 Mo ou 1 Go).

    Nom : Kernel.PNG
Affichages : 33765
Taille : 271,7 Ko

    Les Huge Pages permettent de gérer plus efficacement de grandes quantités de mémoire, mais leur gestion est complexe et nécessite souvent une configuration manuelle. Pour faciliter leur utilisation, le mécanisme Transparent Huge Pages (THP) a été développé. THP automatise la création, la gestion et l'utilisation des Huge Pages, réduisant la charge de travail des administrateurs et des développeurs. Cependant, THP a des limitations et peut seulement être utilisé pour les régions de mémoire anonymes, comme les espaces du tas et de la pile.

    Avant la modification d'Intel, un précédent commit avait modifié l'alignement des mappings de mémoire anonyme pour les rendre compatibles avec l'alignement des PMD (Page Middle Directory), permettant ainsi l'utilisation des Huge Pages. Cependant, cette modification avait introduit des régressions de performance, notamment sur certains benchmarks comme cactusBSSN, où l'alignement des pages avait fragmenté la mémoire, ce qui a conduit à des ralentissements. Intel a donc proposé un correctif qui ajuste l'alignement pour mieux correspondre aux besoins des applications, évitant ainsi les effets négatifs de l'alignement trop strict.

    Une performance impressionnante, mais contextuelle et avec des nuances

    L'amélioration de performances de 3888,9 % constatée par Intel dans le noyau Linux, suite à une modification d'une ligne de code, semble impressionnante en surface. Cependant, en y regardant de plus près, il apparaît que cette amélioration concerne des scénarios très spécifiques et soulève plusieurs points importants concernant l'évaluation des performances, l'impact réel sur les utilisateurs et la communication technique.

    Certains retours, comme celui d'un utilisateur anonyme ayant comparé cette amélioration à un benchmark axé sur le TLB, soulignent que l'ajustement de l'alignement des Transparent Huge Pages (THP) s'applique principalement à des scénarios très spécifiques, où la gestion de la mémoire est déjà un facteur limitant. Ainsi, les utilisateurs lambda de Linux, ou ceux ayant des charges de travail classiques, ne devraient pas s'attendre à une différence notable dans leurs systèmes. L'exemple des améliorations de 40x ou 600 % observées sur des benchmarks comme cactusBSSN démontre que cette optimisation cible principalement des environnements spécialisés, comme des applications serveur ou des usages en entreprise nécessitant une gestion intensive de la mémoire.

    Bien que cette amélioration soit présentée de manière frappante, elle touche des processus qui, en réalité, sont déjà extrêmement rapides et ne prennent qu'une fraction de seconde à s'exécuter. L'effet de cette modification se concentre donc sur des micro-processus qui n'affectent que marginalement les performances globales du système. En résumé, bien que l'ampleur du gain soit impressionnante en termes de pourcentage, il ne se traduira probablement pas par un véritable bénéfice perceptible pour la majorité des utilisateurs.

    Des régressions de performances importantes ont également été notées après l'introduction du commit initial, avec des ralentissements pouvant atteindre jusqu'à 600 % sur certains benchmarks. Cela met en évidence l'importance de tester de manière rigoureuse les changements apportés à un système aussi complexe que le noyau Linux. Le correctif d'Intel semble avoir été conçu pour résoudre ces régressions, mais il soulève également la question des compromis inhérents à l'optimisation des noyaux. En effet, un patch qui améliore les performances dans certains cas peut dégrader d'autres aspects des performances. Il est donc crucial d'effectuer des tests approfondis dans des environnements réels pour évaluer pleinement l'impact de ces ajustements.

    Le fait que cette modification n'implique qu'une seule ligne de code montre combien les améliorations de performance dans le noyau peuvent être subtiles, mais néanmoins significatives. Cependant, une simple ligne de code peut dissimuler une complexité sous-jacente importante. Le fait que ce patch ait pu générer des effets collatéraux souligne l'importance de bien comprendre les mécanismes impliqués. Les développeurs du noyau, tout comme ceux qui communiquent sur ces changements, doivent être conscients que des annonces de gains de performance spectaculaires peuvent induire en erreur, surtout lorsqu'elles ne concernent que des cas très spécifiques.

    Enfin, cette amélioration soulève des questions sur la pérennité des optimisations à bas niveau. Les efforts pour améliorer les performances du noyau Linux en modifiant l'alignement mémoire peuvent ne pas avoir les effets bénéfiques escomptés dans tous les cas. La gestion de la mémoire au sein du noyau est un domaine complexe et fragile : une optimisation dans un domaine précis peut entraîner des effets Intel prévoit d'effectuer des tests supplémentaires pour évaluer l'impact du correctif dans des scénarios réels et au-delà des benchmarks synthétiques. En effet, les tests en laboratoire ne reflètent pas toujours les conditions de production, où les charges de travail et les configurations matérielles sont plus variées. Les tests dans des environnements réels permettront de mieux comprendre les avantages et les limites de cette optimisation, et d’assurer qu’elle est véritablement bénéfique dans des situations de production plus générales.


    Bien que cette amélioration spectaculaire des performances, grâce à une simple modification de code, soit impressionnante, elle met en lumière la complexité de l'optimisation du noyau Linux, notamment en ce qui concerne la gestion de la mémoire et l'alignement des pages. Il est crucial de continuer à tester ces optimisations dans des scénarios variés et réels pour garantir qu'elles apportent des bénéfices réels dans une large gamme de configurations et de charges de travail.

    Source : The Intel kernel test

    Et vous ?

    Quel est votre avis sur le sujet ?

    Selon vous, dans quelle mesure le gain de performance de 3888,9 % est-il représentatif de l'impact global de ce changement sur l'ensemble des utilisateurs de Linux ?

    Ce gain de performance ne masque-t-il pas une tendance à trop se concentrer sur des optimisations micro-niveau au détriment de l’optimisation plus large et plus systématique du noyau ?

    Voir aussi :

    Linux 6.3 est disponible. Cette version s'accompagne d'un support initial pour les processeurs Intel de 14e génération Meteor Lake et fait appel à plus de code Rust

    Le noyau Linux 6.8 est publié avec le pilote graphique expérimental Intel Xe et le support initial de Rust pour l'architecture LoongArch, ainsi que d'autres mises à jour et correctifs
    Contribuez au club : corrections, suggestions, critiques, ... Contactez le service news et Rédigez des actualités

  2. #2
    Membre expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 866
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 866
    Points : 3 443
    Points
    3 443
    Par défaut
    Faudrait créer un LinuxGPT spécialisé dans tout ce qui concerne le kernel Linux, comme ça lui il optimisera tout ça vite fait bien fait
    K

  3. #3
    Candidat au Club
    Homme Profil pro
    retraité
    Inscrit en
    Décembre 2021
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : retraité
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Décembre 2021
    Messages : 1
    Points : 3
    Points
    3
    Par défaut Information très instructive sauf pour moi
    Effectivement je n'ai pas compris si la ligne d'instruction est une composante du noyau ou si c'est une ligne à intégrer dans un patch. Bref quand est-ce que ce sera effectif et sur quel noyau?

Discussions similaires

  1. Réponses: 15
    Dernier message: 04/02/2018, 12h16
  2. [Tableaux] Explication d'une ligne de code
    Par eXiaNazaire dans le forum Langage
    Réponses: 3
    Dernier message: 30/03/2006, 14h09
  3. PB sur une ligne de code
    Par romrai dans le forum Access
    Réponses: 2
    Dernier message: 22/02/2006, 12h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo