<  Back to the Polytechnique Montréal portal

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

Pierre-Marc Fournier

Master's thesis (2009)

Open Access document in PolyPublie
[img]
Preview
Open Access to the full text of this document
Terms of Use: All rights reserved
Download (682kB)
Show abstract
Hide abstract

Abstract

The current trend towards parallelization puts developers more and more in situationswhere they are confronted with performance bugs whose cause is difficult toindentify. These are frequently due to unexpected interactions between softwarecomponents that execute concurrently. The tighter integration and the complexityof debugging large systems worsen this problem. One type of bug which is particularlydifficult to locate is a performance problem whose root cause is separatedfrom its symptom by a chain of blockings. Current tools provide little help withthese problems.The aim of this work is therefore to design a tool that helps debugging performanceproblems involving chains of blockings. This thesis introduces this new approachand discusses its implementation in the LTTV Delay Analyzer. The LinuxTrace Toolkit (LTTng) is used for trace recording and most of the instrumentation,allowing the tracing of production systems with great precision and minimalperformance impact. This approach uses solely kernel instrumentation and doesnot require the recompilation of applications. The analysis tool produces a reportthat shows in detail in what way time was spent in a process between two givenevents. For each category, another report shows the list of time spans during whichthe process was in that state. Finally, in cases where the process was blocked, thecomplete chain of blockings is displayed.The LTTV Delay Analyzer was used to analyze and fix quickly complex performanceproblems, something impossible with existing tools. Analysis time growslinearly with trace size. Memory usage during the analysis of large traces growslinearly 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 theanalysis of blocking chains that involve many computers or that involve physicalmachines as well as the virtual machines they host.

Résumé

La tendance actuelle à la parallélisation fait que les développeurs sont de plusen plus fréquemment confrontés à des bogues de performance dont la cause estdifficiles à repérer. Ceux-ci sont fréquemment dus à des interactions imprévues entredes composants logiciels qui s'exécutent parallèlement. L'intégration grandissanteet la complexité liée au débogage des grands systèmes informatiques exacerbentce problème. Un type de bogue de performance particulièrement difficile est celuidont la réelle cause est séparée du symptôme par une chaîne de blocages. Les outilsactuels 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 deproblèmes de performance impliquant des chaînes de blocages. Ce mémoire introduitcette nouvelle approche et traite de son implémentation dans l'Analyseur dedélais de LTTV. Le Linux Trace Toolkit (LTTng) est utilisé pour l'enregistrementde traces et la majorité de l'instrumentation, permettant le traçage de systèmes enproduction avec grande précision et un impact minimal sur la performance. Cetteapproche utilise exclusivement de l'instrumentation noyau et ne requiert pas larecompilation des applications. L'outil d'analyse produit un rapport qui indiqueen détail de quelle façon le temps a été consommé dans un processus donné entredeux événements. Pour chacune des catégories, un autre rapport indique la listedes 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 rapidementdes 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 lamémoire lors de l'analyse de grandes traces est linéaire par rapport à la taille de latrace, 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 foisdes machines physiques et les machines virtuelles qu'elles hébergent.
Department: Department of Computer Engineering and Software Engineering
Program: Génie informatique
Academic/Research Directors: Michel Dagenais
PolyPublie URL: https://publications.polymtl.ca/117/
Institution: École Polytechnique de Montréal
Date Deposited: 25 Jun 2009 13:56
Last Modified: 10 Nov 2022 09:42
Cite in APA 7: Fournier, P.-M. (2009). Analyse automatisée des causes de blocage de processus à partir d'une trace d'exécution [Master's thesis, École Polytechnique de Montréal]. PolyPublie. https://publications.polymtl.ca/117/

Statistics

Total downloads

Downloads per month in the last year

Origin of downloads

Repository Staff Only

View Item View Item