6 research outputs found
De l'identification des problèmes de performance dans les systèmes distribués multi-tiers
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
The Case for Dynamic Placement of Distributed Systems Components
International audienceToday distributed systems are made of many software components with complex interactions. One of the key challenges in such an environment is determining how to place the components so that the system performs efficiently. In this paper, we illustrate the importance of component placement with a case study, examining the performance of a common stream processing pipeline comprising Kafka, Spark, and Cassandra. We study three applications (word count, Twitter sentiment analysis, machine learning) and three placement strategies. Our results show that (i) placement has a significant impact on the application throughput (up to 52%) and (ii) the placement achieving best results differs depending on the application. We discuss why existing solutions for performance troubleshooting in distributed systems are not sufficient to help choosing an efficient placement or to detect if a chosen placement is significantly under-performing compared to others. Finally, we describe research directions to address this open problem
Crowdsourcing Strategies for Text Creation Tasks
International audienceWe examine deployment strategies for text translation and text summarization tasks. We formalize a deployment strategy along three dimensions: work structure, workforce organization , and work style. Work structure can be either simultaneous or sequential, workforce organization independent or collaborative, and work style either crowd-only or hybrid. We use Amazon Mechanical Turk to evaluate the cost, latency, and quality of various deployment strategies. We asses our strategies for different scenarios: short/long text, presence/absence of an outline, and popular/unpopular topics. Our findings serve as a basis to automate the deployment of text creation tasks