Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to main content

Finding and Removing Performance Bottlenecks in Large Systems

  • Conference paper
ECOOP 2004 – Object-Oriented Programming (ECOOP 2004)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 3086))

Included in the following conference series:

Abstract

Software systems obey the 80/20 rule: aggressively optimizing a vital few execution paths yields large speedups. However, finding the vital few paths can be difficult, especially for large systems like web applications. This paper describes a novel approach to finding bottlenecks in such systems, given (possibly very large) profiles of system executions. In the approach, for each kind of profile (for example, call-tree profiles), a tool developer implements a simple profile interface that exposes a small set of primitives for selecting summaries of profile measurements and querying how summaries overlap. Next, an analyst uses a search tool, which is written to the profile interface and thus independent of the kind of profile, to find bottlenecks. Our search tool (Bottlenecks) manages the bookkeeping of the search for bottlenecks and provides heuristics that automatically suggest likely bottlenecks. In one case study, after using Bottlenecks for half an hour, one of the authors found 14 bottlenecks in IBM’s WebSphere Application Server. By optimizing some of these bottlenecks, we obtained a throughput improvement of 23% on the Trade3 benchmark. The optimizations include novel optimizations of J2EE and Java security, which exploit the high temporal and spatial redundancy of security checks.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Subscribe and save

Springer+ Basic
$34.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 84.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 109.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

Similar content being viewed by others

References

  1. Aguilera, M.K., Mogul, J.C., Wiener, J.L., Reynolds, P., Muthitacharoen, A.: Performance debugging for distributed systems of black boxes. In: Proceedings of the Nineteenth ACM Symposium on Operating Systems Principles, pp. 74–89. ACM Press, New York (2003)

    Chapter  Google Scholar 

  2. Ammons, G., Ball, T., Larus, J.R.: Exploiting hardware performance counters with flow and context sensitive profiling. In: Proceedings of the ACM SIGPLAN 1997 Conference on Programming Language Design and Implementation, pp. 85–96. ACM Press, New York (1997)

    Chapter  Google Scholar 

  3. Real-time ArcFlow, http://www.ibm.com/developerworks/oss/pi

  4. Ball, T., Larus, J.R.: Efficient path profiling. In: Proceedings of the 29th Annual ACM/IEEE International Symposium on Microarchitecture, pp. 46–57. IEEE Computer Society, Los Alamitos (1996)

    Chapter  Google Scholar 

  5. Ball, T., Larus, J.R., Rosay, G.: Analyzing path profiles with the Hot Path Browser. In: Workshop on Profile and Feedback-Directed Compilation (1998)

    Google Scholar 

  6. Ball, T., Mataga, P., Sagiv, S.: Edge profiling versus path profiling: The showdown. In: Symposium on Principles of Programming Languages, pp. 134–148 (1998)

    Google Scholar 

  7. Ball, T., Larus, J.R.: Optimally profiling and tracing programs. ACM Transactions on Programming Languages and Systems 16(3), 1319–1360 (1994)

    Article  Google Scholar 

  8. Corwin, J., Bacon, D.F., Grove, D., Murthy, C.: MJ: A rational module system for Java and its applications. In: Proceedings of the 18th ACM SIGPLAN Conference on Object-oriented Programming, Systems, Languages, and Applications, pp. 241–254. ACM Press, New York (2003)

    Chapter  Google Scholar 

  9. IBM DB2 Universal Database, http://www.ibm.com/db2

  10. De Rose, L., Reed, D.A.: SvPablo: A multi-language architectureindependent performance analysis system. In: Proceedings of the International Conference on Parallel Processing (ICPP 1999) (September 1999)

    Google Scholar 

  11. Fields, B.A., Bodík, R., Hill, M.D., Newburn, C.J.: Using interaction costs for microarchitectural bottleneck analysis. In: Proceedings of the 36th Annual IEEE/ACM International Symposium on Microarchitecture (MICRO-36), December 2003, pp. 228–242 (2003)

    Google Scholar 

  12. Hall, R.J.: Call path refinement profiles. IEEE Transactions on Software Engineering 21(6), 481–496 (1995)

    Article  Google Scholar 

  13. Hall, R.J.: CPPROFJ: Aspect-capable call path profiling of multi-threaded Java applications. In: Proceedings of the 17th IEEE International Conference on Automated Software Engineering (ASE 2002), September 2002, pp. 107–116 (2002)

    Google Scholar 

  14. Java 2 Platform, Enterprise Edition (J2EE), http://java.sun.com/j2ee

  15. Java 2 Platform, Standard Edition (J2SE), http://java.sun.com/j2se

  16. Juran, J.M., Godfrey, A.B. (eds.): Juran’s Quality Handbook, 5th edn. McGraw-Hill, New York (1999)

    Google Scholar 

  17. Larus, J.R.: Whole program paths. In: Proceedings of the ACM SIGPLAN 1999 Conference on Programming Language Design and Implementation, pp. 259–269. ACM Press, New York (1999)

    Chapter  Google Scholar 

  18. IBM Tivoli Directory Server, http://www.ibm.com/tivoli

  19. McCabe, T.J., Schulmeyer, G.G.: The Pareto Principle Applied to Software Quality Assurance. In: Handbook of Software Quality Assurance, pp. 178–210. Van Nostrand Reinhold Company (1987)

    Google Scholar 

  20. Mellor-Crummey, J., Fowler, R., Marin, G., Tallent, N.: HPCView: A tool for top-down analysis of node performance. The Journal of SuperComputing 23, 81–101 (2002)

    Article  MATH  Google Scholar 

  21. Melski, D., Reps, T.W.: Interprocedural path profiling. In: Computational Complexity, pp. 47–62 (1999)

    Google Scholar 

  22. Miller, B.P., Callaghan, M.D., Cargille, J.M., Hollingsworth, J.K., Irvin, R.B., Karavanic, K.L., Kunchithapadam, K., Newhall, T.: The Paradyn parallel performance measurement tool. IEEE Computer 28(11), 37–46 (1995)

    Google Scholar 

  23. Objective Caml, http://www.ocaml.org

  24. O’Callahan, R., Marinov, D.: Object equality profiling. In: Proceedings of the 18th ACM SIGPLAN Conference on Object-oriented Programming, Systems, Languages, and Applications (OOPSLA 2003), October 2003, pp. 313–325 (2003)

    Google Scholar 

  25. Red Hat Linux, http://www.redhat.com

  26. Roth, P.C., Miller, B.P.: Deep start: A hybrid strategy for automated performance searches. In: Monien, B., Feldmann, R.L. (eds.) Euro-Par 2002. LNCS, vol. 2400, p. 86. Springer, Heidelberg (2002)

    Chapter  Google Scholar 

  27. Sevitsky, G., De Pauw, W., Konuru, R.: An information exploration tool for performance analysis of Java programs. In: Proceedings of TOOLS Europe (2001)

    Google Scholar 

  28. SPECjAppServer2002, http://www.specbench.org/jAppServer2002

  29. IBM Trade3 J2EE Benchmark Application, http://www.ibm.com

  30. WebSphere Application Server, http://www.ibm.com/websphere

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2004 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Ammons, G., Choi, JD., Gupta, M., Swamy, N. (2004). Finding and Removing Performance Bottlenecks in Large Systems. In: Odersky, M. (eds) ECOOP 2004 – Object-Oriented Programming. ECOOP 2004. Lecture Notes in Computer Science, vol 3086. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-24851-4_8

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-24851-4_8

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-22159-3

  • Online ISBN: 978-3-540-24851-4

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics