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.
- 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. Google Scholar
Digital Library
- 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. Google Scholar
Digital Library
- D. H. Bailey. Little's law and high performance computing. Technical report, In RNR Technical Report, 1997.Google Scholar
- F. Brosig, S. Kounev, and K. Krogmann. Automated extraction of palladio component models from running enterprise java applications. In VALUETOOLS, 2009. Google Scholar
Digital Library
- E. M. Goldratt. Theory of Constraints. North River Press, 1999.Google Scholar
- L. Grinshpan. Multi-tiered applications sizing methodology based on load testing and queuing network models. In Int. CMG Conference. Computer Measurement Group, 2008.Google Scholar
- N. Gunther. Guerrilla Capacity Planning: A Tactical Approach to Planning for Highly Scalable Applications and Services. Springer, 2006. Google Scholar
Digital Library
- 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. Google Scholar
Digital Library
- J. Hunter and W. Crawford. Java servlet programming. O'Reilly, Beijing, 1998. Google Scholar
Digital Library
- 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. Google Scholar
Digital Library
- 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. Google Scholar
Digital Library
- 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. Google Scholar
Digital Library
- S. Kraft, S. Pacheco-Sanchez, G. Casale, and S. Dawson. Estimating service resource consumption from response time measurements. In VALUETOOLS, 2009. Google Scholar
Digital Library
- E. D. Lazowska, J. Zahorjan, G. S. Graham, and K. C. Sevcik. Quantitative System Performance. Prentice-Hall, 1984. Google Scholar
Digital Library
- J. D. C. Little. A proof for the queueing formula: L = W. Operations Research, 9(3):383--387, 1961.Google Scholar
Digital Library
- 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. Google Scholar
Digital Library
- G. Pacifici, W. Segmuller, M. Spreitzer, and A. Tantawi. Dynamic estimation of cpu demand of web traffic. In VALUETOOLS, 2006. Google Scholar
Digital Library
- J. L. Peterson. Petri Net Theory and the Modeling of Systems. Prentice Hall, 1981. Google Scholar
Digital Library
- 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. Google Scholar
Digital Library
- V. Singh. System Modeling and Simulation. New Age International, 2009.Google Scholar
- TeamQuest. TeamQuest Model software.Google Scholar
- B. Urgaonkar, G. Pacifici, P. Shenoy, M. Spreitzer, and A. Tantawi. Analytic modeling of multitier internet applications. ACM Trans. Web, 1(1), May 2007. Google Scholar
Digital Library
- Borland Software Corporation. OptimizeItTM Suite.Google Scholar
- Compuware. Compuware Vantage Analyzer.Google Scholar
- IBM. Thread and Monitor Dump Analyzer for Java. http://www.alphaworks.ibm.com/tech/jca.Google Scholar
- Sun Microsystems. HPROF JVM profiler. http://java.sun.com/developer/technicalArticles/Programming/HPROF.html, 2005.Google Scholar
- Yourkit LLC. Yourkit profiler.Google Scholar
- L. Zhu, Y. Liu, N. B. Bui, and I. Gorton. Revel8or: Model driven capacity planning tool suite. In ICSE, 2007. Google Scholar
Digital Library
Index Terms
On-the-fly capacity planning
Recommendations
On-the-fly capacity planning
OOPSLA '13: Proceedings of the 2013 ACM SIGPLAN international conference on Object oriented programming systems languages & applicationsWhen 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 ...
Capacity-driven production planning
Highlights- Combination of MRP, capacity planning and capacity adjustment.
- (Semi-)automatic ...
AbstractTraditional material requirements planning systems (MRP) schedule production orders for on-demand items without considering limited capacities of production resources. This article introduces a production planning approach which also ...







Comments