Reliable performance estimation of complex software systems requires models that are adaptable to the system’s environment and workload. Grohmann et al. present SARDE for active and endless “self-adaptive resource demand estimation in continuous environments.”
Factors such as workload, central processing units (CPUs), and disk utilization impinge on transaction processing performance. The authors review numerous previous studies on performance prediction. Though traditional statistical algorithms such as regression analysis and Kalman filtering have been useful in forecasting resource demands, the authors identify the need for estimation algorithms that can react to the appropriate data in real-time system operations. They design SARDE to continually use and fine-tune the parameters of candidate approximation algorithms, and to then select the most appropriate algorithm for dealing with the specific resource demands in a fluctuating system environment.
The SARDE implementation includes: a database for supervising the barrage of application and system resource metrics from the system under investigation; another database for stockpiling the historical records of projected resource demands; a guesstimate engine for applying constantly revised measurement streams; an optimizer for fine-tuning the estimation approaches; and a selection strategy mechanism that applies the precision of a machine learning archetype.
How accurate is SARDE? The authors analyze the effects and costs of continuous repetitions on resource demand approximation, with and without parameter optimization and selection strategy. Experimental results--“one set of micro-benchmarks reflecting different possible system states and one dataset consisting of a continuously running application in a changing environment”--reveal SARDE’s effectiveness. Unfortunately, however, the man-made online application used in the experiments is not typical of real-life applications with uncertain resource demands. Moreover, the analytical overhead results derived from limited workload samples and resource demands are not generalizable to all systems. Future work should include new algorithmic insights into making SARDE more suitable for universal applications.