Part 1: Performance analysis and predictions

Analyzing the performance and scalability of a system at design time is a guarantee to reduce the rework and the resultant cost to a great extent. Treating performance as an after-thought would generally lead to restructuring the architecture, project cost overruns, project failure and frustration. The performance of the software systems are mainly depends on access to the resources, they are processor, disk, communication links, process threads and database locks. The event that triggers access to the resources is called requests. Transactions, client application requests, web requests and scheduled jobs are all a kind of requests. How to measure the software system performance

When the software system receives concurrent requests it builds a waiting line to queue them as the resources are limited to a capacity and cannot handle all at the same time. The waiting line is emulated using a queue model framework that has two different queuing models, simulation and analytic models. The models should be flexible to configure with different types of resources and requests. Selection of the model is based on the level of metrics to be captured, accuracy and cost. With the simulation model a software program emulates the dynamic behavior of a system, a workload of transactions, jobs and commands either captured already by a trace script or benchmark results, in some cases generated by random number generators. Simulation model has built with counters are capable of accumulating various statistics to measure the performance at the end of simulation. The mathematical formula to calculate the average response time uses the statistics captured during simulation process.

T =∑i=1nt Ti / nt
Where T is average response time
Ti is response time of i'th transaction
nt is the total number of transactions that visited the server during the simulation

For example there are 3 transactions visited the server, the response time measured are respectively 3, 4 and 5 seconds and the average response time is
T =∑i=1nt Ti / nt = 3+4+5/3 = 12/3 = 4 seconds.

The above results are based on a single simulation execution, to get the accurate measurements it is required to run the simulation a fixed number of times and the results are to be compared to get the mean value.

Simulation model is very expensive to develop and complex because of the level of details it requires.

(The analytical model will be described in Part 2)

About Author / Additional Info:
VinothKumar Purushothaman
GalaxE Solutions,Bangalore