Self-managing computing systems four key characteristics. One of them is to be self-optimizing, which is tuning the resources and balancing the workloads to maximize the use of the IT resources. Performance modeling provides a foundation for the design and development of self-optimizing computer systems.
We are developing technologies for deriving mathematical and simulation models of complex computer systems from actual measurements. The objective is to forecast and optimize performance by using these technologies. The following three steps are executed repeatedly.
- Monitor target computing systems and determine the bottlenecks.
- Simulate the possibilities by changing the configurations and forecasting the performance.
- Verify that the performance problems are solved.
This research is aimed at building an autonomic system that adaptively optimizes itself for a dynamically changing workload and environment.
Factors which have an impact on performance can be put into five main categories.
- Workload (traffic volume, transaction mix, etc.)
- Server configuration (number of threads, number of connections, etc.)
- Applications (transaction flow, resource usage, etc.)
- Resources (CPUs, disks, etc.)
- Topology (network configuration, etc.)
We choose some of these parameters and optimize the performance. The scope of our research covers performance analysis by using the following modeling techniques:
- Simulation Modeling
To model end-to-end computing systems by using discrete event simulations and analyzing their performance.
- Queueing Modeling
To model a computing system or component as a queue and analyze its performance.
- Statistical Modeling
To derive a statistical model from observable data and analyze its performance.