<  Retour au portail Polytechnique Montréal

Analyse automatisée des causes de blocage de processus à partir d'une trace d'exécution

Pierre-Marc Fournier

Mémoire de maîtrise (2009)

Document en libre accès dans PolyPublie
[img]
Affichage préliminaire
Libre accès au plein texte de ce document
Conditions d'utilisation: Tous droits réservés
Télécharger (682kB)
Afficher le résumé
Cacher le résumé

Résumé

La tendance actuelle à la parallélisation fait que les développeurs sont de plus en plus fréquemment confrontés à des bogues de performance dont la cause est difficiles à repérer. Ceux-ci sont fréquemment dus à des interactions imprévues entre des composants logiciels qui s'exécutent parallèlement. L'intégration grandissante et la complexité liée au débogage des grands systèmes informatiques exacerbent ce problème. Un type de bogue de performance particulièrement difficile est celui dont la réelle cause est séparée du symptôme par une chaîne de blocages. Les outils actuels sont d'une aide limitée pour résoudre ces bogues. L'objectif de ce travail est donc la conception d'un outil aidant au débogage de problèmes de performance impliquant des chaînes de blocages. Ce mémoire introduit cette nouvelle approche et traite de son implémentation dans l'Analyseur de délais de LTTV. Le Linux Trace Toolkit (LTTng) est utilisé pour l'enregistrement de traces et la majorité de l'instrumentation, permettant le traçage de systèmes en production avec grande précision et un impact minimal sur la performance. Cette approche utilise exclusivement de l'instrumentation noyau et ne requiert pas la recompilation des applications. L'outil d'analyse produit un rapport qui indique en détail de quelle façon le temps a été consommé dans un processus donné entre deux événements. Pour chacune des catégories, un autre rapport indique la liste des intervalles de temps où le processus a été dans cet état. Enfin, dans les cas où le processus était bloqué, la chaîne de blocages complète est affichée. L'Analyseur de délais de LTTV a été utilisé pour analyser et corriger rapidement des problèmes de performance complexes, chose impossible avec les outils existants. Le temps d'analyse est linéaire par rapport à la taille de la trace. L'usage de la mémoire lors de l'analyse de grandes traces est linéaire par rapport à la taille de la trace, mais une méthode pour la rendre constante est décrite. La méthode conçue pourrait servir de base à des travaux futurs, dont l'analyse de chaînes de blocages qui impliquent plusieurs ordinateurs ou qui impliquent à la fois des machines physiques et les machines virtuelles qu'elles hébergent.

Abstract

The current trend towards parallelization puts developers more and more in situations where they are confronted with performance bugs whose cause is difficult to indentify. These are frequently due to unexpected interactions between software components that execute concurrently. The tighter integration and the complexity of debugging large systems worsen this problem. One type of bug which is particularly difficult to locate is a performance problem whose root cause is separated from its symptom by a chain of blockings. Current tools provide little help with these problems. The aim of this work is therefore to design a tool that helps debugging performance problems involving chains of blockings. This thesis introduces this new approach and discusses its implementation in the LTTV Delay Analyzer. The Linux Trace Toolkit (LTTng) is used for trace recording and most of the instrumentation, allowing the tracing of production systems with great precision and minimal performance impact. This approach uses solely kernel instrumentation and does not require the recompilation of applications. The analysis tool produces a report that shows in detail in what way time was spent in a process between two given events. For each category, another report shows the list of time spans during which the process was in that state. Finally, in cases where the process was blocked, the complete chain of blockings is displayed. The LTTV Delay Analyzer was used to analyze and fix quickly complex performance problems, something impossible with existing tools. Analysis time grows linearly with trace size. Memory usage during the analysis of large traces grows linearly with trace size, but a strategy to make it constant is described. This new method could serve as a starting point for future work, including the analysis of blocking chains that involve many computers or that involve physical machines as well as the virtual machines they host.

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/117/
Université/École: École Polytechnique de Montréal
Date du dépôt: 25 juin 2009 13:56
Dernière modification: 10 nov. 2022 09:42
Citer en APA 7: Fournier, P.-M. (2009). Analyse automatisée des causes de blocage de processus à partir d'une trace d'exécution [Mémoire de maîtrise, École Polytechnique de Montréal]. PolyPublie. https://publications.polymtl.ca/117/

Statistiques

Total des téléchargements à partir de PolyPublie

Téléchargements par année

Provenance des téléchargements

Actions réservées au personnel

Afficher document Afficher document