Quantitative system performance: computer system analysis using queueing network models
Quantitative system performance: computer system analysis using queueing network models
Java servlet programming
Petri Net Theory and the Modeling of Systems
Petri Net Theory and the Modeling of Systems
A unifying approach to performance analysis in the Java environment
IBM Systems Journal
Parameter inference of queueing models for IT systems using end-to-end measurements
Performance Evaluation
Dynamic estimation of CPU demand of web traffic
valuetools '06 Proceedings of the 1st international conference on Performance evaluation methodolgies and tools
Guerrilla Capacity Planning: A Tactical Approach to Planning for Highly Scalable Applications and Services
Analytic modeling of multitier Internet applications
ACM Transactions on the Web (TWEB)
Revel8or: Model Driven Capacity Planning Tool Suite
ICSE '07 Proceedings of the 29th international conference on Software Engineering
Open versus closed: a cautionary tale
NSDI'06 Proceedings of the 3rd conference on Networked Systems Design & Implementation - Volume 3
Automated extraction of palladio component models from running enterprise Java applications
Proceedings of the Fourth International ICST Conference on Performance Evaluation Methodologies and Tools
Estimating service resource consumption from response time measurements
Proceedings of the Fourth International ICST Conference on Performance Evaluation Methodologies and Tools
Performance analysis of idle programs
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Automated simulation-based capacity planning for enterprise data fabrics
Proceedings of the 4th International ICST Conference on Simulation Tools and Techniques
Statistical inference of software performance models for parametric performance completions
QoSA'10 Proceedings of the 6th international conference on Quality of Software Architectures: research into Practice - Reality and Gaps
Self-Adaptive Cloud Capacity Planning
SCC '12 Proceedings of the 2012 IEEE Ninth International Conference on Services Computing
Hi-index | 0.00 |
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.