L’ordonnanceur de Linux déficient !

19/05/2016
logo Linux

Une équipe de recherche internationale a récemment démontré que contrairement à l’opinion commune, les mécanismes d’ordonnancement du noyau sont perfectibles et n’ont pas été développés à la hauteur des innovations technologiques du matériel.

Pour rappel, l’ordonnancement est activité cruciale pour un système d’exploitation qui affecte aux différents organes de calcul d’une machine (cœur et processeur) les tâches à effectuer pour garantir à la fois des performances optimales et une disponibilité permanente de la machine.

Linus Torvald a parlé...

Sur la question des performances de Linux, Linus Torvald avait plié l’affaire il y a près de 15 ans, le 15 décembre 2001 exactement, jugeant : le problème facile, résolu dans le noyau Linux, facilement extensible au cas des machines multiprocesseurs. Avec son tact habituel Linus Torvald avait même considéré que la question se réglerait en quelques centaines de lignes de code et que les développeurs « ne devraient pas trop merder ». En bref, le guru avait parlé et il n’était point question de le contredire. En réalité, le passage aux technologies multiprocesseur et multicœur s’est avéré plus compliqué que prévu. Un premier symptôme observé était la sous-utilisation des cœurs ou processeurs additionnels.

Créer les outils d’observation

C’est sans compter sur le scepticisme scientifique, outil par excellence de l’innovation qui a poussé une équipe de chercheurs à tenter d’expliquer les dégradations de performances observées comparant une assignation manuelle des tâches aux décisions prises par l’ordonnanceur du noyau Linux. Après avoir éliminer toute autre hypothèse, c’est la défaillance de ce dernier qu’il a bien fallu étudier. Les outils d’observations n’existant pas, l’équipe les a développés pour conclure sur un constat sans appel : certains processeurs étaient surchargés, d’autres au repos, sans aucun motif récurrent compréhensible dans les choix d’ordonnancement.

La découverte d’anomalies

L’équipe a donc inspecté le code source du noyau Linux concerné et a découvert un premier défaut dans le code de l’ordonnancer CFS. Forte de cette première découverte, l’équipe a poursuivi son travail et mis au jour quatre autres défauts majeurs dans ce code. Le gain de performance observé après application de patchs est flagrant : entre 12 % et 23 % des performances générales et jusqu’à un facteur 137 sur des charges spécifiques du calcul haute performance. Nous devons mesurer ici la contribution colossale de cette équipe, car les techniques de débogage conventionnelles sont totalement inopérantes dans ces cas d’études.

Un nouvel élan de recherche pour le HPC

Les conclusions de l’article publié par l’équipe démontrent clairement que les recherches sur l’ordonnancement doivent être poursuivies et appliquées à de nombreux autres cas d’utilisation, un domaine qui semblait jusque là bien défini. Autre conclusion : ne pas prendre les paroles de Linus Torvald pour parole d’évangile, y compris concernant Linux….

Article : http://www.ece.ubc.ca/~sasha/papers/eurosys16-final29.pdf

comments powered by Disqus
top