Challenges of Load Balancing Techniques in Cloud Environment: A Review

To highlight issues and challenges of the Load Balancing Algorithm (LBA) in the context of cloud computing. The authors of this work discussed load balancing and the load balancing problems in cloud computing, how to solve them, the basic techniques used to maintain load over the cloud, and the benefits and drawbacks of these algorithms. Furthermore, the static and dynamic load balancing strategies are compared. Load balancing methods in the cloud for data centers must avoid VM overload/low load, which is a challenge in cloud computing. Load balancing mechanisms aid in the management of workloads. The primary goal of load balancing among machines is to spread workloads and computing resources across one or more servers while lowering energy consumption and maximizing resource usage. Cloud computing is a type of computing in which scalable resources are made available on-demand and are frequently virtual, as in an online service. For a variety of reasons, including cost saving, speed, efficiency, performance, and security, cloud computing has recently become a popular choice for individuals and enterprises. Cloud computing uses the Internet to deliver a variety of services to a company's computers and devices. These resources can include data storage, databases, servers, networks, and software, among other tools and applications. In this paper, developers and researchers must design and construct a load balancer e for parallel and distributed cloud systems.


INTRODUCTION
Cloud computing has arisen as a fascinating invention with the rapid advancement of computer technology allowing customers to use services at any time or on a leased basis [1]. Several businesses, often known as cloud providers (Google, Amazon, IBM, and others) help us provide cloud services to our clients. By appropriately distributing resources, the extreme center of cloud computing strives to achieve the greatest extreme system execution and efficiency [2]. In a typical cloud computing environment, there are two components: the front side and the backside. The front side is on the user's side and is accessible via an internet connection, while the backend is concerned with the cloud service model. Cloud computing services can be accessed from a variety of different and widely distributed resources. On-demand services are provided by distributed computers [3]. Services include Software as a Service (SaaS), physical resources (Platform as a Service, PaaS), and hardware/infrastructure (Hardware as a Service, HaaS, or Infrastructure as a Service, IaaS) are all examples of cloud computing [4].
A cloud computing service An example is a cloud computing service like Amazon EC2( Amazon Elastic Cloud) [5]uds [6] (Public Clouds, Private Clouds, and Hybrid Clouds) are employed depending on the domain or environment in which they are used (a combination of both private and public clouds) [7].
In Cloud computing, load balancing is critical for an even distribution of nodes in the data center, resulting in improved resource usage and fewer failures. The development of an appropriate load-balancing algorithm is at the heart of these challenges. The load can take several forms, including CPU load, memory capacity, delay, and network load [8].
The technique of dispersing distributed system's load among its nodes to maximize resource efficiency and task response time while avoiding a situation in which some nodes are severely burdened while others are idle or doing very little work is known as load balancing. Load balancing guarantees that all processors in the system or each node in the network are carrying out roughly the same amount of work at any given time. However, problems and roadblocks have arisen in the implementation of load-balancing [9]. The study's main objectives are as follows: Examine the many load balancing methods that have been published in the literature. Evaluate different load balancing techniques, and present an overview of existing load balancing challenges and issues and prospective research opportunities for enhancing load-balancing procedures. User demands change a lot on the cloud necessitating the deployment of a dynamic environment to fulfill the activities.
A cloud service broker determines resource availability and interacts with other brokers related to resource performance and cost when the cloud detects requests from the userbase. After examining the available resources, the broker sends the user request to the designated data center where the Data Center Controller (DCN) accepts it for further processing.

CLOUD COMPUTING
Cloud computing (CC) is the supply of computing services over the Internet including servers, databases, storage, networking, and software, cloud computing enables faster innovation, more flexible resources, and lower costs [10]. The customer usually only pays for the cloud services used, which helps save money and runs the infrastructure more efficiently [11], as shown in figure 1.

Components of Cloud
The following are the three basic components of cloud computing [7], as shown in figure 2: 1. Client Computers: Client computers allow endusers to interact with the cloud. 2. Distributed Servers: The servers are dispersed across the globe, but they work with one another. 3. Data Centers: A data center is a grouping of servers.

LOAD BALANCING
In cloud computing, load balancing is the process of redistribution of workload. The basic goal of load balancing is to keep any single server from becoming overburdened and perhaps failing [13] [14], In cloud computing, load balancing is an appropriate solution to several issues that develop during the setup and operation of the system. Load balancing in a distributed environment must  consider two main tasks: resource provisioning or resource utilization and task scheduling.
Resources will be immediately available on demand, and resources will be efficiently utilized under high and low load conditions, thanks to efficient resource provisioning and task scheduling. Energy is conserved while the load is low is the technique of distributing workload Equally among virtual computers to maximize Resource proficiency. This study highlights different load-balancing approaches based on different criteria. As a result of the rising demand and load in the field of cloud computing, we saw the need for load balancing among cloud resources. As a result, existing research has been identified and reported in a systematic manner that highlights concerns and challenges for future research efforts based on existing research. A load balancer assists in the equal distribution of resources to activities for optimal resource utilization and user satisfaction at the lowest cost, motivating us to detect load balancing challenges and concerns to resolve them. As shown in figure  3.
Load balancing algorithms can be classified into three sorts of methods based on the algorithms: sender-initiated, receiver-initiated, and symmetrically-initiated.
The symmetricallyinitiated technique combines the two previous methods. Sender initiated: The procedure starts with the sender. The sender sends the request message until finds a receiver who can handle the workload [15]. As shown in figure 4.
Receiver initiated: The interaction begins with the reception. The receiver sends a message of invitation to a sender who has agreed to share responsibility. As shown in figure 5.

Algorithm for Load Balancing
In a Cloud Computing context, load balancing is a critical activity for maximizing resource use. We reviewed numerous load balancing strategies in this study, each with its own set of advantages and disadvantages. On the one hand, static load balancing schemes make simulation and monitoring of the environment easier, but they don't account for the heterogeneous nature of the cloud. Dynamic load balancing algorithms, on the other hand, are harder to simulate but are best suited for cloud computing's heterogeneous environment. This section will go over the different types of load balancing algorithms and how they are compressed [16] as shown in figure 6. Load balancing algorithms can be divided into two groups based on the present condition of the system [17]

Load Balancing in Static Mode
Prior knowledge about the system, such as processing power, memory, execution, and information about the user's requirements is already known in static algorithms. These algorithms do not require any information about the current status of the system. This sort of algorithm has significant drawbacks in the event of a system resource breakdown, and jobs cannot be relocated during execution for load balancing. Round Robin is a static load balancing mechanism that evenly distributes traffic among servers. Several flaws in the round-robin method have been identified, and a new approach called Weighted Round Robin has been developed to address these shortcomings. The basic idea behind this algorithm is that each server is given a weight, and then each server is ranked according to that weight [18].
Advantages of static load balancing algorithms It makes allocation decisions without considering the present state of the system.

Dynamic Load Balancing (DLB)
DLB is a term that refers to the process of balancing loads. Load balancing decisions are made by dynamic algorithms based on the current state of the system, and no prior knowledge of the system is required, which mitigates the disadvantages of a static method. Although dynamic algorithms are difficult to implement, they can improve performance and fault tolerance.

Comparison of Load Balancing Algorithms
Advantages of dynamic load balancing algorithms  More flexible  Most suitable for dynamic and heterogeneous environments and can respond to dynamic system changes.
The disadvantage of dynamic load balancing algorithms  More complex due to the environment's heterogeneity and dynamic nature.  More cost because it can adapt to the load at the time of implementation depending on the characteristics of the resource at the time of execution.
In the dynamic load balancing algorithm, some policies are employed. These can be summed up as follows: [19] [20] 1. Transfer Policy: A job is chosen for transfer from a close node to a remote node using a dynamic load balancing technique.

2.
Processor Selection Policy: the number of processors involved in the load exchange is specified.

3.
Location Policy: In a load balancing algorithm, the determination of a destination node for a transfer task is known as location policy or location strategy.

4.
Information Policy: In a load balancing algorithm, information policy or information strategy refers to the collection of information about the node in the system. As shown in table 1.

Why Is Load Balancing So Important in A Cloud Environment? [21]
Cloud load balancing is a way of evenly allocating excess dynamic nearby workload among all nodes. Load balancing is used to achieve high user satisfaction and resource utilization ratio by ensuring that no single node is overpowered, hence improving the system's overall performance. When load balancing is utilized correctly, it achieves optimal resource use while reducing resource consumption.
Executing failover, enabling scalability, avoiding bottlenecks, avoiding overprovisioning, minimizing response time, and attaining Green Computing in clouds are all major benefits of employing load balancing. It is achieved through the following factors: 1.
Consumption of minimum amount of energy Load balancing reduces energy usage by preventing overheating of equipment due to excessive workload, as several nodes or virtual computers may be lost.

2.
Carbon Emissions Reduction Because energy consumption and carbon emissions are exactly proportional, they are inextricably linked. Because load balancing reduces energy usage, it also reduces carbon emissions, thus assisting in the achievement of Green Computing.

LBA Problems and Challenges in Cloud Computing [22] [23]
The fundamental issue in developing an optimal load balancing technique is that it is extremely difficult to meet all of the users' expectations in terms of improving each load balancing measure. Some users might prefer a faster response time above retaining request execution priority. On the other hand, certain users may demand a tight execution order based on the order in which requests are processed.
Some users want to increase the system's total life span, while others want. It is to be highly available. As a result, to get the best possible outcomes, a compromise between available metrics should be made, and the best, most appropriate load balancing techniques should be developed to enhance reaction time and optimize resource allocation.
In terms of the time it takes to execute and the number of tasks it must complete there are a variety of complex load balancing algorithms. These intricate algorithms result in longer processing times and a more complicated process. Furthermore, implementing such load balancing strategies necessitates extra monitoring, communication overhead, and delays, resulting in more bottlenecks and a reduction in overall system efficiency.
Worst-case scenarios should be considered while designing load balancing solutions.

The Node's Geographical Distributions
It is used in a variety of largescale programs, like Twitter and Facebook. The DS of the processors is incredibly important in preserving

Algorithm Complexity
The overall performance of a system is influenced by the complexity of load balancing algorithms. Although the method is simple, it has the potential for poor execution in terms of movement time, fault tolerance, and reaction speed which complicates the method. The computations, on the other hand, take longer but yield better outcomes in terms of asset use and throughput.

Analysis of Traffic in Different Geographical Locations
The load balancer system maintains activity in each position during peak hours to maximize throughput and asset usage. It is vital for any LBA to assess the activity stream in real-time across several geographic locations and to adapt the workload accordingly.

Migration of Virtual Machines
Virtualization allows the entire machine to be seen as a single file or a set of files, which can be used to empty a physical machine that has been overloaded or to swap a virtual machine within a physical machine that has become overloaded. The main purpose is to spread the load across a data center or a group of data centers.

Management of Energy
The economy of scale is one of the benefits of energy management that promotes the use of the cloud. Power conservation is the most important feature of a global economy in which the pool of global resources is supplied by a small number of providers rather than everyone having their private services.

Single Point of Failure
Non-distributed approaches are used to create different dynamic load balancing algorithms, with load-balancing decisions made by the central node. If the central device fails, the entire computing environment would be affected. As a result, various distributed algorithms that do not rely on a single node to govern the entire computing system must be developed.

Heterogeneous Nodes
During early cloud load balancing studies, researchers considered homogeneous nodes. In cloud computing, user requirements vary regularly, forcing execution on heterogeneous nodes to maximize resource efficiency and reduce reaction time. As a result, designing appropriate load balancing solutions for varied contexts is a challenge for academics.

Load-Balancer Scalability
The on-demand availability and scalability of cloud services enable users to access services at any time and scale up or down quickly. A professional load balancer should consider quick changes in demand in terms of processing power, storage, system structure, and so on to facilitate these changes efficiently.

Storage Management
Cloud hosting has solved the problem of classical storage systems, which required personal management and had high hardware costs. Users can store a variety of data on the cloud without fear of access issues. Cloud storage is rapidly expanding, requiring the storage of data replication for optimal data access and consistency. Full data replication strategies are wasteful due to the redundant data storage policy on replication points. Partial replication may be sufficient, but dataset availability may be an issue, making load-balancing solutions more complicated. As a result, a load balancing strategy based on a partial replication system that handles the distribution of application and related data must be designed [24].

Increased web traffic
The solution to this challenge: The first alternative is a server change, which requires temporarily transferring requests to a more powerful server. The second option is outsourcing, in which queries are forwarded to another server that can respond quickly. The third option is to utilize numerous servers with an effective load balancer that distributes the load evenly among them.

job assignment and resource allocation
The solution to these challenges: Provisioning and scheduling of resources are the two fundamental activities of resource management. The user sends a job to the broker with varied QoS limitations during resource provisioning. The broker is in charge of locating an appropriate resource to complete the work. The assignment of tasks and their execution on the most appropriate resource is the essence of resource scheduling underloaded, normal loaded, and

Load measurement
The solution to these challenges: To manage a load of available resources divided them into three categories: underloaded, normal loaded, and overloaded. That resource provisioning approach can effectively balance resource load. They demonstrated peer load balance, a tool that assesses demand and resource capacity while taking into account the needs of both the client and the service provider. Compared to other current approaches, the provided mechanism lowered the cost and average reaction time. A dynamic threshold value based on standard deviation was established for load balancing and task transfer. The resources are classified for work migration, and the processing element's threshold value is compared to the average load of each cluster. Tasks are chosen at random from underloaded or overloaded resource collections for load balancing.

Cost optimization
The solution to this challenge: Adaptive workflow scheduling (AWS) has been proposed, which takes into account the cost of resources as well as the cost of communication between tasks and resources. The final cost is determined regularly due to the varied character of resources, demonstrating a strategy for process activity-based cost optimization. To check the technique efficiency, Variability factor, activity time, and resource usage are used to calculate processing cost and waiting time. A cost optimization strategy for a hybrid cloud was described. Based on resource availability, clouds are divided into three categories: public, private, and hybrid. A user can make use of the public cloud's services on a payper-use basis. Individuals own private clouds, which provide a range of free services. In a hybrid cloud, resources from the public cloud are pooled together as needed.

Fault tolerance
The solution to these challenges: Resource failures were addressed, and a checkpoint-based task execution recovery method was established. If a task is not completed by the deadline, another acceptable resource is selected to do it. Before being transferred to another suitable resource, the task state is saved and resumed for future execution through the checkpoint. This reduces execution time, reaction time, and throughput when compared to other existing approaches. included a faulttolerant scheduling system that guarantees task completion. The replication limitation is overcome by rescheduling the task for later execution. If a failure is detected, the scheduler reassigns the task to another suitable resource, reducing resource waste. This strategy reduces resource consumption and task execution time. uses a fault index to keep track of resource history. The fault rate is calculated based on task completion success and failure on a certain resource. Based on the fault index value, the grid broker repeats the work that can be used when a problem occurs.

LBA'S Metrics [25]
Load balancing among various resources is a major challenge in cloud computing. By equally allocating jobs to available resources, load balancing assures optimal resource usage. To determine if the load balancing method is the most optimal in terms of resource allocation and task completion time, various measurements must be taken [26].
1. Throughput: This refers to the total number of jobs that have been accomplished over a certain period. For a better system execution, it is necessary to have a high throughput.

Associated
Overhead: This term refers to the amount of overhead that occurs during the load balancing algorithm's execution. It is made up of task development and it interposes communication. The least amount of overhead is required for the load balancing strategy to perform successfully.
3. Fault-tolerant: This is defined as the capacity to load balance using the proper manner without incurring subjective interface or node failure. A solid approach to fault tolerance should be included in every load balancing algorithm. 4. Migration time: This is the time it takes to move a preparation from one system node to another for execution. This period should be reduced to improve the system's performance. 5. Response time: In a distributed system, response time refers to the time it takes for a given load balancing mechanism to respond. For optimum results, this time should be kept at a minimum.
6. Resource Utilization: This is the parameter that provides information about how the asset is currently being used. The optimal asset should be used for effective load balancing in the system.

Al-Rafidain Engineering Journal (AREJ)
Vol.27, No.2, September 2022,pp.227-235 7. Scalability: This refers to a load balancing algorithm's ability to handle a system made up of a limited number of processors and machines. For better system performance, this parameter should be enhanced.
8. Performance: This refers to the system's overall efficiency. The overall system performance can be increased if all of the parameters are addressed.

CONCLUSION
The purpose of this research was to discuss load balancing problems in a cloud environment and how to solve this problem. In cloud computing, the LBA is critical for removing overburdened workloads and providing equal and approximate service. In this paper, we discussed many LBA that can be used to improve utilization and better understand the user's needs with many parameters. This paper also discovered that load balancing is a critical issue in cloud systems for balancing storage on-demand services, and data centers, among other things. It is also attained minimum server overhead, maximum resource usage, throughput, reduce processor migration time, improve system performance and efficiency.