Whodunit: Transactional Profiling for Multi-Tier Applications
This paper is concerned with performance debugging of multi- tier applications, such as commonly found in servers and dynamic-content web sites. Existing tools and techniques for profiling such applications are not general enough to track and profile transactions in a generic multi-tier appli- cation. We propose transactional profiling that provides a general solution to this problem. We provide novel algo- rithms and techniques to track and profile transactions that flow through shared memory, events, stages or via inter- process communication using messages. We also measure interference among concurrent transactions.
We describe the design and implementation of Whodunit, our prototype transactional profiler. We demonstrate the correctness of our proposed algorithm for tracking transac- tion flow through shared memory using Apache andMySQL. Using Whodunit we are able to track and profile transac- tions that flow through shared memory, events, stages or via message passing, and measure the interference among concurrent transactions. We illustrate the use of Whodunit in obtaining the transactional profile of web servers, a web proxy cache and a bookstore application.