0% found this document useful (0 votes)
15 views23 pages

Load Balancing

Load balancing is a crucial technique in distributed computing that ensures even distribution of workloads across resources, optimizing performance and preventing overload. It is particularly important in cloud computing for maintaining operational efficiency and fault tolerance, allowing for scalable architectures. Load balancing can be implemented through various algorithms and approaches, including static and dynamic methods, to manage resource utilization and response times effectively.

Uploaded by

Dr. VASAVI BANDE
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
15 views23 pages

Load Balancing

Load balancing is a crucial technique in distributed computing that ensures even distribution of workloads across resources, optimizing performance and preventing overload. It is particularly important in cloud computing for maintaining operational efficiency and fault tolerance, allowing for scalable architectures. Load balancing can be implemented through various algorithms and approaches, including static and dynamic methods, to manage resource utilization and response times effectively.

Uploaded by

Dr. VASAVI BANDE
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 23

Load Balancing

introducti
on
Load Balancing
• Load balancing is an important ingredient for building
any dynamic, flexible, scalable and robustly-
distributed computing architecture.
• Load balancing in distributed computing systems is an
essential technique to distribute processing and
communication activities evenly across the resources
in the network so that no single computing resource
gets overloaded.
• It is more important for applications which often deal
with a large and unpredictable numbers of service
requests.
• Load balancing is a technique that distributes load
evenly among multiple computing resources such
as processor, memory etc.
Cont…
• Improves average resource utilization rate and
therefore enhances the overall performance of a
system.
• Load balancing shows its real strength by making a
system more productive when additional capacity is
induced into the system.
• A load balancer distributes the workloads across
multiple similar types of computing resources, such
as processor, memory, storage and network switches.
• The objectives of load balancing are to
Optimize resource utilization
Maximize the throughput
Minimize the response time
Avoid overloading of any resource.
Importance of Load Balancing
in CLOUD COMPUTING
• A reliable computing system must operate efficiently under
varying load conditions.
• The distributed architecture of the cloud computing model makes
load balancing one of its essential elements in order to maintain
operational efficiency.
• To gain optimum performance from a system, the workloads must
be properly-distributed among all available resources.
• With load balancing, multiple resources work in parallel to handle
the workload.
• This minimizes the chance of a total system failure since it is
possible to continue the service even after some components fail,
providing the scope of recovery or replacement of those
components without disrupting the service
Cont..

• Load balancing offers architectural flexibility and essential


help in making a computing architecture scalable.
• It ensures efficient utilization of a pool of similar type
resources.
• Efficient resource utilization automatically enhances the
performance of the overall system.
• The technique decouples applications from its physical
implementation during execution.
• This creates a layer of abstraction which increases
application and system security. The decoupling of physical
resources from direct access of applications also makes
the cloud computing system more tolerant in cases of any
component failure
HOW LOAD BALANCING IS
DONE IN CLOUD
• Every cloud data centers themselves must have their
own load balancers to schedule the incoming service
requests towards appropriate resources.

• A load-balancing technique can use various tactics for


assigning directions to the service requests.
•• In
. simple form, a load balancer listens to network ports
where service requests arrive to identify the kind of
application and resources has been requested for.

• To assign the request to appropriate resource among


the available resources, some scheduling algorithms
are used.
HOW LOAD BALANCING IS
DONE IN CLOUD
Depending upon request type and resource requirement to serve the request, different
• • Depending upon request type and resource
requirement to serve the request, different
implementations of load balancing mechanisms are
required in cloud computing. Among them service load
balancing is the most critical one.

• In service load balancing, workloads are balanced


among multiple instances of each cloud service
implementation.

• The load balancers can be positioned as either an


external or built-in component to allow the host servers to
balance the workloads themselves.
HOW LOAD BALANCING IS
DONE IN CLOUD

Front-end node
back-end nodes
In cloud computing implementation, when the load
balancers at the front-end node receive multiple requests for
a particular service from clients, they distribute those
requests among available virtual servers based on some
defined scheduling algorithms
Two Levels of Balancing:
Depending upon request type and resource requirement to serve the request, different
Once the front-end-node redirects the incoming service
requests, all of
other activities happen at the back-end-nodes.

The assignments and executions of application requests


at the back-end-nodes happen in two phases.
• service request is analyzed through its
characteristics by the load balancer and assigned to
an appropriate virtual machine instance which is
called VM provisioning.
• These requests are mapped and scheduled onto
actual physical resources, and this is known as
resource provisioning.
Two Levels of Balancing
What are to Load Balance:
Following is the list of resources and services which are mainly
responsible for load balancing in cloud computing environment:

■ Application server instances (which include processor and memory)


■ Storage resources
■ Network switches
■ Services such as DNS, TCP, HTTP and HTTPS
GOALS OF LOAD BALANCING
objectives:
• To improve system performance:
No resource should get overloaded when others are under-utilized.
• To maximize fault tolerance
Traffic is automatically redirected among other working nodes by keeping
the system up.
• To accommodate scaling
To support scaling by properly redirecting load to the newly introduced nodes in
case of growing or by releasing load from nodes in case of shrinking.

• To ensure availability of applications all the time


As higher level of fault tolerance can be achievedand overloading of nodes can
be avoided by routing traffic across the less-utilized resources this ensures
availability of application all the time.
CATEGORIES OF LOAD BALANCING
Load balancing system may maintain a knowledge base for
scheduling the tasks among the resources. This knowledge base is used to
keep track of the current state of the available resources.
There are two categories of load balancing techniques
static
dynamic.
• Static load balancing does not use any knowledge base and distributes
service requests only based on the characteristics of the requests.
• It is assumed that all of the incoming service requests are similar in nature. It is
further assumed that server A and server B are both able to handle those
requests.Static load balancing algorithms divide the incoming traffic evenly among
two available servers.

• But, it does not keep knowledge base about the volume of workload each server
is currently assigned with.
Algorithms: round robin
weighted round robin
CATEGORIES OF LOAD BALANCING
The static approach to load balancing does not consider the current
load state of the systems and allocates loads based on some fixed set of
pre-configured rules related with the nature of the input traffic.
Dynamic Approach:
Scheduling of tasks happen based on the existing state of the resources or
nodes. The advantage of using dynamic load balancing is that if any node
gets fully loaded or fails, it will not halt the whole system.
• feedback mechanism:
needs real-time communication via network which adds extra traffic to the system.
DYNAMIC LOAD BALANCING
DYNAMIC LOAD BALANCING
is implemented in two separate ways

 Distributed:
 Non Distributed:

Distributed: Done by all the nodes.


Share the responsibility of load balancing together, through
communicating among them.
The sharing of the task can again happen in two ways as cooperative and
non-cooperative tasks of sharing.
Cooperative: All nodes work together in parallel to attain a same goal
Non-Cooperative: Nodes work separately to achieve some local goals
one may be concerned with response time while other one is concerned
with the delivery of the system.

 Distributed dynamic load balancing approach delegates the task of load balancing
among all the nodes (servers) present in a distributed system.
DYNAMIC LOAD BALANCING
is implemented in two separate ways

 Distributed:
 Non Distributed:

Distributed: Done by all the nodes.


Share the responsibility of load balancing together, through
communicating among them.
The sharing of the task can again happen in two ways as cooperative and
non-cooperative tasks of sharing.
Cooperative: All nodes work together in parallel to attain a same goal
Non-Cooperative: Nodes work separately to achieve some local goals
one may be concerned with response time while other one is concerned
with the delivery of the system.

 Distributed dynamic load balancing approach delegates the task of load balancing
among all the nodes (servers) present in a distributed system.
DYNAMIC LOAD BALANCING
 In non-distributed dynamic load balancing approach, all the nodes of a
distributed system do not take part in balancing system load. One or
few nodes are assigned the tasks.

 Centralized load balancing: Managed by One node,


bottleneck problem.
is more suited for networks with small sizes.
 Semi-distributed load balancing: Managed by Cluster of nodes.
The whole system is partitioned into multiple parts and each has a group or
cluster of nodes. In each partition or group of nodes, the load balancing task is
maintained in a centralized manner. One node in each group is assigned with
the task of balancing the loads within the group.
DYNAMIC LOAD BALANCING
 In non-distributed dynamic load balancing approach, all the nodes of a
distributed system do not take part in balancing system load. One or
few nodes are assigned the tasks.

 Centralized load balancing: Managed by One node,


bottleneck problem.
is more suited for networks with small sizes.
 Semi-distributed load balancing: Managed by Cluster of nodes.
The whole system is partitioned into multiple parts and each has a group or
cluster of nodes. In each partition or group of nodes, the load balancing task is
maintained in a centralized manner. One node in each group is assigned with
the task of balancing the loads within the group.
PARAMETERS FORCONSIDERATION
 Load balancing is done to improve the performance of any distributed
system, various factors are considered while implementing the load
balancing technique.
 Resource Utilization: All of the available resources have to be utilized
in a planned manner.
 Response Time:It is the time required for a specific load balancing algorithm to
respond.
 System health: sort of component failure.
 Associated Overhead:
 Scalability:Load balancer should have the capability of handling this scalability
issue efficiently.
LOAD BALANCING ALGORITHMS
Class-agnostic load balancing algorithms make decisions without considering the nature
and source of incoming requests.
class-aware load balancing
algorithm. simpler to design and implement.
• This category of algorithms makes
decisions with knowledge base
about the nature and source
of the service requests..
many advantages and are more suitable for balancing loads

Content-aware load balancer can redirect similar kind of incoming


requests to the same back end-server to avoid duplicate processing.

When the class-aware load balancing algorithm uses knowledge base


about clients before distributing service requests to back-end servers to
improve performance of system, they are called as client-aware.
THE PERSISTENCE ISSUE
• The load balancing system must send all requests arrived within
a single session to the same backend server for processing
uniformity.

• Ensuring this consistency is important for success of a load


balancer and this character is known as persistence or
stickiness.

• Persistence issue is handled through appropriate tracking of


sessions. Session tracking is implemented by storing session
data in load balancer.

You might also like