Analysis of Issues with Load Balancing Algorithms in Hosted (Cloud) Environments

Similar documents
International Journal of Scientific & Engineering Research, Volume 6, Issue 4, April ISSN

High Availability and Clustering

Dynamic Load Balancing of Virtual Machines using QEMU-KVM

Keywords Distributed Computing, On Demand Resources, Cloud Computing, Virtualization, Server Consolidation, Load Balancing

High-Availability Using Open Source Software

Chapter 2 Addendum (More on Virtualization)

This is an author-deposited version published in : Eprints ID : 12902

International Journal of Computer Science Trends and Technology (IJCST) Volume 3 Issue 3, May-June 2015

Virtualization Technologies (ENCS 691K Chapter 3)

Enterprise Application Performance Monitoring with JENNIFER

Enhancing the Scalability of Virtual Machines in Cloud

Active-Active and High Availability

INTRODUCTION ADVANTAGES OF RUNNING ORACLE 11G ON WINDOWS. Edward Whalen, Performance Tuning Corporation

LOAD BALANCING STRATEGY BASED ON CLOUD PARTITIONING CONCEPT

Intro to Virtualization

ZEN LOAD BALANCER EE v3.02 DATASHEET The Load Balancing made easy

Cisco Nexus 1000V and Cisco Nexus 1110 Virtual Services Appliance (VSA) across data centers

ADAPTIVE LOAD BALANCING FOR CLUSTER USING CONTENT AWARENESS WITH TRAFFIC MONITORING Archana Nigam, Tejprakash Singh, Anuj Tiwari, Ankita Singhal

Figure 1. The cloud scales: Amazon EC2 growth [2].

Elastic Load Balancing in Cloud Storage

Benchmarking the Performance of XenDesktop Virtual DeskTop Infrastructure (VDI) Platform

BridgeWays Management Pack for VMware ESX

AN ADAPTIVE DISTRIBUTED LOAD BALANCING TECHNIQUE FOR CLOUD COMPUTING

Code:1Z Titre: Oracle WebLogic. Version: Demo. Server 12c Essentials.

Installing & Using KVM with Virtual Machine Manager COSC 495

Avoiding Performance Bottlenecks in Hyper-V

High Availability for Citrix XenApp

Quick Start Guide.

How To Create A Cloud Based System For Aaas (Networking)

Purpose-Built Load Balancing The Advantages of Coyote Point Equalizer over Software-based Solutions

High Performance Cluster Support for NLB on Window

The Key Technology Research of Virtual Laboratory based On Cloud Computing Ling Zhang

An Experimental Study of Load Balancing of OpenNebula Open-Source Cloud Computing Platform

A Scheme for Implementing Load Balancing of Web Server

Building Docker Cloud Services with Virtuozzo

Hardware/Software Guidelines

In-Guest Monitoring With Microsoft System Center

ZEN LOAD BALANCER EE v3.04 DATASHEET The Load Balancing made easy

A Classification of Job Scheduling Algorithms for Balancing Load on Web Servers

Intel Cloud Builder Guide: Cloud Design and Deployment on Intel Platforms

Using VMware VMotion with Oracle Database and EMC CLARiiON Storage Systems

VIRTUALIZATION, The next step for online services

PERFORMANCE ANALYSIS OF KERNEL-BASED VIRTUAL MACHINE

FlexNetwork Architecture Delivers Higher Speed, Lower Downtime With HP IRF Technology. August 2011

KillTest. 半 年 免 费 更 新 服 务

Virtual Machine Monitors. Dr. Marc E. Fiuczynski Research Scholar Princeton University

A SURVEY ON AUTOMATED SERVER MONITORING

Juniper Networks Management Pack Documentation

JOB ORIENTED VMWARE TRAINING INSTITUTE IN CHENNAI

Solution Brief Availability and Recovery Options: Microsoft Exchange Solutions on VMware

Understanding Data Locality in VMware Virtual SAN

Infrastructure as a Service (IaaS)

Basics of Virtualisation

Consolidate and Virtualize Your Windows Environment with NetApp and VMware

SERVICE SCHEDULE PULSANT ENTERPRISE CLOUD SERVICES

Monitoring Databases on VMware

Red Hat Enterprise linux 5 Continuous Availability

Analysis on Virtualization Technologies in Cloud

Tools and strategies to monitor the ATLAS online computing farm

Why is the V3 appliance so effective as a physical desktop replacement?

Desktop Virtualization Technologies and Implementation

Oracle SOA Infrastructure Deployment Models/Patterns

International Journal of Advancements in Research & Technology, Volume 3, Issue 4, April ISSN

Relational Databases in the Cloud

An overwhelming majority of IaaS clouds leverage virtualization for their foundation.

Implementing Parameterized Dynamic Load Balancing Algorithm Using CPU and Memory

Two-Level Cooperation in Autonomic Cloud Resource Management

Performance Isolation of a Misbehaving Virtual Machine with Xen, VMware and Solaris Containers

Performance Prediction, Sizing and Capacity Planning for Distributed E-Commerce Applications

Simplifying Storage Operations By David Strom (published 3.15 by VMware) Introduction

Lecture 26 Enterprise Internet Computing 1. Enterprise computing 2. Enterprise Internet computing 3. Natures of enterprise computing 4.

Small is Better: Avoiding Latency Traps in Virtualized DataCenters

VoIP QoS on low speed links

Client Study Portfolio

The Benefits of Verio Virtual Private Servers (VPS) Verio Virtual Private Server (VPS) CONTENTS

Active-Active ImageNow Server

Management of VMware ESXi. on HP ProLiant Servers

SAS deployment on IBM Power servers with IBM PowerVM dedicated-donating LPARs

Real Time Network Server Monitoring using Smartphone with Dynamic Load Balancing

Virtualization. Dr. Yingwu Zhu

Highly Available Service Environments Introduction

be architected pool of servers reliability and

Monitoring IBM HMC Server. eg Enterprise v6

CA Cloud Overview Benefits of the Hyper-V Cloud

How To Make A Virtual Machine Aware Of A Network On A Physical Server

Castelldefels Project: Simulating the Computer System that Gives Support to the Virtual Campus of the Open University of Catalonia

Resource Scalability for Efficient Parallel Processing in Cloud

Solution Guide Parallels Virtualization for Linux

ABOUT NODE4. node4.co.uk

Informix Dynamic Server May Availability Solutions with Informix Dynamic Server 11

Testing Automation for Distributed Applications By Isabel Drost-Fromm, Software Engineer, Elastic

High Availability Design Patterns

Transcription:

Analysis of Issues with Load Balancing Algorithms in Hosted (Cloud) Environments Branko Radojević *, Mario Žagar ** * Croatian Academic and Research Network (CARNet), Zagreb, Croatia ** Faculty of Electrical Engineering and Computing (FER), Zagreb. Croatia Branko.Radojevic@CARNet.hr, Mario.Zagar@fer.hr Abstract-In order to provide valuable information and influence the decision-making process of a load balancer, thus maintaining optimal load balancing in hosted (or cloud) environments, it is not enough just to provide information from networking part of the computer system or from external load balancer. Load balancing models and algorithms proposed in the literature or applied in opensource or commercial load balancers rely either on sessionswitching at the application layer, packet-switching mode at the network layer or processor load balancing mode. The analysis of detected issues for those load balancing algorithms is presented in this paper, as a preparation phase for a new load balancing model (algorithm) proposition. The new algorithm incorporates information from virtualized computer environments and end user experience in order to be able to proactively influence load balancing decisions or reactively change decision in handling critical situations. I. INTRODUCTION Load balancing is the process of improving the performance of a parallel and distributed system through a redistribution of load among the processors or nodes [1] [2][8]. Load balancing is described in [3] as follows In a distributed network of computing hosts, the performance of the system can depend crucially on dividing up work effectively across the participating nodes. It can also generally be described as anything from distributing computation and communication evenly among processors, or a system that divides many client requests among several servers. The growth in the popularity of the web in particular has increased the requirement for load balancing. The increase of E-Commerce has lead many businesses to carry out the most of their day-to-day business online. As a result of the popularity of the web, providers of web sites want to ensure the availability of access to information for their users and the guarantee that requests are processed as quickly as possible. Further development of information systems and increased value of stored data emphasized the increasing need for high-availability computer systems which implement various redundant solutions, both software and/or hardware based, including the distribution (load balancing) of network traffic between redundant elements of the system (nodes). Another characteristic of nowadays computer systems is that various types of hosted environments (including cloud environments) are becoming more and more attractive to users. It is very common to deploy someone s information system on a hosted environment in a way that hosting company does not have any influence on application level. They are usually limited to OS level or, in virtualized environments, to virtualization daemons (also called hypervisors). In such environments, hosting providers are unable to have full control over the running application because it is usually under the supervision of company that rents the system or the company that has produced the application. Sometimes this is actually wanted situation, but there are also situations when you want exactly the opposite. The result can be that a hosting provider might not have a full control over the computer system load and behavior. Therefore, it might not be possible to foresee the application behavior and prepare the computer systems for user actions in order to improve overall system stability and availability. For this reason there is a need for a new model that would provide even distribution of network traffic incoming to that computer system in a way that it would take care of optimal load of all its components, both on a network side as well as on a server side. In this way it can be possible to provide same user experience to all users using the same application, while the impact of potential problematic (but legal) users would be minimized. II. THE ANALYSIS OF ISSUES WITH CURRENT LOAD BALANCING METHODS It is common today in redundant high-availability computer systems that incoming network traffic is distributed on network level by using one of frequently used network load balancing algorithms (like: randomallocation, round-robin allocation, weighted round-robin allocation, etc.). These algorithms use exclusively network parameters of incoming traffic to make decisions where to forward traffic, without any information from other components of computer system, like current load of application or database servers.

Users Database cluster Fig 1. Schematics of typical high-availability computer system with hadrware load balancers. Figure 1 shows the usual setup of high-availability computer system as it is implemented in practice. All network traffic coming from Internet (or intranet) is forwarded to hardware load balancers which usually operate in active-standby mode. Active load balancer uses its internal status tables first to check if all applications servers are available, and then to compute which one of them is currently in turn to receive traffic by using one of configured load balancing algorithms. In this way they distribute traffic between application servers, which usually operate in active-active configuration (all nodes are active). Behind them there is a database cluster in activestandby mode of operation, with one node currently active and serving application servers. They use shared storage to hold databases. Actual setups may differ from a typical setup presented in Figure 1. For example, number of application servers or database cluster in active-active mode of operation, or similar minor variants of one of presented components. It is exactly on similar setups that there were recorded and documented issues with hardware load balancers not being aware of the current status on application servers (except the available/not available status) where they continue to forward traffic to an application server which is currently overloaded. Figure 2 shows usual data path for different incoming users, when using round-robin algorithm. As it can be seen, users are distributed alternatively on all three application servers. Since today is very common to have web servers acting as application servers it is usual that load balancers use session-switching method, which means that when a user opens web page on one server, it will remain on that server while the session lasts. On this type of setups it is possible for a single user to start a legal action in application with wrong parameters that can overload that application server (for example it is possible to start report generation with wrong period of time) that will cause all other users on the same application server to suffer from application unresponsiveness. Since there is currently no extra network load coming back toward the user, there is no way for load balancers to be aware of this situation. In fact, load balancers will continue to forward new users to the same application server which is now in trouble. This is just a very simplified scenario, because in real life there could be thousands of users and sessions on every application servers. But, even in this simplified scenario, in combination with the fact that hosting provider cannot interfere with application behavior, it is practically impossible for them to automatically deal with this type of situations. Users Database cluster User A User B User C User D Fig 2. Incoming network traffic paths for different users in a session-switching environment.

8:50 8:50 8:50 III. ROUND-ROBINA ALGORITHM WITH SESSION- SWITCHING IN REAL-LIFE EXAMPLE It was exactly one very similar situation which has been recently experienced in real life. It was fortunate coincidence that there was passive tapping equipment in place to gather all relevant data without interfering with the switching process. The computer system itself is almost identical to the one shown in Figure 1, but with just one small difference it had one application server less. The load balancers were configured with weighted round-robin algorithm and session-switching in order to persist sessions on one of the web application servers that can hold all data for that session available until the session is terminated manually (user logout) or it just timeouts. This particular computer system was running very stable for months, and all engineers were very enthusiastic about its performance and stability. On both application servers there are two separate web applications running on separate virtual web servers: one seen by external users accessing the public web site, and other reserved for administrators. On this particular day one of the main administrators with maximum privileges inside the administrator application has issued report generation procedure for reports in PDF format. This operation is done almost on a daily basis, but on that morning the administrator has entered wrong parameters including the period for report generation. He received message from the system that the generation is in progress, and then left his computer open for several hours. By doing this he actually overloaded one of two application servers without knowing it. Since the load balancers were not aware of the problem of overloaded server, they continued to forward requests to that server. It actually happened that 50% of all users were affected. CPU Load 100% 90% 80% 70% 60% 50% 40% 30% 20% 10% 0% Fig 3. Server A load Server B load load during the reported overload of Server B. Action that took place at 9:05 AM actually had catastrophic impact on Server B and all users that were forwarded to that server. Users 25 20 15 10 5 0 Fig 4. Response time in ms 50000 45000 40000 35000 30000 25000 20000 15000 10000 5000 0 Fig 5. Server A users Server B users Number of users that load balancers forwarded to each of servers during monitored period of time. Server A response time Server B response time Response time in milliseconds on both servers during monitored period of time. From Figures 3, 4, and 5 it can be seen that administrator action started at 9:05 AM, almost exactly five minutes after regular office start time. This is usually a period when number of users and applications usage starts to grow regularly. It is obvious from graphs that administrator s request causing the overload was forwarded to Server B. After he started his report generation, server load on Server B has climbed in next few minutes to 100%, and remained there for next few hours (graph shows data only until 10 AM). On the other hand Figure 4 shows that the load balancers continued to forward users evenly to both application servers, because they were unaware of the problem with Server B. Figure 5 shows server response time in milliseconds during the same period of time. We can see that Server B was still somewhat responsive even with 100% load, but some 40 minutes after the start of the report generation process it started to deteriorate rapidly. It actually ran out of memory on AM. All users that were forwarded to Server B were affected by this problem, and the administrator causing the

problem was not aware of it because he left his office. At this critical period of time user experience on Server B was deteriorated dramatically, and after AM it became completely unusable. Since the session-switching was configured on load balancers there was nothing they could do, except to wait for session timeout. Even then, there was always possibility that new session would be again forwarded to the same Server B. This situation was actually solved manually, when another administrator saw an alert from monitoring system, and performed actions manually: forwarded all new users to Server A, and then to bring Server B back to life. IV. STEPS TO BUILD A NEW LOAD BALANCING MODEL A new load balancing method solves the problem depicted in Chapter III, in a way that introduces central module that is influencing decisions done by load balancers. CLBDM Fig 7. Dividing physical application servers in several smaller virtualized servers. The last step presented here, and depicted in Figure 7, can severely decrease number of potentially affected users. The idea here is to increase the number of application servers by using virtualization technology. For example, in situation explained before in Chapter III, it would be possible to increase number of available application servers from two to four. This would immediately decrease number of potentially affected users from 50% to 25%. Fig 6. Placement of a Central Load Balancing Decision Module (CLBDM) in a computer system. This will be done by implementation of an external software module that we will call Central Load Balancing Decision Module (or CLBDM for short). The goal of this module is to interact (monitor) all parts of our computer system, including load balancers and application servers. Then, based on the collected information and internal computation, CLBDM will impact forwarding decisions on the load balancers. Simplified schematic is shown on Figure 6, which also depicts direction of data flowing to and from CLBDM. Now when there is CLBDM, it is presented with other valuable data to fine tune its internal algorithms. The next step is a user experience sensor, which can be implemented as a passive taping device, or software on application servers. This sensor is monitoring user sessions including all requests sent and received by user, and measure time needed for every action to complete. If the trend of response time for users on a single application server will start to rise, this is a clear signal that something is going wrong. When collected values rise above normal numbers, CLBDM is taking action and moves load to other application servers. Fig 8. Reallocation of resources on by CLBDM But, this is actually not the main reason why virtualization should be used. Virtualization technology that provides dynamical allocation of resources is used on virtualized servers with live migration [4][5][6]. In this way a whole new world of possibilities are available to CLBDM, not only to impact LB decisions but also to control resources and placement of virtual servers on physical servers [7]. This is not only dramatically lowering impact factor on users, but also optimizes resources that are available. Figure 8 shows an action that CLBDM can take when it detects problem with certain virtual server. It would dynamically reallocate resources from one virtual server (A2) to another (A1) thus giving A1 A2 B1 B2

the possibility to server A1 to still finish action that has used all of its resources. But, CLBDM at this time will do even more actions, for example it would signal to load balancers that the server A1 is in trouble and that it cannot accept new user sessions. This decision would dynamically be reverted if CLBDM receives information from server A1 that the load has been normalized. Fig 9. CLBDM uses virtualization technology to live migrate virtual Server A2 to. Figure 9 shows an even further development of previously depicted situation where the load on Server A1 is still increasing. CLBDM now has an option that allows virtualized servers to be migrated from one physical server to another. It is exactly that here has happened in a way that Server A2 has been live migrated (without interruption) to, while the Server A1 now has full resources of, giving it even more possibilities to finish jobs currently running on it. V. POSSIBLE DRAWBACKS OF PROPOSED MODEL While the proposed model solves many issues that can happen with today available models, it is clear that it introduces new elements that can compromise stability of the whole computer system. First of all, introduction of CLBDM as a central management module that is influencing not only load balancing decisions, but also virtual server resources is clearly possible single point of failure. If the CLBDM is not designed and engineered with reliability, resilience and robustness in mind, it can lead to unavailability of the whole system or at least severe performance issues. One possible solution to this problem is to introduce possibility of all components in computer system to detect CLBDM failure and failback to a stand-alone mode. One of possible issue is that CLBDM can become unreliable in a way that it can enter unforeseen loops and start to flap its decision between nodes, resulting in poor A1 A2 B1 B2 performance and end-user experience. This type of issues can be minimized if not completely avoided by carefully designing CLBDM decision algorithms, but there should be also avoided if it is possible to detect such unwanted state. VI. CONCLUSION Unfortunately described situations should not happen on a computer system that was architected as a highavailability system, but it actually happens because of lack of advanced load balancing algorithms that can take input of other data like server load, instead of just relying its forwarding decisions only on network parameters. It is true that this may look like a very specific situation, and it can be argued that the hosting provider should not care about application performance and utilization, but it is up to the hosting provider to provide additional precautions through the implementations of advanced load balancing methods in order to avoid possible shortcomings in application design. By having advanced load balancing models and algorithms that can dynamically adapt to situations on servers to which they actually forward traffic, most of the overloading problems caused by bad load balancing decisions can be avoided. Initial design of one of models that could dramatically lower possibility of having situations mentioned in Chapters II and III is presented in Chapter IV. While this is not yet completed and tested model, it not only avoids traps that impose load balancers based only on network parameters, but it can even take active role in prevention and resolution of this type of issues. The further development of this model is the field where future research will be conducted. LITERATURE [1] G. R. Andrews, D. P. Dobkin, and P. J. Downey, Distributed allocation with pools of servers, in ACM SIGACT-SIGOPS Symp. Principles of Distributed Computing, Aug. 1982, pp. 73-83. [2] Zhong Xu, Rong Huang, "Performance Study of Load Balancing Algorithms in Distributed Web Server Systems", CS213 Parallel and Distributed Processing Project Report. [3] E. Anshelevich, D. Kepme, J. Kleinberg, Stability of Load Balancing Algorithms in Dynamic Adversarial Systems, Proceeding of the 34 th annual ACM symposium on Theory of Computing, 2002. [4] H. Liu, H. Jin, X. Liao, L. Hu, C. Yu, Proceedings of the 18 th ACM, 101-110, 2009. [5] J. Oberheide, Exploiting Live Virtual Machine Migration, 2008. [6] J. Oberheide, E. Cooke, F. Jahanian, Proceedings of BlackHat DC convention, 2008. [7] Wilcox JR, T. C. Dynamic Load Balancing of Virtual Machines hosted on Xen, 2009. [8] M. J. Zaki, W. Li and S.Parthasarathy, Customized Dynamic Load Balancing for a Network of Workstations, Journal of Parallel and Distributed Computing, Volume 43, Issue 2, 1997, Pages 156-162.