On the identification of performance bottlenecks in multi-tier distributed systems - TEL - Thèses en ligne Accéder directement au contenu
Thèse Année : 2020

On the identification of performance bottlenecks in multi-tier distributed systems

De l'identification des problèmes de performance dans les systèmes distribués multi-tiers

Résumé

Today's distributed systems are made of various software componentswith complex interactions and a large number of configurationsettings. Pinpointing the performance bottlenecks is generally a non-trivial task, which requires human expertise as well as trial anderror. Moreover, the same software stack may exhibit very differentbottlenecks depending on factors such as the underlying hardware, theapplication logic, the configuration settings, and the operatingconditions. This work aims to (i) investigate whether it is possibleto identify a set of key metrics that can be used as reliable andgeneral indicators of performance bottlenecks, (ii) identify thecharacteristics of these indicators, and (iii) build a tool that canautomatically and accurately determine if the system reaches itsmaximum capacity in terms of throughput.In this thesis, we present three contributions. First, we present ananalytical study of a large number of realistic configuration setupsof multi-tier distributed applications, more specifically focusing ondata processing pipelines. By analyzing a large number of metrics atthe hardware and at the software level, we identify the ones thatexhibit changes in their behavior at the point where the systemreaches its maximum capacity. We consider these metrics as reliableindicators of performance bottlenecks. Second, we leverage machinelearning techniques to build a tool that can automatically identifyperformance bottlenecks in the data processing pipeline. We considerdifferent machine learning methods, different selections of metrics,and different cases of generalization to new setups. Third, to assessthe validity of the results obtained considering the data processingpipeline for both the analytical and the learning-based approaches,the two approaches are applied to the case of a Web stack.From our research, we draw several conclusions. First, it is possibleto identify key metrics that act as reliable indicators of performancebottlenecks for a multi-tier distributed system. More precisely,identifying when the server has reached its maximum capacity can beidentified based on these reliable metrics. Contrary to the approachadopted by many existing works, our results show that a combination ofmetrics of different types is required to ensure reliableidentification of performance bottlenecks in a large number ofsetups. We also show that approaches based on machine learningtechniques to analyze metrics can identify performance bottlenecks ina multi-tier distributed system. The comparison of different modelsshows that the ones based on the reliable metrics identified by ouranalytical study are the ones that achieve the bestaccuracy. Furthermore, our extensive analysis shows the robustness ofthe obtained models that can generalize to new setups, to new numbersof clients, and to both new setups and new numbers ofclients. Extending the analysis to a Web stack confirmsthe main findings obtained through the study of the data processingpipeline. These results pave the way towards a general and accuratetool to identify performance bottlenecks in distributed systems.
De nos jours, les systèmes distribués sont constitués de nombreuxcomposants logiciels ayant des interactions complexes et de nombreusespossibilités de configurations. Dès lors, localiser les problèmes deperformance est une tâche difficile, nécessitant une expertisehumaine et de nombreux essais. En effet, la même pile logicielle peutse comporter différemment en fonction dumatériel utilisé, de la logique applicative, des paramètres deconfiguration et des conditions de fonctionnement. Ce travail a pourobjectif (i) d’identifier un ensemble demétriques de référence, générales etfiables, pour localiser les problèmes de performance, (ii) d’identifierles caractéristiques de ces indicateurs, et (iii) deconstruire un outil qui puisse déterminer de manière automatiquesi le système a atteint sa capacité maximale en terme dedébit.Dans cette thèse, nous présentons trois contributionsprincipales. Premièrement, nous présentons une étude analytique d’ungrand nombre de configurations réalistes d’applications distribuéesmulti-tiers, se concentrant sur les chaînes de traitements desdonnées. En analysant un grand nombre de métriques au niveau logicielet matériel, nous identifions celles dont le comportement change aumoment où le système atteint sa capacité maximale. Deuxièmement, nousexploitons les techniques d’apprentissage machine pour développer unoutil capable d’identifier automatiquement les problèmes deperformance dans la chaîne de traitement de données. Pour ce faire,nous évaluons plusieurs techniques d’apprentissage machine, plusieurssélections de métriques, et différentscas de généralisation pour de nouvelles configurations. Troisièmement,pour valider les résultats obtenues sur la chaîne de traitement dedonnées, nous appliquons notre approche analytique et notre approchefondée sur l'apprentissage machine au cas d’une architecture Web.Nous tirons plusieurs conclusions de nos travaux. Premièrement, il estpossible d’identifier des métriques clés qui sont des indicateursfiables de problèmes de performance dans les systèmes distribuésmulti-tiers. Plus précisément, identifier le moment où le serveur aatteint sa capacité maximale peut être identifier grâce à cesmétriques fiables. Contrairement à l’approche adoptée par de nombreuxtravaux existants, nos travaux démontrent qu'une combinaison demétriques de différents types est nécessaire pour assurer uneidentification fiable des problèmes de performance dans un grandnombre de configurations. Nos travaux montrent aussi que les approchesfondées sur des méthodes d’apprentissage machine pour analyser lesmétriques permettent d’identifier les problèmes de performance dansles systèmes distribués multi-tiers. La comparaison de différentsmodèles met en évidence que ceux utilisant les métriques fiablesidentifiées par notre étude analytique sont ceux qui obtiennent lameilleure précision. De plus, notre analyse approfondie montre larobustesse des modèles obtenues. En effet, ils permettent unegénéralisation à de nouvelles configurations, à de nouveaux nombres declients, et à de nouvelles configurations exécutées avec de nouveauxnombres de clients. L'extension de notre étude au cas d'unearchitecture Web confirme les résultats principaux obtenus à traversl’étude sur la chaîne de traitement de données. Ces résultats ouvrentla voie à la construction d'un outil générique pour identifier demanière fiable les problèmes de performance dans les systèmesdistribués.
Fichier principal
Vignette du fichier
ALSAYASNEH_2020_archivage.pdf (4.79 Mo) Télécharger le fichier
Origine : Version validée par le jury (STAR)
Loading...

Dates et versions

tel-02986536 , version 1 (03-11-2020)

Identifiants

  • HAL Id : tel-02986536 , version 1

Citer

Maha Alsayasneh. On the identification of performance bottlenecks in multi-tier distributed systems. Hardware Architecture [cs.AR]. Université Grenoble Alpes [2020-..], 2020. English. ⟨NNT : 2020GRALM009⟩. ⟨tel-02986536⟩
227 Consultations
452 Téléchargements

Partager

Gmail Facebook X LinkedIn More