skip to main content
research-article

On-the-fly capacity planning

Published: 29 October 2013 Publication History

Abstract

When resolving performance problems, a simple histogram of hot call stacks does not cut it, especially given the highly fluid nature of modern deployments. Why bother tuning, when adding a few CPUs via the management console will quickly resolve the problem? The findings of these tools are also presented without any sense of context: e.g. string conversion may be expensive, but only matters if it contributes greatly to the response time of user logins.
Historically, these concerns have been the purview of capacity planning. The power of planners lies in their ability to weigh demand versus capacity, and to do so in terms of the important units of work in the application (such as user logins). Unfortunately, they rely on measurements of rates and latencies, and both quantities are difficult to obtain. Even if possible, when all is said and done, these planners only relate to the code as a black-box: but, why bother adding CPUs, when easy code changes will fix the problem?
We present a way to do planning on-the-fly: with a few call stack samples taken from an already-running system, we predict the benefit of a proposed tuning plan. We accomplish this by simulating the effect of a tuning action upon execution speed and the way it shifts resource demand. To identify existing problems, we show how to generate tuning actions automatically, guided by the desire to maximize speedup without needless expense, and that these generated plans may span resource and code changes. We show that it is possible to infer everything needed from these samples alone: levels of resource demand and the units of work in the application. We evaluate our planner on a suite of microbenchmarks and a suite of 15,000 data sets that come from real applications running in the wild.

References

[1]
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.
[2]
E. Altman, M. Arnold, S. Fink, and N. Mitchell. Performance analysis of idle programs. In Object-oriented Programming, Systems, Languages, and Applications, pages 739--753, 2010.
[3]
D. H. Bailey. Little's law and high performance computing. Technical report, In RNR Technical Report, 1997.
[4]
F. Brosig, S. Kounev, and K. Krogmann. Automated extraction of palladio component models from running enterprise java applications. In VALUETOOLS, 2009.
[5]
E. M. Goldratt. Theory of Constraints. North River Press, 1999.
[6]
L. Grinshpan. Multi-tiered applications sizing methodology based on load testing and queuing network models. In Int. CMG Conference. Computer Measurement Group, 2008.
[7]
N. Gunther. Guerrilla Capacity Planning: A Tactical Approach to Planning for Highly Scalable Applications and Services. Springer, 2006.
[8]
J. Happe, D.Westermann, K. Sachs, and L. Kapov. Statistical inference of software performance models for parametric performance completions. In Research into Practice Reality and Gaps, volume 6093, pages 20--35. 2010.
[9]
J. Hunter and W. Crawford. Java servlet programming. O'Reilly, Beijing, 1998.
[10]
Y. Jiang, C. shing Perng, T. Li, and R. Chang. Self-adaptive cloud capacity planning. In IEEE International Conference on Services Computing (SCC), pages 73--80, June 2012.
[11]
S. Kounev, K. Bender, F. Brosig, N. Huber, and R. Okamoto. Automated simulation-based capacity planning for enterprise data fabrics. In International ICST Conference on Simulation Tools and Techniques, pages 27--36, 2011.
[12]
S. Kounev and A. Buchmann. Simqpn: a tool and methodology for analyzing queueing petri net models by means of simulation. Perform. Eval., 63(4):364--394, May 2006.
[13]
S. Kraft, S. Pacheco-Sanchez, G. Casale, and S. Dawson. Estimating service resource consumption from response time measurements. In VALUETOOLS, 2009.
[14]
E. D. Lazowska, J. Zahorjan, G. S. Graham, and K. C. Sevcik. Quantitative System Performance. Prentice-Hall, 1984.
[15]
J. D. C. Little. A proof for the queueing formula: L = W. Operations Research, 9(3):383--387, 1961.
[16]
Z. Liu, L. Wynter, C. H. Xia, and F. Zhang. Parameter inference of queueing models for it systems using end-to-end measurements. Perform. Eval., 63(1):36--60, Jan. 2006.
[17]
G. Pacifici, W. Segmuller, M. Spreitzer, and A. Tantawi. Dynamic estimation of cpu demand of web traffic. In VALUETOOLS, 2006.
[18]
J. L. Peterson. Petri Net Theory and the Modeling of Systems. Prentice Hall, 1981.
[19]
B. Schroeder, A. Wierman, and M. Harchol-Balter. Open versus closed: a cautionary tale. In Proceedings of the 3rd conference on Networked Systems Design & Implementation - Volume 3, NSDI'06, pages 18--18, Berkeley, CA, USA, 2006. USENIX Association.
[20]
V. Singh. System Modeling and Simulation. New Age International, 2009.
[21]
TeamQuest. TeamQuest Model software.
[22]
B. Urgaonkar, G. Pacifici, P. Shenoy, M. Spreitzer, and A. Tantawi. Analytic modeling of multitier internet applications. ACM Trans. Web, 1(1), May 2007.
[23]
Borland Software Corporation. OptimizeItTM Suite.
[24]
Compuware. Compuware Vantage Analyzer.
[25]
IBM. Thread and Monitor Dump Analyzer for Java. http://www.alphaworks.ibm.com/tech/jca.
[26]
Sun Microsystems. HPROF JVM profiler. http://java.sun.com/developer/technicalArticles/Programming/HPROF.html, 2005.
[27]
Yourkit LLC. Yourkit profiler.
[28]
L. Zhu, Y. Liu, N. B. Bui, and I. Gorton. Revel8or: Model driven capacity planning tool suite. In ICSE, 2007.

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM SIGPLAN Notices
ACM SIGPLAN Notices  Volume 48, Issue 10
OOPSLA '13
October 2013
867 pages
ISSN:0362-1340
EISSN:1558-1160
DOI:10.1145/2544173
Issue’s Table of Contents
  • cover image ACM Conferences
    OOPSLA '13: Proceedings of the 2013 ACM SIGPLAN international conference on Object oriented programming systems languages & applications
    October 2013
    904 pages
    ISBN:9781450323741
    DOI:10.1145/2509136
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]

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 29 October 2013
Published in SIGPLAN Volume 48, Issue 10

Check for updates

Author Tags

  1. capacity planning
  2. expert system
  3. inference
  4. performance tuning

Qualifiers

  • Research-article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)1
  • Downloads (Last 6 weeks)0
Reflects downloads up to 23 Dec 2024

Other Metrics

Citations

Cited By

View all

View Options

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