Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/1869459.1869519acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
research-article

Performance analysis of idle programs

Published: 17 October 2010 Publication History

Abstract

This paper presents an approach for performance analysis of modern enterprise-class server applications. In our experience, performance bottlenecks in these applications differ qualitatively from bottlenecks in smaller, stand-alone systems. Small applications and benchmarks often suffer from CPU-intensive hot spots. In contrast, enterprise-class multi-tier applications often suffer from problems that manifest not as hot spots, but as idle time, indicating a lack of forward motion. Many factors can contribute to undesirable idle time, including locking problems, excessive system-level activities like garbage collection, various resource constraints, and problems driving load.
We present the design and methodology for WAIT, a tool to diagnosis the root cause of idle time in server applications. Given lightweight samples of Java activity on a single tier, the tool can often pinpoint the primary bottleneck on a multi-tier system. The methodology centers on an informative abstraction of the states of idleness observed in a running program. This abstraction allows the tool to distinguish, for example, between hold-ups on a database machine, insufficient load, lock contention in application code, and a conventional bottleneck due to a hot method. To compute the abstraction, we present a simple expert system based on an extensible set of declarative rules.
WAIT can be deployed on the fly, without modifying or even restarting the application. Many groups in IBM have applied the tool to diagnosis performance problems in commercial systems, and we present a number of examples as case studies.

References

[1]
}}M. K. Aguilera, J. C. Mogul, J. L. Wiener, P. Reynolds, and A. Muthitacharoen. Performance debugging for distributed systems of black boxes. In Symposium on Operating System Principles. ACM, 2003.
[2]
}}W. P. Alexander, R. F. Berry, F. E. Levine, and R. J. Urquhart. A unifying approach to performance analysis in the java environment. IBM Systems Journal, 39(1), 2000.
[3]
}}G. Ammons, J.-D. Choi, M. Gupta, and N. Swamy. Finding and removing performance bottlenecks in large systems. In The European Conference on Object-Oriented Programming. Springer, 2004.
[4]
}}B. Darmawan, R. Gummadavelli, S. Kuppusamy, C. Tan, D. Rintoul, H. Anglin, H. Chuan, A. Subhedar, A. Firtiyan, P. Nambiar, P. Lall, R. Dhall, and R. Pires. IBM Tivoli Composite Application Manager Family: Installation, Configuration, and Basic Usage. http://www.redbooks.ibm.com/abstracts/sg247151.html?Open.
[5]
}}W. De Pauw, E. Jensen, N. Mitchell, G. Sevitsky, J. Vlissides, and J. Yang. Visualizing the execution of Java programs. In Software Visualization, State-of-the-art Survey, volume 2269 of Lecture Notes in Computer Science. Springer-Verlag, 2002.
[6]
}}R. J. Hall. Cpprofj: Aspect-capable call path profiling of multi-threaded java applications. In Automated Software Engineering, pages 107--116. IEEE Computer Society Press, 2002.
[7]
}}J. K. Hollingsworth. Finding Bottlenecks in Large-scale Parallel Programs. PhD thesis, University of Wisconsin, Aug. 1994.
[8]
}}E. W. Host and B. M. Ostvold. Debugging method names. In The European Conference on Object-Oriented Programming. Springer, 2009.
[9]
}}N. Mitchell, G. Sevitsky, and H. Srinivasan. Modeling runtime behavior in framework-based applications. The European Conference on Object-Oriented Programming, 2006.
[10]
}}K. Srinivas and H. Srinivasan. Summarizing application performance from a components perspective. Foundations of Software Engineering, 30(5):136--145, 2005.
[11]
}}Borland Software Corporation. OptimizeItTM Enterprise Suite. http://www.borland.com/us/products/optimizeit, 2005.
[12]
}}Compuware. Compuware Vantage Analyzer. http://www.compuware.com/solutions/e2e brochures factsheets.asp.
[13]
}}Eclipse. Eclipse Test & Performance Tools Platform Project. http://www.eclipse.org/tptp.
[14]
}}HP. HP Diagnostics for J2EE.
[15]
}}IBM. Compuware Vantage Analyzer. http://alphaworks.ibm.com/tech/dcva4j/download.
[16]
}}IBM. IBM OMEGAMON XE for WebSphere. http://www-01.ibm.com/software/tivoli/products/omegamon-xe-was.
[17]
}}IBM. Thread and Monitor Dump Analyzer for Java. http://www.alphaworks.ibm.com/tech/jca.
[18]
}}IBM. Tivoli Monitoring for Transaction Performance. http://www-01.ibm.com/software/tivoli/products/monitor-transaction.
[19]
}}Sun Microsystems. HPROF JVM profiler. http://java.sun.com/developer/technicalArticles/Programming/HPROF.html, 2005.
[20]
}}Yourkit LLC. Yourkit profiler. http://www.yourkit.com.
[21]
}}G. Xu, M. Arnold, N. Mitchell, A. Rountev, and G. Sevitsky. Go with the flow: profiling copies to find runtime bloat. In PLDI '09: Proceedings of the 2009 ACM SIGPLAN conference on Programming language design and implementation, pages 419--430, New York, NY, USA, 2009. ACM.
[22]
}}W. Xu, L. Huang, A. Fox, D. Patterson, and M. I. Jordan. Detecting large-scale system problems by mining console logs. In Symposium on Operating System Principles. ACM, 2009.
[23]
}}D. Yuan, H. Mai, W. Xiong, L. Tan, Y. Zhou, and S. Pasupathy. Sherlog: Error diagnosis by connecting clues from run-time logs. In Architectural Support for Programming Languages and Operating Systems, Mar. 2010.
[24]
}}Y. Zhao, J. Shi, K. Zheng, H. Wang, H. Lin, and L. Shao. Allocation wall: a limiting factor of java applications on emerging multi-core platforms. In OOPSLA '09: Proceeding of the 24th ACM SIGPLAN conference on Object oriented programming systems languages and applications, pages 361--376, New York, NY, USA, 2009. ACM.

Cited By

View all
  • (2023)Adapting Performance Analytic Techniques in a Real-World Database-Centric System: An Industrial Experience ReportProceedings of the 31st ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering10.1145/3611643.3613893(1855-1866)Online publication date: 30-Nov-2023
  • (2023)Performance Bug Analysis and Detection for Distributed Storage and Computing SystemsACM Transactions on Storage10.1145/358028119:3(1-33)Online publication date: 19-Jun-2023
  • (2022)Performance evaluation of complex multi-thread applications through execution path analysisPerformance Evaluation10.1016/j.peva.2022.102289155-156(102289)Online publication date: Jun-2022
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
OOPSLA '10: Proceedings of the ACM international conference on Object oriented programming systems languages and applications
October 2010
984 pages
ISBN:9781450302036
DOI:10.1145/1869459
  • cover image ACM SIGPLAN Notices
    ACM SIGPLAN Notices  Volume 45, Issue 10
    OOPSLA '10
    October 2010
    957 pages
    ISSN:0362-1340
    EISSN:1558-1160
    DOI:10.1145/1932682
    Issue’s Table of Contents
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 17 October 2010

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. bottlenecks
  2. idle time
  3. multi-tier server applications
  4. performance analysis

Qualifiers

  • Research-article

Conference

SPLASH '10
Sponsor:

Acceptance Rates

Overall Acceptance Rate 268 of 1,244 submissions, 22%

Upcoming Conference

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)18
  • Downloads (Last 6 weeks)8
Reflects downloads up to 16 Oct 2024

Other Metrics

Citations

Cited By

View all
  • (2023)Adapting Performance Analytic Techniques in a Real-World Database-Centric System: An Industrial Experience ReportProceedings of the 31st ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering10.1145/3611643.3613893(1855-1866)Online publication date: 30-Nov-2023
  • (2023)Performance Bug Analysis and Detection for Distributed Storage and Computing SystemsACM Transactions on Storage10.1145/358028119:3(1-33)Online publication date: 19-Jun-2023
  • (2022)Performance evaluation of complex multi-thread applications through execution path analysisPerformance Evaluation10.1016/j.peva.2022.102289155-156(102289)Online publication date: Jun-2022
  • (2021)Locating Performance Regression Root Causes in the Field Operations of Web-based Systems: An Experience ReportIEEE Transactions on Software Engineering10.1109/TSE.2021.3131529(1-1)Online publication date: 2021
  • (2020)GAPP: A Fast Profiler for Detecting Serialization Bottlenecks in Parallel Linux ApplicationsProceedings of the ACM/SPEC International Conference on Performance Engineering10.1145/3358960.3379136(257-264)Online publication date: 20-Apr-2020
  • (2020)Butterfly Space: An Architectural Approach for Investigating Performance Issues2020 IEEE International Conference on Software Architecture (ICSA)10.1109/ICSA47634.2020.00027(202-213)Online publication date: Mar-2020
  • (2020)Localizing software performance regressions in web applications by comparing execution timelinesSoftware Testing, Verification and Reliability10.1002/stvr.175031:5Online publication date: 11-Aug-2020
  • (2019)Fork/Wait and Multicore Frequency ScalingProceedings of the 10th Workshop on Programming Languages and Operating Systems10.1145/3365137.3365400(53-59)Online publication date: 27-Oct-2019
  • (2019)Profile-based Detection of Layered BottlenecksProceedings of the 2019 ACM/SPEC International Conference on Performance Engineering10.1145/3297663.3310296(197-208)Online publication date: 4-Apr-2019
  • (2019)Using Differential Execution Analysis to Identify Thread InterferenceIEEE Transactions on Parallel and Distributed Systems10.1109/TPDS.2019.292748130:12(2866-2878)Online publication date: 1-Dec-2019
  • Show More Cited By

View Options

Get Access

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media