Scheduling or the allocation of user requests (tasks) in the cloud environment is an NP-hard optimization problem. According to the cloud infrastructure and the user requests, the cloud system is assigned with some load (that may be underloaded or overloaded or load is balanced). Situations like underloaded and overloaded cause different system failure concerning the power consumption, execution time, machine failure, etc. Therefore, load balancing is required to overcome all mentioned problems. This load balancing of tasks (those are may be dependent or independent) on virtual machines (VMs) is a significant aspect of task scheduling in clouds. There are various types of loads in the cloud network such as memory load, Computation (CPU) load, network load, etc. Load balancing is the mechanism of detecting overloaded and underloaded nodes and then balance the load among them. Researchers proposed various load balancing approaches in cloud computing to optimize different performance parameters. We have presented a taxonomy for the load balancing algorithms in the cloud. A brief explanation of considered performance parameters in the literature and their effects is presented in this paper. To analyze the performance of heuristic-based algorithms, the simulation is carried out in CloudSim simulator and the results are presented in detail.
In the field of network technology, the cloud computing technology is showing phenomenal growth due to the advancement of communication technology, explosive use of Internet and solve large-scale problems. It allows both hard ware, and software applications as resources over the Internet for the cloud user. The cloud computing is an Internet-based computing model that share resources (e.g., networks, servers, storage, applications, and services), software, and information to various devices of the user on demand . The Cloud computing is a path to utility computing embraced by some major IT companies such as Amazon, Apple, Google, HP, IBM, Microsoft, Oracle, and others. The Cloud Computing model has three service models, namely, Software as a Service (SaaS), Platform as a Service (PaaS), Infrastructure as a Service (IaaS) and four deployment models, namely, private, public, hybrid and community.
In this study, we have described various load balancing techniques in different (i.e., homogeneous, heterogeneous) cloud computing environments. A system architecture, with distinct models for the host, VM is described. We have explained various performance parameters listed in the above tables those evaluate the system performance. The calculation of makespan and energy consumption of the system is explained in details. We have proposed a taxonomy for the load 390 balancing algorithm in the cloud environment. To analyze the performance of heuristic-based algorithms, the simulation is carried out in CloudSim simulator and the results are presented in detail. For further researches, understanding of these approaches is essential. Future work includes evaluating the proposed algorithms in a real-world cloud deployment, and also implementation of all discussed techniques and make a comparison among all.