Proceeding of the second joint WOSP/SIPEW international conference on Performance engineering - ICPE '11
Modern web applications consist of many distinct services that collaborate to provide the full application functionality. To improve application performance, developers need to be able to identify the root cause of performance problems; identifying and fixing performance problems in these distributed, heterogeneous applications can be very difficult. As web applications become more complicated, the number of systems involved will continue to grow and full-system performance tuning will become
... re difficult. We postulate that multi-tier profiling, starting at the web browser, is the appropriate way to solve this problem. Instrumenting from the web browser, as the user experiences it, ensures that we can tell what each service in the application is contributing to overall page-load time; thus, each tier must provide instrumentation data that developers can use to quickly identify the root cause of performance problems. We have built MT-WAVE, a system that integrates with the different tiers of a web application (including a browser extension) and collects light-weight instrumentation to a central location via X-Trace  facilities. The collected data is presented with our visualization system that provides varying levels of detail. To validate our approach, we performed case studies of two applications, both showing performance insight. In particular, we identified and fixed a significant and unintuitive bottleneck in an open-source project management application and verified caching behaviour in a cloud-hosted commercial product. While specific technologies are used in our case study, we believe that most web technologies in common use today would require straightforward modifications to be able to utilize MT-WAVE tracing facilities. This tool is designed to be used by application developers and system administrators while testing new software, or after deployment when it becomes clear that existing performance is not meeting user needs.