A SURVEY OF CLOUD BASED LOAD BALANCING TECHNIQUES 1 AAYUSH AGARWAL, 2 MANISHA G, 3 RAJE NEHA MILIND, 4 SHYLAJA S S 1,2,3,4 Department of Information Science and Engineering, P.E.S University, 100 Feet ring Road, Banashankari Stage III. Bangalore 85 Abstract- Cloud computing, an emerging computing paradigm aims to share data, calculation and services transparently over a scalable network of nodes. In cloud computing, load balancing is one of the key issues. Load is a measure of the amount of work that a computation system performs which can be classified as CPU load, memory capacity and network load. Load balancing is the process of apportioning the load among various nodes of a distributed system to improve both resource utilization and job response time while avoiding a situation where some of the nodes are heavily loaded while others are idle. Load balancing ensures that every node in the network does approximately equal amount of work (as per their capacity) at any instant of time. This paper discusses the existing load balancing algorithms in a cloud based environment. Keywords- Load, Cloud computing, Load balancing, Load balancing algorithms I. INTRODUCTION Cloud Computing is a concept of distributed computing in which one has the ability to run an application on many connected systems at the same time. It provides a utility service giving one an access to technology resources that are available on demand [1]. With cloud computing coming into existence, the focus has shifted from provisioning of the infrastructure to business, thus increasing the efficiency of production. Cloud computing provides reliable and dependable on-demand infrastructure and services that reduce time and expenses. II. LOAD BALANCING IN A CLOUD COMPUTING ENVIRONMENT Cloud computing is a kind or virtualization. The three main components of Cloud are data centers collection of servers hosting services, distributed servers and the clients. Cloud computing is mostly used to host services in the sense of application service provisioning that run client server software at remote location. The types of services a cloud environment provides are Software as a Service (SaaS), Platform as a service (PaaS), Infrastructure as a Service (IaaS), and Hardware as a Service (HaaS). In a cloud based environment, where request for services and platforms can arrive at variable time periods, it is necessary to balance the load on the servers. Load is a measure of the amount of computational work that a system performs. The different types of load are CPU Load (the sum of number of processes that are currently running and the number that are waiting to run), amount of memory used and the network delay load (the time it takes for a bit of data to travel across the network from one node to another). Load balancing is thus one of the key issues in the realm of cloud computing [2]. Load balancing is a process of distributing processing and communication activities evenly across a computational network so that no single device is overwhelmed [3]. Load balancing is especially important for networks where it is difficult to predict the number of requests that will be issued to a server. Busy web sites typically employ two or more web servers in a load balancing scheme. If one server starts to get swamped, requests are forwarded to another server with more capacity. Thus load balancing aims at optimizing resource use, maximize throughput, minimize response time and avoid overloading of any one of the resources. The goals of load balancing are [4]: To increase the performance significantly To have a backup facility if the system fails even partially To preserve the system constancy To provide stability against changes to the system Efficient algorithms are thus needed to ensure the even distribution of load on servers. III. LOAD BALANCING ALGORITHMS In complex and large systems, there is a tremendous need for load balancing. For simplifying load balancing globally, techniques are employed that would act at the components of the clouds in such a way that the load of the whole system is distributed. Load balancers implement type specific algorithms to make load balancing decisions. The decision determines to which remote server to forward a new job. Some of the algorithms for load balancing are studied in this paper. Load balancing algorithms, in general, can be divided into two categories [5]: static and dynamic load balancing algorithm. A static load balancing algorithm does not take into account the previous state or behavior of a node while distributing the load. On the other hand, a dynamic load balancing algorithm checks the previous state of a node while 9
distributing the load. Fig.1. shows the organization of this research paper with respect to classification of algorithms. will be processed in a slower manner and will cause bottlenecks despite some of the nodes being free. 4.2. Static Load Balancing Algorithms based on the completion Time of Tasks on Machines: IV. STATIC LOAD BALANCING ALGORITHMS 4.1. Brute Force Load Balancing Algorithms 4.4.1. Round Robin Load Balancing Algorithm This algorithm uses the round robin scheme for allocating jobs. It selects the first node randomly and then, allocates jobs to all other nodes in a round robin fashion [5]. Processors are assigned to each process in a circular order without any sort of priority and hence there is no starvation. By the round robin approach, the traffic on the servers will be disdained easily and consequently it will tilt the situation towards more imperfectness [6]. Therefore, weighted round robin was developed to improve the critical issues of round robin. In weighted round robin algorithm each server is assigned a weight and according to the values of the weights, the jobs are distributed. Processors with greater capacities are assigned a larger value. Hence the highest weighted servers will receive more tasks. In a situation, when all the weights become equal, servers will receive balanced traffic [7]. In cloud computing system, precise prediction of execution time is not possible; therefore static algorithm is not preferred. Hence, dynamic variations of the round robin algorithm have been proposed [6] in order to tackle the problem more effectively. 4.4.2. Opportunistic Load Balancing Algorithm This algorithm [8] attempts to keep each node busy. Therefore it does not consider the present workload of each computer. OLB dispatches unexecuted tasks to currently available nodes in random order, regardless of the node s current workload. Each job is assigned to the node in an arbitrary order. It provides load balance schedule but it results in very poor make-span. Since OLB does not calculated the execution time of the node, the task to be processed 4.2.1. Min Min Load Balancing Algorithm The Min Min [9] algorithms begin with a set of all unassigned tasks. First of all, minimum completion time for all tasks is found. Then among these minimum times the minimum value is selected which is the minimum time among all the tasks on any resource. According to that minimum time, the task is scheduled on the corresponding machine. The execution time for all other tasks is updated on that machine and the task is removed from the list. The procedure is followed until all the tasks are assigned the resource. In scenarios where the number of small tasks is more than the number of large tasks, this algorithm achieves better performance. However, this approach has a drawback that is, it can lead to starvation. This algorithm does not consider low and high machine and task heterogeneity [5]. Fig.2. shows the pseudo code for the algorithm. 4.2.2 Max Min Load Balancing Algorithm Max Min [9] is similar to the min min algorithm except the following: after finding out minimum execution times, the maximum value is selected which is the maximum time among all the tasks on the resources. Then according to that maximum time, the task is scheduled on the corresponding machine. The execution time for all other tasks is updated on that machine and assigned task is removed from the list of the tasks that are to be assigned to the machines. Since the requirements are known beforehand, the algorithm is expected to perform well. An enhanced version of max min algorithm was proposed in [10]. It is based on the cases, where meta-tasks contain homogeneous tasks of their completion and execution time, improvement in the efficiency of the algorithm is achieved by increasing the opportunity of concurrent execution of tasks on resources. Fig.3. gives the pseudo code for Max Min Algorithm 10
4.2.3. Two Phase Load Balancing Algorithm The two phase scheduling [11] algorithm combines Opportunistic Load Balancing and Min-Min scheduling algorithms to utilize better executing efficiency and maintain the load balancing of the system. Opportunistic scheduling algorithm keeps every node in working state to achieve the goal of load balance and Min Min scheduling algorithm is utilized to minimize the execution time of each task on the node thereby minimizing the overall completion time. This combined approach hence helps in an efficient utilization of resources and enhances the work efficiency. 4.3. Dynamic Load Balancing Algorithms Based on Biological Phenomenon: 4.3.1. Ant Colony Optimization (ACO) Based Load Balancing Algorithm ACO [19] is a probabilistic technique for solving computational problems which can be reduced to finding efficient paths through graphs. The aim of ant colony optimization is to search for an optimal path in a graph on the behavior of ants seeking a path between their colony and source of food. The approach aims at efficient distribution of the load among the nodes and such that the ants never encounter a dead end for movements to nodes for building an optimum solution set. First, a Regional Load Balancing node (RLBN) is chosen in a Cloud Computing Service Provider (CCSP), which will act as a head node. We would be referring to RLBN as head node. When request is initialized the ants start their movement by originating from the head node. During the movement, ants deposit a substance called pheromone. The intensity of the pheromone can vary on various factors like the quality of food sources, distance of the food, etc. The ants use these pheromone trails to select the next node. A modified algorithm has been proposed [20] which has an edge over the original approach in which each ant build their own individual result set and it is later on built into a complete solution. However, in this approach the ants continuously update a single result set rather than updating their own result set. 4.3.2. Honey Bee Foraging Load Balancing Algorithm This is a population based search algorithm [12]. A colony of bees can extend itself over a distance and in multiple directions simultaneously to exploit a large number of food resources. Flowers with plentiful nectar or pollen grains are visited more often than the ones with fewer grains. The scout bees which have gone in search of food come back and perform a waggle dance indicating the direction in which the food was found, the distance from the hive and its quality rating. The scout bees along with followers go to those particular patches to gather food quickly and efficiently. Similarly, the job scheduling can be performed a complete scheduling of operations is specified in the problem. Each solution can be thought as a path from the hive to the food resource. The shorter the make span the higher the probability of the solution path. According to [13], this algorithm gives a significant improvement in average execution time and reduction in waiting time of tasks on queue. 4.4. Based on Statistical Models: 4.4.1. Biased Random Sampling Load Balancing Algorithm In Biased Random Sampling, the network is represented in the form of a virtual graph. Each server is symbolized as a node in the graph, with each degree of the node representing the free resources of 11
the server. The increment and decrement of node s in-degree is performed via Biased Random Sampling (BRS) [15]. Random sampling can be defined as the process wherein the servers are randomly selected. The sampling begins at some fixed node, and at each step, it moves to an adjacent node, chosen randomly. In-degree refers to the free resources of the node. When a node is allocated a new job, it removes one edge to decrease its in-degree. Similarly, when the node completes a job, it will add an edge to itself to increase its in-degree. An improved BRS method [17] has been suggested based on queue length and processing time. Alternatively, another method can be used for selection of a node for load allocation, i.e., selecting a node based on certain criteria like computing efficiency, speed, etc. Yet another method can be selecting the node for allocation which is under loaded i.e. having highest in-degree. If b is the walk length, then, as b increases, the efficiency of load allocation increases. We define a threshold value of b, which is generally equal to log n experimentally [18]. The advantage of this load balancing scheme is that it is fully decentralized, thus making it apt for large network systems like that in a cloud. V. RESEARCH METHODOLOGY This research was an outcome of an extensive study and literature survey of the existing load balancing algorithms. A number of research papers were reviewed. CONCLUSIONS This paper is based on cloud computing technology which has vast potential. Cloud Computing has widely been adopted by the industry, even though there are many existing issues like Load Balancing, Virtual Machine Migration, Server Consolidation, Energy Management, etc. which have not been fully addressed. Load balancing in the cloud computing environment is required to distribute the excess workload evenly to all the nodes in the whole Cloud to achieve better resource utilization and ensure that every computing resource is distributed efficiently and fairly. Some of the existing Load Balancing techniques have been studied in this paper. The load balancing algorithms were first classified as static and dynamic. Various algorithms under each class along with their variations were also studied. Static Load Balancing algorithms attempt to achieve optimal utilization of resources by considering the size of the tasks and the machines. However, such information may not always be available at hand. Moreover some static load balancing algorithms like the min min algorithm may cause heavy tasks to starve. Dynamic Load Balancing algorithms check the previous state of a node while distributing the load. The advantage of using dynamic load balancing is that if any node fails, it will not halt the system; it will only affect the system performance. Algorithms like BRS and ACO are completely decentralized and hence prove to be efficient in a cloud computing environment. When the type/properties of the machines are known active clustering technique can be exploited for efficient resource utilization. 4.4.2. Active Clustering Load Balancing Algorithm Active Clustering [12] works on the principle of grouping similar nodes together and working on these groups. A node initiates the process and selects another node called the matchmaker node from its neighbors satisfying the criteria that it should be of a different type than the former one. The so called matchmaker node then forms a connection between one of its neighbors which is of the same type as the initial node. The matchmaker node then detaches the connection between itself and the initial node. The above set of processes is followed iteratively. The performance of the system is enhanced with high availability of resources, thereby increasing the throughput. This increase in throughput is due to the efficient utilization of resources [5]. Table 1: A Comparison of Load Balancing Algorithms 12
Table 1 gives a consolidated view of the algorithms studied here. With respect to this context, failover handling refers to the ability of the algorithm to skip the assignment of jobs to the node that is down. In our future work we will analyze the algorithms with numerical analysis and simulation. We will also attempt to propose a new algorithm which combines the benefits of the surveyed algorithms. ACKNOWLEDGMENTS The authors would like to thank PES University, Bengaluru, Karnataka, India for their continued support and encouragement for participating at this conference. The authors express gratitude to the staff of the Department of Information Science and Engineering, PES University for their timely help and support. REFERENCES [1] Bhushan Lal Sahu, Rajesh Tiwari, A comprehensive study on Cloud computing, International journal of Advanced Research in Computer science and Software engineering, volume 2, issue 9, September 2012, ISSN: 2277 128X. [2] Dr. Hemant S. Mahalle, Prof. Parag R. Kaveri, Dr.Vinay Chavan. Load Balancing On Cloud Data Centres, International Journal of Advanced Research in Computer Science and Software Engineering, Volume 3, Issue 1, January 2013 [3] Amandeep Kaur Sidhu, Supriya Kinger, Analysis of Load Balancing Techniques in Cloud Computing, Sri Guru Granth Sahib World University, Fatehgarh Sahib, Punjab, 2013. [4] Ram Prasad Padhy,P Goutam Prasad Rao, Load Balancing in Cloud Computing Systems, National Institute of Technology, Rourkela, India, 2011 [5] Shanti Swaroop Moharana, Rajadeepan D Ramesh, Digamber Powar, Analysis Of Load Balancers in Cloud Computing, International Journal of Computer Science and Engineering 05/2013; 2(2):101-108. [6] Pooja Samal, Pranati Mishra, Analysis of variants in Round Robin Algorithms for load balancing in Cloud Computing (IJCSIT) International Journal of Computer Science and Information Technologies, Vol. 4 (3), 2013, 416-419. [7] R. X. T. and X. F. Z., A Load Balancing Strategy Based on the Combination of Static and Dynamic, in Database Technology and Applications (DBTA), 2010 2nd International Workshop, pp. 1-4, 2010. [8] Che-Lun Hung1, Hsiao-hsi Wang2 and Yu-Chen Hu2, Efficient Load Balancing Algorithm for Cloud Computing Network. IEEE Vol. 9, pp: 70-78, 2012. [9] T. Kokilavani, Load Balanced Min-Min Algorithm for Static Meta-Task Scheduling in Grid Computing International Journal of Computer Applications (0975 8887) Volume 20 No.2, April 2011. [10] Upendra Bhoi, Purvi N. Ramanuj, Enhanced Max-min Task Scheduling Algorithm in Cloud Computing International Journal of Application or Innovation in Engineering & Management (IJAIEM), Volume 2, Issue 4, April 2013. [11] S. Wang, K. Yan, W. Liao, and S. Wang, Towards a Load Balancing in a Three-level Cloud Computing Network, Proceedings of the 3rd IEEE International Conference on Computer Science and Information Technology (ICCSIT), Chengdu, China, September 2010, pages 108-113. [12] Ram Prasad Padhy,P Goutam Prasad Rao, Load Balancing in Cloud Computing Systems, National Institute of Technology, Rourkela, India, 2011. [13] Dhinesh B. L.D, P. V. Krishna, Honey bee behavior inspired load balancing of tasks in cloud computing environments, in proc. Applied Soft Computing, volume 13, Issue 5, May 2013, Pages 2292-2303. [14] Pham, D.T., Castellani, M. (2009), The Bees Algorithm Modelling Foraging Behaviour to Solve Continuous Optimisation Problems. Proc. ImechE, Part C, 223(12), 2919-2938. [15] Rahmeh OA, Johnson P, Taleb-Bendiab A., A Dynamic Biased Random Sampling Scheme for scalable and reliable Grid Networks, The INFOCOMP Journal of Computer Science, vol. 7, 1-10. [16] Li Feng DY, Wu H, Zhang Y (2000) A dynamic load balancing algorithm based on distributed database system. In: Proc. 4th intl. conf. on high performance computing in the Asia-Pacific region, Beijing, China, pp 949 952. [17] Manakattu, S. S. & Kumar, S. D. M. (2012), An improved biased random sampling algorithm for load balancing in cloud based systems., in K. Gopalan & Sabu M. Thampi, ed., 'ICACCI', ACM,, pp. 459-462. [18] Randles, M., Abu-Rahmeh, O., Johnson, P. & Taleb- Bendiab, A. (2010). Biased random walks on resource network graphs for load balancing.. The Journal of Supercomputing, 53, 138-162. [19] Ratan Mishra and Anant Jaiswal Ant Colony Optimization: A Solution of Load balancing in Cloud International Journal of Web and Semantic Technology. Vol. 3, No. 2. pp. 33-50. April 2012. [20] Kumar Nishant, Pratik Sharma, Vishal Krishna, Chhavi Gupta and Kunwar Pratap Singh, Nitin and Ravi Rastogi, 2012, Load Balancing of Nodes in Cloud Using Ant Colony Optimization 14th International Conference on Modelling and Simulation. 13