Abstract
Nowadays, most of the companies are shifting from desktop PCs application to cloud based applications deployed on clouds to provide the effective services in the heterogeneous environments. But, in order to survive in such a cloud competitive market, cloud providers must reach quality of service(QoS) for their customers, otherwise losing their cloud customers to competitors. In cloud computing, providing good QoS is a main challenging task because workloads changes over a time. In Software-as-a-Service (SaaS) model, the workload of the cloud application changes continuously based on the user requests, and insufficient resource allocation to the application leads to the QoS dropping, loss of consumers and revenue. On the other side, allocating unnecessary amount of resources to the application which can lead wastage of cost and energy to maintain the resources such as datacenters, servers, cooling technology and network bandwidth etc. This issue can be solved with prediction methods, which can predict the future workload of the cloud application in terms of needed resources and allocate those resources in advance, and releasing the resources when they are not needed. This paper focuses on importance of prediction methods for effective resource provisioning system. This paper brings out a review on the state of the resource provisioning system. Finally, future trends of the prediction model are discussed.
Keywords
Introduction
Nowadays, with the rapid development of the Information Technology (IT) based systems, several distributed techniques such as cloud computing, grid computing, social networks, wireless networks, utility computing, service oriented architecture, expert cloud, MapReduce and peer-to-peer computing etc., providing the resource sharing and data transfer. Cloud computing is the trending technology, creating the gateway among several networks and services to provide on-demand services to cloud users based on the PAYG (pay-as-you-go) model. The main idea of the cloud computing is, delivering the services like applications, storage space and platforms etc., through a web browsers. Cloud computing provides many types of cloud services such as Software-as-a-service (SaaS), Platform-as-a-Service (PaaS), Infrastructure-as-a-Service (IaaS), Network-as-a-Service (NaaS) and Expert-as-a-Service (EaaS) etc. Additionally, it’s providing features like flexibility, scalability and elasticity in the view of cloud applications.
Prediction types
Prediction types
Elasticity is the key component to dynamic provisioning in the cloud computing technology. By using this feature, resource provisioning technique can scale the resources to reach the demand of cloud applications. Currently in cloud market, many service providers like Google App Engine, Microsoft Azure, Amazon EC2 and IBM bluemix etc., provide these type of scaling resources. In the view of elasticity, resource provisioning system performs scale-in or scale-out their resources based on the application workload. In this process, if scaling time is increase then it can lead to poor QoS. Here, dynamic provisioning technique works according to the resource workload behavior patterns such as service time distribution and request arrival rate. That means extra resources can be allocated during the peak periods and can be released them during less demand periods. The main challenge of dynamic provisioning technique is, forecasting the proper amount of resources to be allocated in less time to meet good QoS. This challenge can be fulfilled by using two approaches such as reactive and proactive approaches. Reactive approaches use predefined threshold values to change the resources configuration when workload reach threshold values. On the other hand, proactive approaches estimating the future workload of the each cloud application and allotting required amount of resources to applications within a time. Table 1 represents some of the related work of others to resource allocation strategies. To reach the scalability mentioned above, the proactive approaches play an essential role to estimating the correct amount of resources. But, achieving the prediction accuracy is the most challenging task in the prediction process.
Many literature reviews addressed the prediction approaches such as Huang et al. [39], Galante and Bona [38], Manvi and Shyam [8], Weingartner et al. [40], Maryam and Mohammad [1], Chana and Chana [41], Singh and Chana [42], Aceto et al. [43], Huebscher and McCann [44] etc., survey on cloud workload prediction in different manners, but not completely addressed in the view of effective resource provisioning system. This paper presents a systematic literature review on the resource provisioning issues and challenges, and prediction approaches for cloud applications. The main contributions of this paper are as follows:
A comprehensive survey is presented on the resource provisioning issues and challenges. The classification of prediction requirements is presented for applications such as evaluation metrics and characteristics of the prediction models. Finally, different types of prediction models are described followed by future trends of the prediction methods.
The rest of the paper structured as follows. In Section 2, presents several issues and challenges of resource provisioning system, and, dimensions and characteristics of the prediction models. Overview of different prediction methods are presented in Section 3. Finally, Section 4 presents, conclusion of this paper and some future trends of the prediction models are given.
Resource management techniques
The taxonomy of resource management techniques.
This section surveys the resource provisioning method issues, challenges in cloud computing area and prediction method role in the resource provisioning system. The effective resource provisioning technique must be allocated the resources while handling the workload fluctuations. The limited network resources and computing resources have to be share among cloud users effectively. While performing this action, need to be considered the consequences such as resource provisioning, resource mapping, resource adaptation and resource allocation.
For Infrastructure-as-a-service, resource management is one of challenging task. This resource management includes several jobs such as resource provisioning, resource adaptation, resource estimation, resource mapping, resource scheduling and resource discovery. Figure 1 presents the taxonomy of resource management techniques. Table 2 represents some of the relevant works to resource management techniques. In this table, evaluation metrics are used to compare under resource management techniques those are reliability, QoS and delay. The reliability metric describes the ability of the system to perform action consistently. If technique takes much time to scales the resource then reliability is low, otherwise it is high. The intention of the QoS is to provide quality services as mentioned in Service Level Agreement (SLA). Here, QoS includes error rate, availability, latency and bandwidth. The lower error rate, lower latency, higher bandwidth and higher availability offer good QoS. Finally, delay time considered in manner of initialize time of virtual machines.
Resource provisioning is the process of allocation of cloud resources to a user. Providing the efficient provisioning policies is one of the major issue in cloud. The main task of this policy is providing cloud resources to the cloud applications by following load balancing technique with high reliability mechanism. In this manner, Chaisiri et al. [45] proposed a resource scheme by using optimal cloud resource provisioning (OCRP) framework. This framework considered two metrics such as request rate and price to develop the provisioning policies. OCRP framework mainly verifies the uncertainty values of two metrics and based on that results, resources can be allocated to the users. Fox et al. [46] proposed a dynamic and automated framework which can change their parameters to achieve the accuracy and it also deal unexpected modifications of automated framework. But, it does not consider accuracy of correlation while considering different parameters. Buyya and Rajiv [47] developed a dynamic provisioning method in Aneka cloud platform to meet customer SLAs. This method mainly used for autonomic provisioning of resources to the cloud applications. At the same time, resources can be released automatically when application has less workload. But, it is difficult task for the proposed method to consider the whole cluster workload. Dailey et al. [48] developed a dynamic resource management to handle the bottleneck situation of application. This method has the capability to handle the provisioning process for web applications while optimizing the resource utilization. Authors developed this framework in EUCALYPTUS cloud platform. However, it does not consider auto scaling process of cloud resources. Vijayakumar et al. [49] proposed a Simple Earliest Deadline First (SEDF) scheduler to share the CPU capacity among all the virtual machines. In this method, authors used all virtual machines which are run on the top of the Xen hypervisor tool. Singh et al. [50] proposed a k-means clustering algorithm to determine the workload of servers. The main aim of this algorithm is, evaluating the efficiency of provisioning policies. Mainly, resources allocation can be done in three phases such as cloud selection, data center selection and server selection. At first phase, cloud resources can be categorized based on virtual machine types, prices and services etc. To maximize the benefits for users, choose the efficient cloud service those who are providing cloud resources from multiple clouds. In second phase, datacenter selection should be in the way of optimization of power consumption. Finally, third phase which is server selection can be done. This process should consider cost optimization while maintaining minimum infrastructure with quality services. Table 3 describes, some of the relevant works to resource provisioning techniques in the view of three different phases.
Resource provisioning algorithms in the view of three phases
Resource provisioning algorithms in the view of three phases
In the view of effective resource provisioning system, approaches should be maintain scalability methods which can allows scale-in and scale-out operations within time. This section brings out the challenges for enhancing resource provisioning system. The crucial issues that are mostly a raised with resource provisioning technique are multi-tenancy, virtualization technique, data management, interoperability, network infrastructure and application program interfaces etc.
The following challenges are mentioned, that can be able to enhance the resource provisioning system.
Developing the cloud application in the way, the application resources should be in elasticity manner to prevent the SLA violations. Proactive scaling methods can able to handle workload fluctuations so that cloud application are able to handle massive requests from users. Allocating the resources to the application within a time to prevent the bottleneck requests while satisfying the SLAs such a less migration time of virtual machines, scalability of resources, throughput, availability, system performance and response time etc. Developing the models which can be support energy efficiency policies. Due to the migration of virtual machines from one cloud application to another, maintenance of datacenters, cooling system and network etc., which can effects on revenues of cloud service providers (CSPs) and green computing. Designing an algorithm that can be able to reduce the network load by using several optimization techniques such as ant colony, particle swarm optimization, genetic algorithms, neural networks and meta-heuristic etc. Balancing workload among several cloud networks is the primary step for efficient resource provisioning system.
Prediction method is a form of advanced analysis that uses statistical analysis techniques and machine learning algorithms to analyze historical and current data to make forecasting about behavior, future trends and activity. Here, analysis can be defined as the process of condensing large volumes of data into information so that users can understand and use. The prediction method uses machine learning techniques to obtain the future value. The machine learning programs learns from experiences (i.e., data) with respect to some class of tasks and performance measures. In machine learning techniques, at first phase it develops the learning model to learn the behavior of application. Based on the trained data, prediction models explore the future behavior of the application. Figure 2 presents the taxonomy of prediction methods.
The taxonomy of prediction methods.
The main aim of the prediction method is, to predict the future workload of the each application which are hosted in cloud area (SaaS). The forecast resources for cloud application, is the important step for efficient resource provisioning system. The accuracy rate of prediction method is the essential factor for effective prediction approach. Because, allocating extra resources to the application while application has less workload leads wastage of resources and allocating insufficient resources to the application while application has massive workload leads poor QoS and SLAs violation. Also resource scaling, prevent SLAs violations and achieve QoS etc., depends on an accuracy rate of the prediction model.
Prediction methods in the view of different dimensions
Generally, the main challenge of the prediction method is to define the future behavior of hosted cloud application according to the historical data which is collected before. Table 4 presents several dimensions of the cloud application which are considered for evaluating the results. Mostafa et al. [108], Katja and Matjaz [3] and Mahesh et al. [4] considered resource utilization as a dimension of the cloud application. Authors calculated resource utilization performance such as CPUs, memory and disk workload. Mostafa et al. [108] proposed a hybrid framework to calculate resource utilization. The main aim of this method is, maximize the CPUs utilization. Chunhong et al. [5] developed an approach while considering response time as a dimension. Authors calculated execution time of each and every job for prediction purpose. Rodrigo et al. [97] developed a model for prediction in SaaS. Here, proposed model is considered request rate from each application. Hancong et al. [10] proposed a model for prediction while consider number of virtual machines as a dimension which are located in virtual machine pool and this method calculates the CPU load and Disk load of the virtual machine pool. Tiziano and Mencagli [11] proposed a proactive method and considered power consumption as a dimension. Here, authors are evaluated throughput and latency rate of the resources. Woodman et al. [12] developed a framework while consider number of requests as dimension to predict the future request rate from the individual application. Alireza et al. [13] proposed a model by using resource utilization dimension while calculates CPUs, disk and memory usage of resources. Hong et al. [14] proposed a prediction method by using response time dimension. Nadjaran et al. [17] developed a method by using power consumption dimension of datacenters. Dinh et al. [19] proposed a method for energy efficiency based on predictive optimization by using power consumption dimension. As mentioned in Table 4, each technique elaborated in Section 3.
Prediction method characteristics
This section expresses the important characteristics of prediction methods which represent significant attributes of prediction methods. The main attributes of prediction method can be summarized as follows:
Proactive method
The proactive method can able to update the trained model based on the present behavior of the application pattern. The proactive method can avoid workload burst situation of the application. The prediction approach must be a proactive manner. Due to maximum time of virtual machine initialization time and migration time, cloud provider can lose their users. So, the prediction approach should be able to predict the future required resources within time in a way that the cloud provider has sufficient time to provide the correct amount of resources. In reactive methods, based on the system changes by using predefined threshold values, the resources can be allocated. So, customers suffer from delay time for the resources allocation.
Adaptation
Elasticity mechanism is the main feature of the cloud computing technology. This mechanism can able to scale the resource configuration dynamically. Still, to enhance the scaling process, the prediction approaches role is required. Due to continuously changes of workload, the resource provisioning must be handle the autoscaling method with effectively. So, the prediction methods helps the resource provisioning system to perform the operation like scale-in or scale-out, before occurring bottleneck situation. For this process, the prediction method should learn the behavioral model of the application.
Time interval granularity
The first step for developing the prediction model is to identify which resource attributes must be monitored. Next, deciding the length of time interval. The prediction model should be collect proper information at given time interval. Sometimes, the long term time intervals creates huge data sets and at that time, model cannot works effectively. On the other side, short time interval details cannot be useful for effective prediction results.
Historical information
As mentioned in Table 4, several dimensions to be considered to allocate the resources like network bandwidth, storage resources, software resources, resources utilization, SLAs parameters, number of virtual machines and physical machines, request rate and power consumption etc. But, the effective prediction model will consider multiple dimensions information of the application. Here, selection of proper dimension(s) is the initial step for effective prediction results. Finding the correlation among resources, can be useful for an accurate result.
Accuracy rate
The effective prediction approaches mainly depends on an accuracy rate of the forecasted results. The effective prediction method should give the quality results which are closer to the actual results. To achieve the high accuracy rate, the prediction method should analyze the collected information thoroughly and learn the behavior of the model. Also, model can able to change pattern of the model based on the current situation.
In summary, the characteristics of the prediction methods gives an information about important attributes of the prediction model. Satisfying the all characteristics as it is mentioned above, those prediction methods can makes the accurate results.
Machine learning techniques used for the prediction process
Machine learning techniques used for the prediction process
This section presents a general classification of proposed models, frameworks and techniques of different prediction methods. According to the several surveys on prediction models, prediction models can be categorized into four groups. Such as table driven models, control theory models, queuing theory and machine learning methods. In table driven models [1], each metric values stored in a table and considered for prediction evaluation. In control theory models [7], the model can be able to control the shared resources among cloud applications. In queuing theory models [7], the resources can be allocated via queuing networks. Here, predicted values stored in queues to allocate the resources to cloud applications. Finally machine learning techniques [1], works based on the behavior of the application by using collected historical information. But, this section mainly concentrates on several machine learning techniques, different proposed models and frameworks etc. The machine learning techniques used to predict the application pattern in different manner. Here, machine learning methods not only used to forecast the future behavior of application, additionally that are able to predict in different ways such as response time of jobs, SLA violations, request rate, power consumption factors and resources utilization etc. Table 5 presents, some of the related works to machine learning techniques used for the prediction process in different proposed models. The classification of different prediction methods are as follows:
Regression and moving average models
Regression analysis technique is one of the most useful statistical methods in prediction process to understand the relationship among the variables in data. Regression analysis is used to predict a dependent variable value
Moving average model is used for time series analysis by creating a sequence of means for different subsets of the data set. Like moving average model, autoregression integrated moving average (ARIMA) model that uses time series data to predict the future trend value. ARIMA model is a combination of “autoregressive” and “moving average” models. Autoregressive model examining the differences between values in the time series. This model describe the future value of variable by linear combination of past observation and random error. Equation (2), represents basic relationship between future value (
The Regression and Moving Average models are linear predictive methods. They predict the results according to the previous time intervals by using the parameters as a dimension. In this Context, Rodrigo et al. [97] proposed a prediction model by using ARIMA model for application workload which are hosted in SaaS model. Authors are addressed the solution for dynamic provisioning policies in a way of proactive approach. Here, ARIMA model evaluates accuracy rate of future workload prediction by using a request rate of web-servers. Zhu and Agrawal et al. [98] proposed a method to forecast the memory and CPUs utilization by using autoregression moving average with exogenous inputs (ARMAX) model and control theory model. This method is used to scale the resource configuration in a vertical way, it means scaling can be done in a way of virtual resources such as virtual machine memory, virtual machine types and virtual machine cores etc., rather than allocating extra virtual machines which is referred as horizontal scaling. Bonvin et al. [99] proposed a method to scale the servers in both ways such as horizontal and vertical scaling. But, this method developed in a way of reactive approach. Similarly, Yang et al. [100] developed a framework to change the cluster resource configuration by using reactive method. Bonvin et al. [99], Yang et al. [100] developed a method by using autoregression (AR) and moving average (MA) methods. Caron et al. [101] proposed a prediction method for grid workload by using moving average model. Islam et al. [102] proposed a framework with combination of linear regression and neural network methods to predict the future workload of the applications. Zhang et al. [103] proposed a method for hybrid clouds based on the ARIMA prediction approach. Tran et al. [104] developed a framework to predict the server workloads. This method applied the ARIMA approach for prediction. Roy et al. [105] used the autoregression moving average (ARMA) model to predict the resource workload while minimizing the cost. The main aim of this prediction method is maximizing the resource utilization. Tang et al. [106] proposed a method with combination of autoregression and bin packing algorithms to predict the future workload of virtual machines. Fang et al. [107] proposed a method to predict the each cloud data center in a group by using ARIMA approach. Similarly, Groep et al. [2] method used to predict the initialization time of each task on cluster by using linear regression (LR) and autoregression.
The Reinforcement Learning (RL) Model is a method of learning and it develops optimal policies on a given state. Generally, the reinforcement learning model can be considered as Markov Decision Model which is continuously submit the action on given environment for better results. In reinforcement learning model, agent can submit their actions based on the environmental status and agent gets rewards from environment. The main objective of the agent is to select an optimal policy to choose the best action that maximizes the reward function value and/or minimize the risk. As shown in Fig. 3, at time ‘t’ the agent selects an action
The process of reinforcement learning.
In this context, Mostafa et al. [108] proposed a method with combination of autonomic computing and reinforcement learning models to deal with fluctuations of cloud workload. It’s a hybrid approach to predict the future workload of the application in an effective manner. In this method, at first phase authors applied Linear Regression (LR) model for analyzing the workload and in the next phase, authors applied reinforcement learning model for better prediction which is called as multi-ahead prediction. In this proposed method, used Q-learning algorithm for reinforcement learning process. Algorithm 1 presents pseudo code of the Q-learning. Q-learning is a model free learning algorithm which is does not require the knowledge of the environment. As shown in Eq. (3), Q function value can be updated every time an action is applied to the environment, where
The additional advantage of Mostafa et al. [108] model is, authors used Markov Decision Process (MDP) model to make the decisions for scale-in and/or scale-out operations. Authors compared their results with Linear Regression, ARMA and Dynamic Resource Provisioning Monitoring (DRPM) methods and their results proved that, hybrid approach gives better prediction results. Littman et al. [109] surveyed on reinforcement learning method and provides several advantages of reinforcement learning method. Rajavel and Thangarathanam [110] proposed a behavioral learning system for cloud trading negotiation market. This method used reinforcement learning approach to implement the proposed work in adaptive manner and using Markov decision process to make the decisions. Bahrpeyma et al. [111] proposed an algorithm by using reinforcement learning approach to predict the resource provisioning information in cloud virtualized datacenters. This method mainly concentrates on datacenters utilization. Barrett et al. [112] developed an algorithm for automating resource allocation process by applying reinforcement learning approach. This framework mainly concentrates on scalability of cloud applications. Liu et al. [113] proposed a method for resource provisioning policies to enhance the QoS in virtualized environments. Xu et al. [114] proposed an algorithm for autonomic cloud management by using unified reinforcement learning approach. Yau et al. [115] mentioned a reinforcement learning approach features in wireless networks. Maryam and Mohammad [1] presented reinforcement learning method features in cloud application workload management.
Markov decision process states with resource utilization.
The Markov model composed with states and transitions. With continuous transitions, can able to change status of states. This model helps to make the decisions according to the current state of environment. Generally Markov model can be used in four ways based on their observations. This model is classified in to four categories such as Markov chain, hidden Markov mode, Markov decision process and partial observable Markov decision process. In this context, Mostafa et al. [108] proposed a hybrid approach by using Markov Decision Process (MDP) model. Markov decision process is presents with finite states and transitions among states. In proposed system, MDP model used for performing scaling operations by considering resource utilization. As shown in Fig. 4, in this model, defined three states: over-utilization, normal-utilization and under-utilization. These states represents resources are under-provisioned, resource provisioning fits the performance requirements and resources are over-provisioned respectively. Qavami et al. [116] proposed an algorithm for dynamic resource provisioning policies in cloud computing by using Markov model. Based on the current states, proposed model is used to predict the provisioning policies for applications. Khan and Anerousis [117] proposed an algorithm to predict the future time series of workload in cloud area. Here, Markov model used for analyzing previous time series. Li and Cheng [118] proposed an algorithm to predict future fuzzy time series based on the Hidden Markov Model (HMM). The main goal of the proposed method is to predict the next state based on the current state status. Gong and Gu [119] proposed an elastic resource scaling algorithm for cloud system with the help of Markov decision process model. Kalantari and Akbari [120] developed a framework to predict the grid performance by using Markov model. In this model, grid workload utilization was considered as a dimension for Markov model. Cortez et al. [121] developed a future time series of internet traffic by using neural network, Markov model and time series methods. The proposed method used neural networks method to predict the time series of internet traffic rate, later applied on Markov model on states to predict the future state.
K-nearest neighbor
The K-Nearest Neighbor (KNN) is an algorithm which maintains all classification data and decides the predicted value of classification. The KNN algorithm mainly used for classifying the data according to the closest training examples. But, before making the classification, must be follow the two important decisions. Such as ‘k’ parameter value and distance metric value. Parameter k value describes number of neighbors will be selected for KNN algorithm. The proper choice of
In this context, Frank et al. [122] developed a prediction method for time series with help of neural networks and KNN methods. This method analyzing the all previous classifications to predict the future time series. At the first phase, the proposed model analyzing the previous classifications, later by using neural networks defined the future time series from collected each classification value. Troncoso et al. [123] developed an algorithm for time series prediction. This method used to predict the short-term electric energy demand. Imandoust and Bolandraftar [124] presented a prediction methodology for economic events by using KNN approach. Ban et al. [33] also proposed a prediction framework for financial time series with the help of KNN regression. In proposed model, regression method is used to predict the time series for each classification.
Basic structure of fuzzy logic control system.
The fuzzy classifications helps to categorize the data and can able to create the time series for those classifications. Generally, fuzzy logic is a problem solving technique based on the multivalued logic. Fuzzy logic can be used in three ways such as fuzzy rules, fuzzy set and linguistic. The fuzzy rules has if-then rules to elaborate the operation of the controller, fuzzy set has a collection of elements and define the degree varying from 0 to 1 and finally, linguistic variables defines the values in words (ex. high, medium, low). Figure 5 represents the basic structure of fuzzy logic control systems.
In this context, Luis et al. [125] proposed an algorithm for proactive cloud scaling based on the fuzzy time series. This method also used neural network, genetic algorithm and back propagation models to create the learning algorithm. This learning algorithm collects time series which are formed by fuzzifier and giving to trained model. They also used SLA violations to forecasting the results. Hluch’y et al. [126] proposed a strategy for server management to enhance the QoS with the help of fuzzy time series. In proposed method, used neural networks to predict the time series for classifications. Dutreilh et al. [127] proposed an algorithm for datacenters resource allocation with control theory and fuzzy logic. Using fuzzy logic, each datacenter load is predicted. Hasan et al. [128] proposed a methodology for autonomic cloud resource scaling. Egrioglu et al. [129] proposed a method to handle high order multivariate fuzzy time series based on Artificial Neural Networks (ANN). This method is based on the fuzzy clustering technique. At the first stage, the time series of each cluster is classified. Later, applied ANN method to predict the final result. Vazquez et al. [130] proposed an algorithm to handle dynamic resource provisioning in cloud datacenters by using prediction of time series. Vazquez et al. [88] addressed the solution for improvement techniques of provisioning methods by using fuzzy approach. In this method, predicted principal components estimates the future provisioning policies with help of fuzzy classifications.
Bayesian model
The Bayesian approach is the statistical model to assign the probabilities for each event based on the previously collected information. This model is a statistical classifier to estimate the probability of a given event which is belongs to a particular classification. The Bayesian model uses probability theory to classify the data. Equation (5) represents basic formula for Bayesian model. Here,
Kirshna and Manvi [34] proposed an algorithm to predict the virtual resource workload in cloud environment. This method analyze the short term and long term resource requirements based on the Bayesian approach. Their results proved that, the proposed approach is able to forecast the virtual resources with better accuracy rate. Di et al. [131] proposed a method to predict the Google host load based on the Bayesian model with the help of optimization techniques. In proposed method, host load has considered as a dimension to predict the future workload of each host.
The general structure of neural networks.
The Neural Networks (NN) also known as artificial neural network (ANN), analyze the records and perform the prediction process. Next, identifies the error rate in second phase of prediction and modify the prediction process model. The neural network works like artificial human nervous system for receiving, analyzing and transmitting information. This network has a three layers, they are input layer, hidden layer and output layer. First, input layer collects all the inputs to the model. These inputs can be sent to hidden layer(s) for processing. After processing, output data is made available at the output layer. As shown in Fig. 6, data processing can be done.
In this context, Islam et al. [102] proposed an algorithm to predict the resources for cloud applications. In this method, authors used linear regression and artificial neural network approaches to avoid bottleneck workloads. At first stage, by using linear regression method proposed method predicted times series of request arrival rate. Later, neural networks used to avoid bottleneck workloads of the cloud application. Sladescu et al. [132] proposed a method for prediction process by using artificial neural networks. In proposed method, resource load has considered for prediction process. Chen et al. [133] addressed the solution for prediction by using moving average and fuzzy neural network methods. Authors addressed the hybrid approach for accurate results. This method concentrates on fluctuations of workload in resources. For predicting workload fluctuations, proposed method used moving average model. Later, prediction outputs is sent to a fuzzy neural network (FNN) to improve the accuracy of results. Garg et al. [134] proposed a method to predict the CPUs utilization by using NN approach. Duan et al. [135] addresses the solution by using hybrid approach which is a combination of neural network and Bayesian methods to predict the response time. In proposed method, predicted probabilities of response time for resources. At the next stage, time series of response time has sent to neural networks to improve the results.
Support vector machine model
The Support Vector Machine (SVM) model categorize the input data into classifications based on the collected information. In machine learning, support vector machine comes under supervised learning category so that, analyzed data can be able to use for classification and regression models. The main idea of the support vector machine is, finding a hyperplane line which can divide the data set points based on the different classes. Hyperplane is a line which can classified the set of data. The significant hyperplane can be able to give a chance for new data points for classified correctly. In this context, Sapankevych and Sankar [136] presents the importance of SVM model while predicting the time series in cloud environment. In proposed method, authors addressed the regression based solution to predict the time series of workload. Bankole and Ajila [137] proposed a cloud client prediction model for resource provisioning in web application environment. The authors used regression and moving average models for prediction purpose at different stages. The individual results are combined for final results. Cao [138] proposed a model for time series forecasting by using SVM model. The proposed method classified the resource workload for each data center. This classification helps to maximize the accuracy rate of the prediction. Chen et al. [139] method used to forecasting the time series of CPU load by using neural networks and support vector machine model. The authors addressed the hybrid approach to estimate the CPU utilizations of VMs. The results shown that, combination of NN and SVM gives better results. Donate et al. [140] method also used hybrid approach which is combination of genetic algorithm and SVM model to predict the resource workload. To optimize the network utilization, genetic algorithm is used. Saadatfar et al. [141] proposed a method to predict the job failures in grid environment. This proposed method addressed the solution for job failure management in grid computing. Authors considered SLA violations as a dimension to predict the job failures.
In summary, the different proposed models of the prediction methods gives an idea about importance of the prediction model while allocating the resources in cloud environment.
Conclusion and future trends
This paper represented a systematic literature survey on the resource provisioning methods and prediction methods in the view of cloud computing. In a similar way, surveyed on several resource provisioning issues and resource provisioning algorithms in the cloud environment. To solve the issues, prediction methods are recommended to enhance the resource provisioning management system. In this view, different machine learning techniques are surveyed for prediction process and, strength and weakness of the each prediction method are also discussed. Finally, new ideas are suggested to enhance the existing prediction approaches. The overall information presented in this paper helps the cloud researchers to understand the cloud resource provisioning management and importance of the prediction models.
The future trends of the prediction approaches are as follows:
To increase the accuracy rate of prediction, the learning model should be consider all dimensions of the cloud application rather than deciding prediction with one dimension, and every prediction method should be consider power consumption dimension as a mandatory. Otherwise, heavy power consumption of cloud infrastructure effects on green computing. Correlation factor is the essential thing for better prediction results. In cloud environment, several resources will be there such as storage, processors, servers and networks etc., correlation among these resources, can be able to provide better results. New prediction methods should be able to change their training models according to the workload fluctuations to reduce the error rate of prediction, and the Combination of two types of prediction categories such as reactive and proactive methods, can be able to avoid SLAs violations and maximize the CPUs utilization.
Footnotes
Authors’ Bios
