Instrumentation of Distributed .NET Applications for Performance Analysis under Load
Modern web- & enterprise-applications are usually divided into multiple tiers to improve maintainability. These tiers are commonly distributed over multiple servers to increase performance and availability. However, this so-called n-tier architecture makes finding failures and analyzing performance a challenging problem.
While profilers and debuggers can be useful for these tasks on a 1-tier system, they are mostly useless for distributed applications because of the excessive overhead and the lack of recognition of correlating events on multiple tiers.
The objective of this diploma thesis is the development of a tool that instruments the IL code of a distributed .NET application in such a way that performance and failure information about the application is collected and forwarded to a central server for evaluation while the application is under load. More precisely, this performance and failure information includes:
With the collected information it should be possible to track execution paths (the way a request traverses across multiple tiers) and get an overall picture of the application's dynamic behaviour.
The tool has to be integrated in JLoadTrace, a performance analysis tool for distributed applications developed by dynaTrace software GmbH.
The system to be developed will consist basically of these parts:
Advisor: Dipl.-Ing. Thomas Kotzmann