Single Workload Performance Prediction for CPU-Bound Applications
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current performance prediction methods for multi-tiered web applications are inefficient due to the need for lengthy load testing, high licensing costs, and inaccuracies in predicting service demands, especially under varying workloads and hardware architectures, which is problematic in DevOps and agile delivery paradigms.
Innovation Solution
A method and system for predicting performance using a single workload, which involves identifying concurrency ranges, capturing CPU performance metrics, generating service demands, and updating these metrics based on throughput, allowing for accurate performance modeling with reduced testing time and costs.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If standard load testing tools (HP Loadrunner, IBM Rational Performance Tester) are used for performance prediction, then measurement precision is improved, but device complexity and loss of time worsen due to expensive licensing costs and 4-12 weeks testing duration
Solution Approach 1:
The system performs preliminary service demand characterization during normal operation using performance counters and monitoring mechanisms. By collecting and analyzing service demand data in advance during standard workload execution, the system eliminates the need for lengthy dedicated load testing phases, reducing testing duration from 4-12 weeks to a fraction of that time while maintaining prediction accuracy
Solution Approach 2:
The system creates a virtual model of the application's service demands by copying and analyzing performance counter data from normal operation. This virtual model can then be used for performance prediction without requiring physical load testing infrastructure, eliminating licensing costs and reducing time requirements while preserving measurement precision
2Productivity
If MVA algorithms are used for performance prediction, then productivity is improved by avoiding lengthy load tests, but measurement precision worsens due to inaccurate service demand sampling
Solution Approach 1:
The system implements feedback mechanisms that continuously monitor performance counters and service demand metrics during normal operation. This feedback loop allows the system to dynamically adjust and refine service demand characterizations, ensuring accurate data is available for MVA algorithms without requiring separate load testing phases, thus maintaining both productivity and measurement precision
3Measurement precision
If load tests at higher concurrency are performed to capture varying service demands, then measurement precision is improved, but loss of time and device complexity worsen due to extended testing requirements
Solution Approach 1:
The system designs performance monitoring mechanisms that serve multiple functions: they collect service demand data during normal operation, characterize performance counters for various workload conditions, and provide input for performance prediction algorithms. This multi-functional approach eliminates the need for separate dedicated load testing infrastructure, reducing device complexity while maintaining the ability to capture service demand variations across different concurrency levels
Data Source
AI summary
Systems and methods for service demand based performance prediction using a single workload is provided to eliminate need for load testing. The process involves identifying a range of concurrencies for the application under test; capturing a single workload pertaining to the application under test; and iteratively performing for the identified range of concurrencies: generating an array of one or more predefined CPU performance metrics based on the captured single workload; generating an array of service demands based on the captured single workload and the generated array of the one or more pre-defined CPU performance metrics; computing an array of throughput based on the generated array of service demands; and updating the generated array of the one or more pre-defined CPU performance metrics based on the computed array of throughput.


