Performance Evaluation of Adaptive Virtual Machine Load Balancing Algorithm

The conception of Cloud computing has not only reshaped the field of distributed systems but also extend businesses potential. Load balancing is a core and challenging issue in Cloud Computing. How to use Cloud computing resources efficiently and gain the maximum profits with efficient load balancing algorithm is one of the Cloud computing service providers' ultimate goals. In this paper firstly an analysis of different Virtual machine(VM) load balancing algorithms was done, a new VM load balancing algorithm has been proposed and implemented in Virtual Machine environment of cloud computing in order to achieve better response time and cost.


INTRODUCTION
Cloud computing is a fast growing area in computing research and industry today.It has the potential to make the new idea of 'computing as a utility' in the near future.The Internet is often represented as a cloud and the term "cloud computing" arises from that analogy.Cloud computing is the dynamic provisioning of IT capabilities (hardware, software, or services) from third parties over a network [7].It is generally supposed that there are three basic types of cloud computing: Infrastructure as a Service (IaaS), Platform as a Service (PaaS) and Software as a Service (SaaS) [1].
In IaaS grids or clusters, virtualized servers, memory, networks, storage and systems software are delivered as a service.Perhaps the best known example is Amazon's Elastic Compute Cloud (EC2) and Simple Storage Service (S3), IaaS Provide access to computational resources, i.e.CPUs.And also Provide (managed and scalable) resources as services to the user [7].PaaS typically makes use of dedicated APIs to control the behavior of a server hosting engine which executes and replicates the execution according to user requests .E.g Force.com,Google App Engine.Software as a Service (SaaS) Standard application software functionality is offered within a cloud.Examples: Google Docs, SAP Business by design.Load balancing is one of prerequisites to utilize the full resources of parallel and distributed systems.Load balancing mechanisms can be broadly categorized as centralized or decentralized, dynamic or static, and periodic or non-periodic.Physical resources can be split into a number of logical slices called Virtual Machines (VMs).
All VM load balancing methods are designed to determine which Virtual Machine assigned to the next cloudlet [11].This document introduce a new VM load balancing algorithm and compare the performance of this algorithms with the already existing algorithms like throttled and active monitoring VM load balancer [11].Section III introduce the problem formulation, section IV include the purpose algorithm of the problem and result in section V II.EXISTING VM LOAD BALANCER Virtual machine enables the abstraction of an Operating System and Application running on it from the hardware.The interior hardware infrastructure services interrelated to the Clouds is modelled in the simulator by a Datacenter element for handling service requests.These requests are application elements sandboxed within VMs, which need to be allocated a share of processing power on Datacenter's host components.DataCenter object manages the data center management activities such as VM creation and destruction and does the routing of user requests received from User Bases via the Internet to the VMs.The Data Center Controller [11] uses a VmLoadBalancer to determine which VM should be assigned to the next request for processing.Most common Vmloadbalancer are throttled and active monitoring load balancing algorithms.

A. Throttled load balancer
It maintain a record of the state of each virtual machine (busy/ideal), if a request arrive concerning the allocation of virtual machine, throttled load balancer send the ID of ideal virtual machine to the data center controller and data center controller allocates the ideal virtual machine.

B. Active monitoring load balancer
Active VM Load Balancer maintains information about each VMs and the number of requests currently allocated to which VM.When a request to allocate a new VM arrives, it identifies the least loaded VM.If there are more than one, the first identified is selected.ActiveVmLoadBalancer returns the VM id to the Data Center Controller; the data Center Controller sends the request to the VM identified by that id.DataCenterController notifies the ActiveVmLoadBalancer of the new allocation.

III. PROBLEM FORMULATION
In this paper a study of various virtual machine load balancing algorithms in cloud computing environment is done.The algorithms are round robin, throttled load balancer and active monitoring load balancer.A new algorithm has been www.ijacsa.thesai.orgproposed after modifying the throttled load balancing algorithm in Virtual Machine environment of cloud computing in order to achieve better response time, processing time and cost.

IV. PROPOSED VM LOAD BALANCING ALGORITHM
The Proposed VM Load balancing algorithm is divided into three phases.
The first phase is the initialization phase, where in the expected response time of each VM has been found.

 Start from step 2
The proposed algorithm finds the expected Response Time of each Virtual Machine because each virtual machine is of heterogeneous platform, the expected response time of each virtual machine can be found with the help of the following formula: Response Time = Fin t -Arr t + TDelay (1) Where Arr t is the arrival time of user request and Fin t is the finish time of user request and the transmission delay can be determined using the following formula: Where TDelay is the transmission delay, T latency is the network latency and T transfer is the time taken to transfer the size of single request from source location to destination.

Ttransfer = D / Bwperuser
(3) Where Bwtotal is the total available bandwidth and Nr is the number of user requests currently in transmission.The Internet Characteristics also keeps track of the number of user requests in-flight between two regions for the value of Nr.

V. EXPERIMENTAL RESULT
Proposed algorithm is implemented with the help of simulation packages like CloudSim and cloudSim based tool [11].Java language is used for implementing VM load balancing algorithm.
We Assume that the application has been deployed in one data center having 50 virtual machines (with 1024Mb of memory in each VM running on physical processors capable of speeds of 100 MIPS) where the parameter values are as under:    This experiment notifies that if we select an efficient virtual machine then it affects the overall performance of the cloud Environment.

VI. CONCLUSION
In this paper, a new VM load balancing algorithm is proposed which is implemented in CloudSim, an abstract cloud computing environment using java language.Proposed algorithm finds the expected response time of each resource (VM) and sends the ID of virtual machine having minimum response time to the data center controller for allocation to the new request.According to this experiment, we conclude that if we select a efficient virtual machine then it effects the overall performance of the cloud Environment and also decreases the average response time.

Fig. 1
Fig.1 shows the graphical representation of average Response time of VM load balancing algorithms.In our experiments, Average response Time of three VM load balancing algorithms was not same.
Fig 1 represent the average response time of each VM load balancing algorithm.www.ijacsa.thesai.org

Figure 1 .
Figure 1.Comparison of Avg Response Time of VM Load balancing Algorithms.
Phase finds the efficient VM (VM having less response time), Last Phase returns the ID of efficient VM to datacenter controller.
 Datacenter Controller notifies the new allocation  Proposed algorithm updates the allocation table increasing the allocations count for That VM.