Performance modelling of multi-tier cloud applications using Simpy
Todays cloud deployed applications are mostly multi-tiered. Usually, the first tier consists of an Application Service Providers' (ASPs) web servers, the second tier has application servers and the third tier contains database servers. Tiered architectures are often difficult to evaluate in terms of performance. Existing performance models are very effective in finding the mean performance measures. However, metrics such as response-time percentiles are of greater importance to the end-users since it is more desirable to reduce the variability of a system’s response time, rather than minimizing the mean response time. In this work, a multi-tier application is modeled as an open queuing network of 3-tiers and the response-time percentiles are estimated using discrete event simulation. Here, we assume that each tier is replicated into a number of copies and each copy runs on a separate Virtual Machine (VM). Although simulation models are computationally more expensive as compared to analytical models, they are much more general. The simulation model of this work can be used as decision support for ASPs in order to determine the optimal configuration of VMs for a given workload such that a required response-time percentile is within a given threshold. In this work, Simpy, a discrete event simulation framework, has been used. The results show that as the number of VMs are increased in a 3-tier open queueing network, the overall system performance (i.e. percentiles and mean response times) does not necessarily become better. The results further show that different system configurations containing the same number of VMs, yield different performance depending on the replication level in different tiers.