Mémoire de maîtrise (2019)
Document en libre accès dans PolyPublie |
|
Libre accès au plein texte de ce document Conditions d'utilisation: Tous droits réservés Télécharger (1MB) |
Résumé
L'essor de l'infonuagique s'est accompagné de la transition depuis les applications monolithiques, lourdes et complexes à maintenir, vers les applications réparties sous forme de services flexibles et performants. Grâce à l'amélioration des outils de déploiement et de mise à l'échelle, ces dernières ont une efficacité accrue, une meilleure résistance aux pannes ainsi qu'un meilleur découpage sous forme de services développés indépendamment. Toutefois, les applications réparties présentent des difficultés nouvelles liées à leur transparence de fonctionnement et à leur débogage. Une simple requête peut donner lieu à des dizaines de sous-requêtes interdépendantes et traitées par des machines physiques différentes. Le traçage distribué permet partiellement de répondre au problème en fournissant à l'utilisateur une vue en cascade de chaque requête au complet, incluant les durées de chaque sous-requête. C'est une technique précieuse qui permet d'identifier rapidement des requêtes défaillantes et des services anormalement lents. En revanche, et alors même que les applications ciblées sont conçues pour exécuter plusieurs requêtes en parallèle, le traçage distribué ne permet pas d'expliquer les causes d'une latence lorsque celle-ci découle d'une contention entre services ou entre requêtes concurrentes. L'objectif de ce projet de recherche est d'étendre le traçage distribué à l'analyse de cause racine appliquée à des problèmes de contention. Notre hypothèse de travail est que, grâce à l'ajout d'événements de bas niveau issus de traces noyau, il est possible de créer des algorithmes permettant à l'utilisateur de comprendre la cause d'une latence observée dans une application distribuée. Nous proposons à cette fin de combiner le traçage distribué avec le traçage logiciel, de la collecte des événements à leur analyse ultérieure.
Abstract
Cloud applications have transitioned from centralized to distributed architectures deployed as smaller services. Tools for deploying and scaling distributed applications have made them more flexible, more efficient, more resilient and easier to maintain than their monolithic counterparts. However, distributed applications are also more difficult to analyze and debug. Indeed, a single user request can trigger tens of subrequests than span across multiple services and physical machines. Distributed tracing partially addresses this problem by providing the user with the complete flow of a given request and the duration of each of its subrequests. While it is very useful for identifying faults and slow services, it fails at explaining the root cause when it is related to contention between services or requests. This is even more critical since distributed applications are often built for concurrency. The objective of this research project is to extend distributed tracing to the root cause analysis of contention in distributed applications. Our assumption is that we can include low-level kernel events to trace analyses to better understand the cause of detected latency. To that end, we propose combining distributed tracing with kernel tracing, from collecting to analyzing the events. We designed a technique for collecting and synchronizing high-level distributed tracing events and low-level kernel events altogether. Our solution is based on instrumenting a distributed tracer with a software tracer that operates in user space. We used Jaeger as a distributed tracer and LTTng as a software tracer for our implementation. We showed that the performance impact of our solution could be controlled by lowering the sampling frequency of tracing in the target application.
Département: | Département de génie informatique et génie logiciel |
---|---|
Programme: | Génie informatique |
Directeurs ou directrices: | Michel Dagenais |
URL de PolyPublie: | https://publications.polymtl.ca/3996/ |
Université/École: | Polytechnique Montréal |
Date du dépôt: | 11 oct. 2019 10:22 |
Dernière modification: | 26 sept. 2024 21:49 |
Citer en APA 7: | Gelle, L. (2019). Traçage noyau et distribué d'applications réparties pour l'analyse de la performance [Mémoire de maîtrise, Polytechnique Montréal]. PolyPublie. https://publications.polymtl.ca/3996/ |
---|---|
Statistiques
Total des téléchargements à partir de PolyPublie
Téléchargements par année
Provenance des téléchargements