HIGH PERFORMANCE WEB SERVERS USING LOAD BALANCING TECHNIQUE SITI AISHAH BINTI AB RAHMAN



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

UNIVERSITY OF OSLO Department of Informatics. Performance Measurement of Web Services Linux Virtual Server. Muhammad Ashfaq Oslo University College

APACHE. Presentation by: Lilian Thairu

DEVELOPING A WEB-BASED PACKET MONITORING TOOL

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

High Performance Cluster Support for NLB on Window

Building a Highly Available and Scalable Web Farm

Stateful Inspection Technology

Chapter 2 TOPOLOGY SELECTION. SYS-ED/ Computer Education Techniques, Inc.

Availability Digest. Redundant Load Balancing for High Availability July 2013

Content-Aware Load Balancing using Direct Routing for VOD Streaming Service

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

Introduction. Linux Virtual Server for Scalable Network Services. Linux Virtual Server. 3-tier architecture of LVS. Virtual Server via NAT

Firewalls and VPNs. Principles of Information Security, 5th Edition 1

Basic Network Configuration

Avaya P333R-LB. Load Balancing Stackable Switch. Load Balancing Application Guide

Chapter 1 - Web Server Management and Cluster Topology

Network: several computers who can communicate. bus. Main example: Ethernet (1980 today: coaxial cable, twisted pair, 10Mb 1000Gb).

VERITAS Cluster Server Traffic Director Option. Product Overview

Title: DEVELOPING TCP/IP AND UDP TRAFFIC MONITORING TOOL. RAFIQ BIN CHE MAT ( )

Scalable Linux Clusters with LVS

Considerations In Developing Firewall Selection Criteria. Adeptech Systems, Inc.

BlackBerry Enterprise Service 10. Secure Work Space for ios and Android Version: Security Note

Overview - Using ADAMS With a Firewall

A host-based firewall can be used in addition to a network-based firewall to provide multiple layers of protection.

Universiti Teknologi MARA DEVELOPMENT OF STATUS MONITORING FOR ROUTERS AND SWITCHES

CheckPoint Software Technologies LTD. How to Configure Firewall-1 With Connect Control

Overview - Using ADAMS With a Firewall

Proxy Server, Network Address Translator, Firewall. Proxy Server

CITS1231 Web Technologies. Client, Server, the Internet, and the Web

Connecting with Computer Science, 2e. Chapter 5 The Internet

FAQs for Oracle iplanet Proxy Server 4.0

PEGASUS: Competitive load balancing using inetd

E-Commerce Security. The Client-Side Vulnerabilities. Securing the Data Transaction LECTURE 7 (SECURITY)

Cisco Application Networking Manager Version 2.0

Oct 15, Internet : the vast collection of interconnected networks that all use the TCP/IP protocols

CONNECTING TO DEPARTMENT OF COMPUTER SCIENCE SERVERS BOTH FROM ON AND OFF CAMPUS USING TUNNELING, PuTTY, AND VNC Client Utilities

Intelligent Content Delivery Network (CDN) The New Generation of High-Quality Network

AppDirector Load balancing IBM Websphere and AppXcel

Security Technology: Firewalls and VPNs

High-Performance IP Service Node with Layer 4 to 7 Packet Processing Features

Security+ Guide to Network Security Fundamentals, Fourth Edition. Chapter 6 Network Security

S y s t e m A r c h i t e c t u r e

LOAD BALANCING TECHNIQUES FOR RELEASE 11i AND RELEASE 12 E-BUSINESS ENVIRONMENTS

Load Balancing for Microsoft Office Communication Server 2007 Release 2

7 Network Security. 7.1 Introduction 7.2 Improving the Security 7.3 Internet Security Framework. 7.5 Absolute Security?

Chapter 12 Supporting Network Address Translation (NAT)

SE 4C03 Winter 2005 Firewall Design Principles. By: Kirk Crane

Overview: Load Balancing with the MNLB Feature Set for LocalDirector

WEB APPLICATION FIREWALL

Load Balancing Web Proxies Load Balancing Web Filters Load Balancing Web Gateways. Deployment Guide

Frequently Asked Questions

Multicast-based Distributed LVS (MD-LVS) for improving. scalability and availability

CheckPoint FireWall-1 Version 3.0 Highlights Contents

INTERNET SECURITY: THE ROLE OF FIREWALL SYSTEM

The TCP/IP Reference Model

Course Description and Outline. IT Essential II: Network Operating Systems V2.0

Web Development. Owen Sacco. ICS2205/ICS2230 Web Intelligence

Firewall Firewall August, 2003

Network operating systems typically are used to run computers that act as servers. They provide the capabilities required for network operation.

Linux Network Security

ClusterLoad ESX Virtual Appliance quick start guide v6.3

Computer Networks/DV2 Lab

Chapter 6 Configuring the SSL VPN Tunnel Client and Port Forwarding

Ranch Networks for Hosted Data Centers

DETECTING AND ANALYZING NETWORK ATTACKS USING VIRTUAL HONEYNET NUR ATIQAH BT. HASAN

NetCrunch 6. AdRem. Network Monitoring Server. Document. Monitor. Manage

Performance Assessment of High Availability Clustered Computing using LVS-NAT

Sage ERP Accpac Online

Load Balancing Bloxx Web Filter. Deployment Guide

Sage 300 ERP Online. Mac Resource Guide. (Formerly Sage ERP Accpac Online) Updated June 1, Page 1

NEFSIS DEDICATED SERVER

Transformation of honeypot raw data into structured data

Bridgit Conferencing Software: Security, Firewalls, Bandwidth and Scalability

z/os Firewall Technology Overview

1Intro. Apache is an open source HTTP web server for Unix, Apache

Lecture (02) Networking Model (TCP/IP) Networking Standard (OSI) (I)

CMPT 471 Networking II

IMPLEMENTATION OF INTELLIGENT FIREWALL TO CHECK INTERNET HACKERS THREAT

Implementing the Application Control Engine Service Module

Load Balancing Trend Micro InterScan Web Gateway

TCP Offload Engines. As network interconnect speeds advance to Gigabit. Introduction to

Network Access Security. Lesson 10

Load Balancing McAfee Web Gateway. Deployment Guide

Detailed Revision History: Advanced Internet System Management (v5.07)

Steelcape Product Overview and Functional Description

Cornerstones of Security

PROTECTING NETWORKS WITH FIREWALLS

Chapter 5. Data Communication And Internet Technology

Cisco PIX vs. Checkpoint Firewall

E-commerce. Web Servers Hardware and Software

F5 Configuring BIG-IP Local Traffic Manager (LTM) - V11. Description

Internet Technologies. World Wide Web (WWW) Proxy Server Network Address Translator (NAT)

Citrix MetaFrame Presentation Server 3.0 and Microsoft Windows Server 2003 Value Add Feature Guide

Cisco Application Networking for IBM WebSphere

IBM. Vulnerability scanning and best practices

Deployment Guide Microsoft IIS 7.0

Transcription:

HIGH PERFORMANCE WEB SERVERS USING LOAD BALANCING TECHNIQUE SITI AISHAH BINTI AB RAHMAN BACHELOR OF SCIENCE (Hons.) IN DATA COMMUNICATION AND NETWORKING FACULTY OF INFORMATION TECHNOLOGY & QUANTITATIVE SCIENCES MARA UNIVERSITY OF TECHNOLOGY SHAH ALAM MAY 2006 1

HIGH PERFORMANCE WEB SERVERS USING LOAD BALANCING TECHNIQUE By SITI AISHAH BINTI AB RAHMAN (2003470986) A project paper submitted to FACULTY OF INFORMATION TECHNOLOGY & QUANTITATIVE SCIENCES MARA UNIVERSITY OF TECHNOLOGY In partial fulfillment of requirement for the BACHELOR OF SCIENCE (Hons.) IN DATA COMMUNICATION AND NETWORKING Approved by the Examining Committee: Major Area: Network/Communication. En Mohamad Yusof Darus Supervisor Project.. Pn Rozita Yunos Examiner UNIVERSITI TEKNOLOGI MARA SHAH ALAM, SELANGOR MAY 2006 2

CERTIFICATE OF ORIGINALITY This is to certify that I am responsible for the work submitted in this project that the original work is my own except a specified in the references and acknowledgment and the original work contained here have not been taken or done by unspecified sources or persons.... ( SITI AISHAH BINTI AB RAHMAN ) 3

ACKNOWLEDGEMENTS In the name of Allah, the Most Gracious and Most Merciful First anf foremost I want to pledge the unlimited gratitude to The Almighty Allah s.w.t for giving me chances, together with spirits and strength towards the completion of this project. May this tiny humble work will contribute to the improvement of knowledge and benefits to others. My sincere gratitude goes to my supervisor, En. Mohamad Yusof Darus who has gave me an opportunity, guidelines and encouragement throughout the period of my study. Not to forget En. Adzhar Abdul Kadir for the brilliant idea in the first place. Also to all CTN lecturers and my examiner, Puan Rozita Yunos. Special thank goes to my beloved family for the never-ending encouragement and love during my study. Last but not least, thank to all my friends especially to all part six students of CS225 for their support and priceless help. Thank you so much. 4

ABSTRACT A World Wide Web (WWW) Server is normally a single machine dedicated to process a HTTP request for a single WWW site. Web server serves web pages to clients across the Internet or an Intranet. The web server hosts the pages, scripts, programs, and multimedia files and serves them using HTTP, a protocol designed to send files to web browsers and other protocols..in order to achieve web server scalability, more servers need to be added to distribute the load among the group of servers, which is also known as a server cluster. The load distribution among these servers is known as load balancing. Load balancing applies to all types of servers, the application server and database server. However, this project will be devoting this section for load balancing of web servers (HTTP server) only. Load balancing is a technique that distributes processing and communications activity evenly across a computer network so that no single device is overwhelmed. In other words, when multiple web servers are present in a server group, the HTTP traffic needs to be evenly distributed among the servers. The purpose of load balancing was done due to the increases of traffic, complexity of the application software and to satisfy the critical online transaction nowadays. The overall exact nature of this project is a setup of load balancer, a cluster of real servers and clients. The architecture of the cluster is transparent to clients outside the cluster. Client applications interact with the cluster as if it were a single high-performance and high available server. Clients will not be affected by interaction with the cluster and do not need modification. The load balancing method used in this project is Round Robin Scheduling that distributes job or request equally among the web servers. The Round Robin method that will be use in this project is dispatcher-based load balancing cluster where the parallel services of servers can appear as a virtual service on a single IP address. For routing, Network Address Translation is a technique in which the source or destination addresses of IP packets are rewritten as they pass through a router or firewall. 5

TABLE OF CONTENT TITLE CERTIFICATE OF ORIGINALITY ACKNOWLEDGEMENT ABSTRACT TABLE OF CONTENT LIST OF TABLES LIST OF FIGURES LIST OF ABBREVIATION PAGE ii iii iv v viii ix x CHAPTER 1 INTRODUCTION 1.1 INTRODUCTION 1 1.2 PROBLEM STATEMENTS 4 1.3 PROJECT OBJECTIVES 5 1.4 PROJECT SCOPE 5 1.5 PROJECT SIGNIFICANCE 5 2 LITERATURE REVIEW 2.1 INTRODUCTION 7 2.2 DEFINITION OF PERTINENT TECHNICAL TERMINOLOGIES 2.2.1 NETWORK LOAD BALANCING 7 2.2.2 HTTP PROTOCOL 9 2.2.3 WEB SERVER 9 2.2.3.1 APACHE WEB SERVER 10 2.2.3.2 WINDOWS IIS WEB SERVER 11 2.2.4 SCHEDULING ALGORITHM 11 2.2.4.1 ROUND ROBIN SCHEDULING 12 2.2.4.2 WEIGHTED ROUND ROBIN SCHEDULING 12 6

2.2.4.3 LEAST-CONNECTION SCHEDULING 13 2.2.4.4 WEIGHTED LEAST-CONNECTION SCHEDULING 14 2.2.5 ROUTING METHOD 14 2.2.5.1 NETWORK ADDRESS TRANSLATION 15 2.2.5.2 IP TUNNELING 15 2.2.5.3 DIRECT ROUTING 16 2.2.6 CLUSTERING 17 2.2.7 IP ADDRESS 18 2.2.8 VIRTUAL IP ADDRESS 19 2.2.9 LOCAL AREA NETWORK 19 2.3 RELATED STUDIES 21 CONCLUSION 24 3 METHODOLOGY 3.1 INTRODUCTION 25 3.2 INFORMATION GATHERING 25 3.2.1 HARDWARE REQUIREMENTS 27 3.2.2 SOFTWARE REQUIREMENTS 28 3.3 INSTALLATION AND CONFIGURATION 28 3.3.1 CONFIGURATION OF THE WEB SERVER 29 3.3.2 CONFIGURATION OF THE LOAD BALANCER 30 3.3.3 NETWORK CONFIGURATION 33 3.3.3.1 DEFINING NETWORK 33 3.3.3.2 CONFIGURE SCRIPT ON THE LOAD BALANCER 35 3.3.3.3 CONFIGURE SCRIPT ON THE WEB SERVER 38 3.4 IMPLEMENTATION AND TESTING 39 3.5 DOCUMENTATION 40 3.6 SUMMARY 40 4 FINDINGS AND DISCUSSION 4.1 INTRODUCTION 41 4.2 TESTING RESULT 41 7

4.3 DATA ANALYSIS FROM PREVIOUS STUDY 46 4.4 DISCUSSION 48 5 CONCLUSION AND RECOMMENDATAION 5.1 CONCLUSION 52 5.2 RECOMMENDATION 53 REFERENCES 54 APPENDICES APPENDIX A: LVS DEPLOYMENT APPENDIX B: WEB SERVER CONFIGURATION APPENDIX C: LOAD BALANCER CONFIGURATION 8

LIST OF TABLES Tables Page Table 3.1 Hardware Requirements 27 Table 3.2 Desired Ping Test Result 39 Table 4.1 Network Address Translation IP Forwarding 49 9

LIST OF FIGURES Figures Page Figure 3.1 Basic Knowledge of Load Balancing Architecture 33 Figure 3.2 Network Diagram of the Load Balancing Cluster 34 Figure 4.1 Ping test from web server to load balancer 41 Figure 4.2 Ping test from load balancer to web server 42 Figure 4.3 Ping test between web servers 43 Figure 4.4 Output IPVSADM 44 Figure 4.4 Output watch ipvsadm 45 10

LIST OF ABBREVIATIONS DNS Domain Name Server DoS Denial of Services DR Direct Routing FTP File Transfer Protocol HLD Hardware Load Balancing HTTP Hyper Text Transfer Protocol IIS Internet Information Service IP Internet Protocol LAN Local Area Network LVS Linux Virtual Server NAT Network Address Translation NIC Network Interface Card OS Operating Systems RAM Random Access Memory TCP Transmission Control Protocol TUN Tunneling 11

URL Uniform Resource Locater RRDNS Round Robin Domain Name Server SSH Secure Shell WWW World Wide Web 12

CHAPTER 1 INTRODUCTION 1.1 PROJECT BACKGROUND Communication networks today are big business. The network traffic nowadays such as from text only mail, telnet or gopher to downloading images, audio and video files, streaming video conferencing or moving huge scientific data sets was rapidly increased. This scenario not only requires an increase in backbone networks capacity, but also the "last miles" needs to be adequately upgraded. The Internet has been a large-scale network spanning long distances almost since its origin. However, two new characteristics have changed the Internet only recently. First, it has become a truly highspeed network with backbone links operating at 10 Gbps or even higher speeds. Second, researchers in fields such as physics or astronomy have started to transfer large volumes of data, from terabytes to petabytes such as LOFAR in-radio astronomy and CERN in physics. A single Web Server machine is not enough to handle the traffic on our Web site. When this bottleneck knock our Web server on its back, we have three choices, whether to replace it with high-end hardware and hope the server is fast enough to handle the load, distribute our content to several smaller sites, each with its own Web server; or balance the traffic load across multiple servers. For most organizations, load balancing is the clear choice. There are various ways in which load balancing can be achieved. The deciding factors for choosing one over the other depends on the requirement of the web servers itself whether it want to use what kind of network gateway level and how robust the topology. Available features such as how the technique can incorporate intelligent routing based on multiple input parameters and complexity of implementation for example the implementation of Round Robin Load balancing which is much easier to 13

implement compared to implementation of software load balancing that need additional hardware to isolate the load balancer are also need to be consider in chosen the way to load balance. However there is another consideration that gives great impact on choosing ways to load balance, which is the cost. Nowadays for peoples who run business, the cost takes big impact on them. Here the consideration between hardware load balancing, software load balancing and Round Robin Load Balancing is obviously seen as Round Robin Load Balancing is the cheapest way of load balance compared to software version and hardware load balancing. (http://content.websitegear.com/article) Load balancer can simply distribute client requests to multiple web servers to serve the same content and all the servers reside in the same cluster. Failures from one of the web servers in the cluster do not affect all of them. The concept behind Network Load Balancing is pretty simple where each server in a Load Balancing Cluster is configured with a virtual IP address. This virtual IP address is configured on all the servers that are participating in the load-balancing cluster. Whenever a request is made on this virtual IP a network driver on each of these machines intercepts the request for the IP address and re-routes the request to one of the machines in the Load Balancing Cluster based on rules that we can configure for each of the servers in the cluster One of the easiest or simple and inexpensive methods to load balance is setup load balancer using Round Robin scheduling algorithm. The load balancer will redirect the request to one of the several servers in a server group. For example, in a cluster with three servers, round passes the each request to all servers; by means those three different requests were passed to the three different web servers. Then the fourth request will turn back to the first server. These mean that the Round Robin algorithm distributes jobs equally among the web servers. Other scheduling algorithms that exist are Weighted Round Robin Allocation, Least-connection Allocation, Weighted Least-connection Allocation and Random Allocation. Weighted Round Robin Allocation algorithm works by distributing more jobs to servers with greater capacity. Capacity is indicated by a user-assigned weight which is then adjusted upward or downward by dynamic load information. Compared to Round Robin algorithm, Least-Connection algorithm is 14

different as it works by distributing more jobs to servers with fewer active connections. The Least-Connection Scheduling also has the weighted algorithm of it called Weighted Least-Connection algorithm. This algorithm works by distributing more jobs to servers with fewer active connections relative to their capacity. Capacity is also indicated by a user-assigned weight, which is then adjusted upward or downward by dynamic load information. (http://www.linuxvirtualserver.org) The routing method is an element of network architecture and it specifies how, when and to whom data is transferred. There are three routing method that can be used for this project which are Network Address Translation (NAT), IP Tunneling and Direct Routing. Network Address Translation (NAT) which was used as the routing method in this project is a vitally important Internet technology for a variety of reasons. It can provide load balancing for parallel processing, it can provide several types of strong access security, and it can provide fault-tolerance and high-availability. (http://linuxvirtualserver.org) The other two routing methods that can be used to implement on the loadbalanced web server farm is IP tunneling and direct routing. IP tunneling is a routing technique to encapsulate IP datagram within IP datagrams, which allows datagram destined for one IP address to be wrapped and redirected to another IP address. IP datagram is a variable-length packet in the IP layer that consist two parts, header and data. IP datagram is handled independently and each datagram can follow a different route to destination. IP tunneling is now commonly used in Extranet, Mobile-IP, IP- Multicast, tunneled host or network. Next method, direct routing is used when the source and destination addresses have the same network number, the packet must not be forwarded. Nodes communicate inside the network himself. (http://linuxvirtualserver.org) 15

1.2 PROBLEM STATEMENTS As traffic increases, and application are going more and more complex, system administrators encounter a common bottleneck; a single server simply cannot handle the load. If there is only one web server responding to all incoming HTTP request for websites, the capacity of the web server may not be able to handle high volumes of incoming traffic and it will cause an overload problem. The website's pages will load slowly as some of the users will have to wait until the web server is free to process their requests. The solution of single web server cannot be relying for critical WWW site such as online transaction. This problems become a critical factor especially to companies that are moving their business on the internet, any interrupt or stop of the services on the servers means business lose, and high availability of these servers becomes increasingly important. Therefore demand for scalable and highly available servers is growing urgently. Recent solution, upgrading the server hardware is no longer to be cost effective. Hardware load balancers are quite expensive for middle-sized businesses and also introduce potential of single point of failure into the load balancer itself although the web server is operating perfectly. That is the reason why there is a bunch of software to provide load-balancing abilities to a generic server. There are some excellent high-performance software load balancers, but they are expensive commercial products. Furthermore the upgrading process is complex, and original machine may be wasted. When requests increase again, it will overload again soon. The higher end the server is upgraded to, the higher cost we have to pay. 16

1.3 PROJECT OBJECTIVES The objectives of this project. 1. To design and implement Round Robin Scheduling method on Web Server farm of load-balance web server. 2. To analyse how load balancer distribute request from client to web servers in server cluster. 1.4 PROJECT SCOPE This project of high performance web server using load balancing technique is to find some solutions on the bottleneck that occurs due to the HTTP performance but lots of limitation that need to be considered on implementing this load balancing solution. The scopes of this project are: 1. This project of load balancer is in Local Area Network. 2. This project will concentrate on load balancing using Round Robin Scheduling and Network Address Translation routing method. 3. This project only focus on the traffic problems and the performance of the web server but not concerns about the security of the data transfer. 1.5 PROJECT SIGNIFICANCE The goal of this project is to setup load balancer that can help to solve problem of slow loads of website s pages. This load balancer can help to improve traffic performance especially for those who need to deal with online transaction. Furthermore, as we know server is a single point of failure, so if there is only one server exist and once the server fail, there is no backup server to replace the failed server. So by using this solution 17

failure on a single server will not bring down the entire web site. This is a scalable, highly available and cost-effective server solution 18

CHAPTER 2 LITERATURE REVIEW 2.1 INTRODUCTION The recent studies by experience computer relate researcher was a breakthrough for today technology and future. In learning, reviewing others works and their findings could lead us to understand the specific field that we need to understand. In order to accomplish this project, recent research is being referred as guideline. 2.2 DETAILED OF PERTINENT TECHNICAL TERMINOLOGY 2.2.1 Network Load Balancing Network Load Balancing works by distributing client requests across a set of servers. It is particularly useful for ensuring that stateless application, such as Web pages from server running Internet Information Services (IIS), is highly available and can be scaled out by adding additional servers as the load increases. Load balancer can simply distribute client requests to multiple web servers to serve the same content and all the servers reside in the same cluster. Failures from one of the web servers in the cluster do not affect all of them. Load balancing applies to all types of servers (application server, database server) however; we will be devoting this section for load balancing of web servers (HTTP server) only. There are various ways in which load balancing can be achieved. The deciding factors for choosing one over the other depends on the 19

requirement, available features, complexity of implementation and cost. In this project Round Robin Load balancing will be used. The other two methods are hardware load balancing and software load balancing. Hardware load-balancing device (HLD), also known as a layer 4-7 router, is a physical unit that directs computers to individual servers in a network, based on factors such as server processor utilization, the number of connections to a server, or the overall server performance. The redirection process is one form of load balancing. In other words, hardware load balancers can route TCP/IP packets to various servers in cluster. The use of an HLD minimizes the probability that any particular server will be overwhelmed and optimizes the bandwidth available to each computer or terminal. In addition, the use of an HLD can minimize network downtime, facilitate traffic prioritization, provide end-to-end application monitoring, provide user authentication, and help protect against malicious activity such as denial-of-service (DoS) attacks. These types of load balancers are often found to provide a robust topology with highly availability, but come for much higher cost. (Server Load Balancing Method, 2004) Most commonly used load balancers are software based and often comes as integrated component of expensive web server and application server packages. There are many types of software load balancers such as the Prestwood Load Balancer which is a cross-web server, cross-platform web request dispatcher that distributes direct HTTP calls to various web servers, based on the total number of pending requests to each server and the average response time. Other examples of software load balancers are WAPT and Monitor One. (http://www/microsoft.com/technet). 20

2.2.2 HTTP Protocol HTTP is short for Hypertext Transfer Protocol, the underlying protocol used by the World Wide Web. HTTP defines how messages are formatted and transmitted, and what actions Web servers and browsers should take in response to various commands. For example, when you enter a URL in your browser, this actually sends an HTTP command to the Web server directing it to fetch and transmit the requested Web page. HTTP is called a stateless protocol because each command is executed independently, without any knowledge of the commands that came before it. (http://en.wikipedia.org) 2.2.3 Web Server A Web server is a program that, using the client/server model and the World Wide Web's Hypertext Transfer Protocol (HTTP), serves the files that form Web pages to Web users (whose computers contain HTTP clients that forward their requests). Every computer on the Internet that contains a Web site must have a Web server program. Two leading Web servers are Apache, the most widely-installed Web server, and Microsoft's Internet Information Server (IIS). Other Web servers include Novell's Web Server for users of its NetWare operating system and IBM's family of Lotus Domino servers, primarily for IBM's OS/390 and AS/400 customers. (www.wikipedia.com) Web servers often come as part of a larger package of Internetand intranet-related programs for serving e-mail, downloading requests for File Transfer Protocol (FTP) files, and building and publishing Web pages. Considerations in choosing a Web server include how well it works with the operating system and other servers, its ability to handle 21

Server-side programming, security characteristics, and publishing, search engine, and site building tools that may come with it. 2.2.3.1 Apache Web Server Apache is the web server component of the popular web server application stack called LAMP (Linux, Apache, MySQL, PHP/Perl/Python). Apache is redistributed as part of various proprietary packages, for example: the Oracle database or the IBM WebSphere application server. Mac OS X integrates Apache as its built-in web server. Apache HTTP Server is a free software or open source HTTP web server for Unix-like systems (BSD, Linux, and UNIX systems), Microsoft Windows, Novell NetWare and other platforms. Apache features highly configurable error messages, DBMSbased authentication databases, and content negotiation. It is also supported by several graphical user interfaces (GUIs) that permit easier, more intuitive configuration of the server. The Apache HTTP Server is developed and maintained by an open community of developers under the auspices of the Apache Software Foundation. Apache supports varieties of features and many were implemented as compiled modules. These can range from server-side programming language support to authentication schemes. Some common language interfaces support Perl, Python, Tcl, and PHP. Popular authentication modules include mod_access, mod_auth, and mod_digest. Samples of other features include SSL and TLS support (mod_ssl), a proxy module, custom log files and filtering support. Apache logs can be analyzed through a web browser using free scripts such as AWStats or Visitors. (http://en.wikipedia.org) 22

2.2.3.2 Windows IIS Web Server IIS (Internet Information Server) is a group of Internet servers (including a Web or Hypertext Transfer Protocol server and a File Transfer Protocol server) with additional capabilities for Microsoft's Windows NT and Windows 2000 Server operating systems. With IIS, Microsoft includes a set of programs for building and administering Web sites, a search engine, and support for writing Web-based applications that access databases. Microsoft points out that IIS is tightly integrated with the Windows NT and 2000 Servers in a number of ways, resulting in faster Web page serving. 2.2.4 Scheduling Algorithms Scheduling algorithm is the method by which threads or processes are given access to system resources, usually processor time. This is usually done to effectively load balance a system. The need for a scheduling algorithm arises from the requirement for most modern system to perform multitasking, or execute more than one process at a time. Scheduling algorithms are generally only used in a time slice multiplexing kernel. Time slice multiplexing is a form of preemptive multitasking in which the system periodically suspends execution of one thread and begins execution of another thread. This is accomplished using hardware timers and interrupts present on most modern processors. The reason is that in order to effectively load balance a system the kernel must be able to forcibly suspend execution of threads in order to begin execution of the next thread. 23

2.2.4.1 Round Robin Scheduling One of the easiest or simple and inexpensive methods to load balance is Round Robin Scheduling method. In a round-robin algorithm, the IP sprayer assigns the requests to a list of servers on rotating basis. The first request is allocated to a server picked randomly from the group. So if more than one IP sprayer involved not all the first requests go to the same server. For the subsequent requests, the IP sprayer follows the circular order to redirect the request. Once a server is assigned a request, the server is moved to the end of the list. This keeps the servers equally assigned. For example, in a cluster with three servers, round passes the each request to all servers; by means those three different requests were passed to the three different web servers. Then the fourth request will turn back to the first server. ( 2.2.4.2 Weighted Round Robin Scheduling Weighted Round Robin Scheduling can treat the real servers of different capacities. Each server can be assigned a weight, an integer that indicates the processing capacity. In the implementation of Weighted Round Robin Scheduling, a scheduling sequence will be generated according to the server weights after the rules of virtual servers are modified. The default weight is 1. For example, the real servers A, B and C have the weights 4, 3 and 2 respectively; a good sequence will be ABCABCABA. The network connections are directed to the different real servers based on the scheduling sequence in 24