There is a need to have an easy and effective performance analysis method suited to the large Infrastructure as a Service (IaaS) cloud computing environment. There are typical; tree approaches can be used to conduct performance analysis to any type of target system:
- Experiment-based performance analysis
- Discrete event-simulation-based performance analysis
- Stochastic model-based performance analysis
The experimental-based performance analysis can be cost and time prohibitive as data and processing scales increase on IaaS computing environments, and discrete event simulations take too much time to compute (Sakr, 2014). A scalable multi-level stochastic model-based performance analysis has been proposed by Ghosh, Longo, Naik and Trivedi (2012) for IaaS cloud computing. Stochastic analysis and models are a form of predicting how probable an outcome will occur using a form of chaotic deterministic models that help in dealing with analyzing one or more outcomes that are cloaked in uncertainty (Anadale, 2016; Investopedia, n.d.). Properties of stochastic models consist of (Anadale, 2016):
- All aspects of uncertainty should be representing (variables), by having a solution space that contains all possible outcomes
- Each of the possible variables would have probability distribution attached to it
- The distribution of variables is run through thousands of simulations to identify the probability of a preferred key outcome
These steps are essential in trying to gain information on a variety of outcomes with varying variables, to make data-driven decisions because stochastic modeling runs thousands of simulations to understand the eccentricities of each variable per outcome (Investopedia, n.d.). Ghosh et al. (2012) selection of a stochastic model for performance analysis is because of its low-cost analysis tool that covers a large solution space. Sakr (2014), shared this same solution for big data IaaS cloud environments. The solution consists of a three-pool cloud architecture.
Three-pool cloud architecture
In IaaS cloud scenario, a request for resources initiates a request for one or more virtual machines to be deployed to access a physical machine (Ghosh et al., 2012). The architecture (Figure 1) assumes that physical machines are grouped in pools hot, warm, and cool (Sakr, 2014). An architectural technique that allows for cost savings because it minimizes power and cooling costs (Ghosh et al., 2012). A Resource Provisioning Decision Engine (RPDE), helps an incoming queue asking for computational resources (Ghosh et al., 2012; Sakr, 2014). The RPDE searches for physical machines in the hot pool first to build a virtual machine to access its resources. However, if all the hot pool resources are currently used, it will search for the physical machines in the warm pool, then the cool pool, and if none are available the queue gets rejected. This three-pool architecture can be scalable and practical to do performance analysis on IaaS cloud computing environment
The hot pool consists of physical machines that are constantly on, and virtual machines are deployed upon request (Ghosh et al., 2012; Sakr, 2014). Whereas a warm pool has the physical machines in power saving mode, and cold pools have physical machines that are turned off. For both warm and cold pools setting up a virtual machine is delayed compared to a hot pool, since the physical machines need to be powered up or awaken before a virtual machine is deployed (Ghosh et al., 2012). The optimal number of physical machines in each pool is predetermined by the information technology architects.
Figure 1: Request provisioning steps in a three-pool cloud architecture adapted from Ghosh et al. (2012).
Stochastic modeling comes into play here when trying to calculate the job rejection probability, which is when there are no physical machines in either pool, with input variables such as job arrival rate, mean searching delay to find a physical machine, probabilities that a physical machine can accept the job, and maximum number of jobs, sizes of the job (Ghosh et al., 2012; Sakr, 2014). Each of these variables is submodels used to help define the job rejection probability. In other words, each of these variables has their defined statistical distributions to them, thus when running thousands of simulations, a given job’s rejection probability can be given.
Unfortunately, the jobs can be rejected for two reasons: (a) buffer is full or (b) insufficient physical machine resources (Ghosh et al., 2012; Sakr, 2014). Thus, the use of stochastic modeling allows for predicting a job rejection rate and thus could reinitiate the queue if the probability is high for a more optimal time.
Also, both Ghosh et al. (2012) and Sakr (2014) stated that there is a limitation based on the assumption that all the physical machines in IaaS cloud platforms are homogeneous and that virtual machines are homogeneous. Adding more submodels and variables to the main stochastic model should alleviate the situation. However, this will build a bigger model that would be slower than the original example.
Potential applications that can be developed
Ghosh et al. (2012) suggested that this model can be used to calculate the job rejection probability and mean response delay from this architecture, by analyzing different variables than what was previously discussed like changing job arrival rates, mean job service times, number of physical machines per pool, number of virtual machines that can be supported on a particular physical machine.
Another possible application of the three-pool architecture could be used for data recovery efforts. Data and computational algorithms that are mission critical to the success of an organization can be prioritized to be stored in a hot pool, whereas data that are not time sensitive can be stored in warm and cold pools. Storing key data and algorithms in a hot pool means that if the main architecture goes down, the backups stored in the cloud can be recovered relatively quickly. These solutions could be implemented in a private, hybrid, or public cloud. This solution is a cloud version of the different types of sites used for disaster recovery (Segue Technologies, 2013).
Stochastic modeling is a great way to use a chaotic version of deterministic modeling to predict the future when the variables could be defined by a probability distribution. Using differing pools of physical machines in an IaaS cloud architecture for demanding computational resources can result in a loss of service. Stochastic modeling could be used here to describe the probability that a certain queue request will be rejected, which can allow people to make data driven the decision on when it would be an optimal time to request resources from the IaaS cloud architecture.
- Anadale (2016). Stochastic Model: Definition and Examples. Retrieved from http://www.statisticshowto.com/stochastic-model/
- Ghosh, R., Longo, F., Naik, V. K., & Trivedi, K. S. (2013). Modeling and performance analysis of large scale IaaS clouds. Future Generation Computer Systems, 29 (5), 1216-1234.
- Investopedia (n.d.). Stochastic modeling. Retrieved from http://www.investopedia.com/terms/s/stochastic-modeling.asp
- Sakr, S., & Gaber, M. (Eds.). (2014). Large scale and big data: Processing and management. Boca Raton, FL: CRC Press.
- Segue Technologies. (2013). The three stages of disaster recovery sites. Retrieved from http://www.seguetech.com/three-stages-disaster-recovery-sites/