ABSTRACT
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 more 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.
- Aguilera, M. K., Mogul, J. C., Wiener, J. L., Reynolds, P., and Muthitacharoen, A. Performance Debugging for Distributed Systems of Black Boxes. In SOSP’03 (Bolton Landing, NY, 2003), pp. 74--89. Google ScholarDigital Library
- Bahl, P., Chandra, R., Greenberg, A., Kandula, S., Maltz, D. A., and Zhang, M. Towards Highly Reliable Enterprise Network Services via Inference of Multi-level Dependencies. In SIGCOMM '07 (Kyoto, Japan, 2007), ACM, pp. 13--24. Google ScholarDigital Library
- Barham, P., Donnelly, A., Isaacs, R., and Mortier, R. Using Magpie for Request Extraction and Workload Modelling. In OSDI’04 (San Francisco, CA, 2004), pp. 259--272. Google ScholarDigital Library
- Basie Project. A simpler software project forge. http://basieproject.org/.Google Scholar
- Cantrill, B. M., Shapiro, M. W., and Leventhal, A. H. Dynamic Instrumentation of Production Systems. In USENIX’04 (Boston, MA, June 2004), pp. 15--28. Google ScholarDigital Library
- Chanda, A., Cox, A. L., and Zwaenepoel, W. Whodunit: Transactional Profiling for Multi-Tier Applications. In EuroSys’07 (Lisbon, Portugal, 2007), pp. 17--30. Google ScholarDigital Library
- Chen, M. Y., Kiciman, E., Fratkin, E., Fox, A., and Brewer, E. Pinpoint: Problem Determination in Large, Dynamic Internet Services. In Intl. Conf. on Dependable Systems and Networks (Bethesda, MD, June 2002), pp. 595--604. Google ScholarDigital Library
- Crockford, D. Introducing JSON. http://www.json.org/.Google Scholar
- Endo, Y., Wang, Z., Chen, J. B., and Seltzer, M. Using Latency to Evaluate Interactive System Performance. In OSDI’96 (Seattle, WA, October 1996), pp. 185--199. Google ScholarDigital Library
- Feldmann, A. BLT: Bi-layer Tracing of HTTP and TCP/IP. In 9th international World Wide Web conference on Computer networks (Amsterdam, The Netherlands, 2000), pp. 321--335. Google ScholarDigital Library
- Fidge, C. J. Timestamps in Message-Passing Systems That Preserve the Partial Ordering. Australian Computer Science Communications 10, 1 (February 1998), 56--66.Google Scholar
- Fonseca, R., Freedman, M., and Porter, G. Experiences with Tracing Causality in Networked Services. In INM/WREN (San Jose, CA, Apr. 2010). Google ScholarDigital Library
- Fonseca, R., Porter, G., Katz, R. H., Shenker, S., and Stoica, I. X-trace: A Pervasive Network Tracing Framework. In NSDI’07 (Cambridge, MA, 2007), pp. 271--284. Google ScholarDigital Library
- Fu, Y., Cherkasova, L., Tang, W., and Vahdat, A. EtE: Passive End-to-End Internet Service Performance Monitoring. In USENIX’02 (Monterey, CA, June 2002), pp. 115--130. Google ScholarDigital Library
- Gschwind, T., Eshghi, K., Garg, P. K., and Wurster, K. Webmon: A Performance Profiler for Web Transactions. In WECWIS '02 (Newport Beach, CA, June 2002), IEEE Computer Society, pp. 171--177. Google ScholarDigital Library
- Hellerstein, J. L., Maccabee, M. M., III, W. N. M., and Turek, J. J. ETE: A Customizable Approach to Measuring End-to-End Response Times and Their Components in Distributed Systems. In ICDCS’99 (Austin, TX, 1999), pp. 152--162. Google ScholarDigital Library
- Ippolito, B. Remote JSON - JSONP. http://bob.pythonmac.org/archives/2005/12/05/remote-json-jsonp/.Google Scholar
- Isaacs, R., and Barham, P. Performance Analysis in Loosely-Coupled Distributed Systems. In 7th Cabernet Radicals Workshop (Bertinoro, Italy, October 2002).Google Scholar
- Jones, M. B., and Regehr, J. The Problems You’re Having May Not Be the Problems You Think You’re Having: Results from a Latency Study of Windows NT. In HOTOS’99 (Rio Rico, AZ, 1999), pp. 96--101. Google ScholarDigital Library
- Kiciman, E., and Livshits, B. AjaxScope: A Platform for Remotely Monitoring the Client-side Behavior of Web 2.0 Applications. In SOSP’07 (Stevenson, WA, October 2007), pp. 17--30. Google ScholarDigital Library
- Kiczales, G., Hilsdale, E., Hugunin, J., Palm, M. K. J., and Griswold, W. G. An Overview of AspectJ. In ECOOP’01 (Budapest, Hungary, 2001), pp. 327--353. Google ScholarDigital Library
- Mills, D. L. RFC-1129: Internet Time Synchronization: the Network Time Protocol, October 1989.Google Scholar
- Mozilla Foundation. Mozilla Developer Center / Monitoring HTTP Activity. https://developer.mozilla.org/en/Monitoring_HTTP_activity.Google Scholar
- Mozilla Foundation. Mozilla Developer Center / Observer Notifications. https://developer.mozilla.org/en/Observer_Notifications.Google Scholar
- Paulson, L. Building Rich Web Applications with Ajax. In IEEE Computer (October 2005), vol. 38--10, pp. 14--17. Google ScholarDigital Library
- Python Software Foundation. The Python Profilers. http://docs.python.org/library/profile.html.Google Scholar
- Sigelman, B. H., Barroso, L. A., Burrows, M., Stephenson, P., Plakal, M., Beaver, D., Jaspan, S., and Shanbhag, C. Dapper, a Large-Scale Distributed Systems Tracing Infrastructure. Tech. rep., Google Research, apr 2010.Google Scholar
- Smith, K. D., Jewett, J. J., Montanaro, S., and Baxter, A. PEP-318 - Decorators for Functions and Methods. http://www.python.org/dev/peps/pep-0318/.Google Scholar
- Thereska, E., Salmon, B., Strunk, J., Wachs, M., Abd-El-Malek, M., Lopez, J., and Ganger, G. R. Stardust: Tracking Activity in a Distributed Storage System. In SIGMETRICS’06 (Saint Malo, France, 2006), pp. 3--14. Google ScholarDigital Library
- Washizaki, H., Kubo, A., Mizumachi, T., Eguchi, K., Fukazawa, Y., Yoshioka, N., Kanuka, H., Kodaka, T., Sugimoto, N., Nagai, Y., and Yamamoto, R. AOJS: Aspect-Oriented Javascript Programming Framework for Web Development. In ACP4IS’09 (Charlottesville, VA, 2009), pp. 31--36. Google ScholarDigital Library
Index Terms
- MT-WAVE: profiling multi-tier web applications
Recommendations
MT-WAVE: profiling multi-tier web applications (abstracts only)
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 ...
Comments