skip to main content
10.1145/1958746.1958783acmconferencesArticle/Chapter ViewAbstractPublication PagesicpeConference Proceedingsconference-collections
abstract

MT-WAVE: profiling multi-tier web applications

Published:30 September 2011Publication History

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.

References

  1. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  2. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  3. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  4. Basie Project. A simpler software project forge. http://basieproject.org/.Google ScholarGoogle Scholar
  5. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  6. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  7. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  8. Crockford, D. Introducing JSON. http://www.json.org/.Google ScholarGoogle Scholar
  9. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  10. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  11. Fidge, C. J. Timestamps in Message-Passing Systems That Preserve the Partial Ordering. Australian Computer Science Communications 10, 1 (February 1998), 56--66.Google ScholarGoogle Scholar
  12. Fonseca, R., Freedman, M., and Porter, G. Experiences with Tracing Causality in Networked Services. In INM/WREN (San Jose, CA, Apr. 2010). Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  14. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  15. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  16. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  17. Ippolito, B. Remote JSON - JSONP. http://bob.pythonmac.org/archives/2005/12/05/remote-json-jsonp/.Google ScholarGoogle Scholar
  18. Isaacs, R., and Barham, P. Performance Analysis in Loosely-Coupled Distributed Systems. In 7th Cabernet Radicals Workshop (Bertinoro, Italy, October 2002).Google ScholarGoogle Scholar
  19. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  20. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  21. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  22. Mills, D. L. RFC-1129: Internet Time Synchronization: the Network Time Protocol, October 1989.Google ScholarGoogle Scholar
  23. Mozilla Foundation. Mozilla Developer Center / Monitoring HTTP Activity. https://developer.mozilla.org/en/Monitoring_HTTP_activity.Google ScholarGoogle Scholar
  24. Mozilla Foundation. Mozilla Developer Center / Observer Notifications. https://developer.mozilla.org/en/Observer_Notifications.Google ScholarGoogle Scholar
  25. Paulson, L. Building Rich Web Applications with Ajax. In IEEE Computer (October 2005), vol. 38--10, pp. 14--17. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Python Software Foundation. The Python Profilers. http://docs.python.org/library/profile.html.Google ScholarGoogle Scholar
  27. 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 ScholarGoogle Scholar
  28. 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 ScholarGoogle Scholar
  29. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  30. 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 ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. MT-WAVE: profiling multi-tier web applications

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in
    • Published in

      cover image ACM Conferences
      ICPE '11: Proceedings of the 2nd ACM/SPEC International Conference on Performance engineering
      March 2011
      470 pages
      ISBN:9781450305198
      DOI:10.1145/1958746

      Copyright © 2011 Authors

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 30 September 2011

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • abstract

      Acceptance Rates

      Overall Acceptance Rate252of851submissions,30%
    • Article Metrics

      • Downloads (Last 12 months)1
      • Downloads (Last 6 weeks)0

      Other Metrics

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader