Load Balancing Agent: A tool for controlling congestion in computer networks

Indira Semwal

1. Committee members and Signatures:

Approved by Date
__________________________________________
_______________ Advisor: Dr. Edward Chow
__________________________________________
________________ Committee member : Dr. Marijke Augusteijn
__________________________________________
________________ Committee member : Dr. Robert Sebesta
2. Introduction

The main goal in this thesis is to design and develop a load balancing software system that will help users efficiently access services over the Internet. Databases and network services available over the Internet(WWW) are often replicated in order to serve a large number of clients more efficiently. The need to replicate is additionally driven by heavy server access requests and the geographic distribution of the accesses.

Whenever such a choice is available to a client, it needs to determine which of the replicated servers will provide a "better" service. The performance of a service is a function of a) its load relative to the server capacity and b) the characteristics of the path between the server and the client[2]. This thesis will explore the idea of allocating a server to a client so that the client's response time could be minimized. For example, given the network configuration in Figure[1], let A be the original server and B be the "mirror" server. Let C, D, E, F, G be the clients. Let the routers be represented by circular nodes.

For node G ( the client), the servers A and B are both three hops away. However, at any given moment, the response time for G in accessing A or B might differ greatly. This depends upon i) the processing capacities of A and B, ii) the amount of load already queued in A and B, and iii) the available and bottleneck bandwidth on path G-D-E-A versus that on G-D-C-B. If G could dynamically access the information about the server load at A and B, and the path characteristics, it could send a request to the server with the best expected response time.

2.1 Related work

Schemes for static server selection mainly use the geographical location of the client and server or the distance measured using network hops . Much research on dynamic server selection has been done, for example the scalable HTTP server[1], the selection techniques in [2], and the dynamic server selection in [3].

In [1], the server is selected based on a round robin mechanism. This leads to load sharing rather than load balancing. The server load, is not taken into account. The technique in [1] works best when all the servers are located in the same subnet.

In [3], the authors developed bandwidth probing tools, to dynamically select the best server1. This work is a major improvement to the static server selection methods and their experiments improved the selection process by 50%. However, it does not take into account the server load . The criteria in [3] for server selection is based only on the bandwidth along the given path and the congestion.

In [2], the server selection is based upon the load condition as well as the path characteristics. The technique in [2] provides an accurate picture of the server and path performance. However, to measure the roundtrip delay along a path, the clients must send periodic queries or probes to servers. Even with less frequent probes, the load on the network and servers increases to a certain extent. If the probe frequency is too low, the path information will not be as accurate. Secondly, to gather information about the server load, the server monitors its performance and must periodically push this information to the resolvers2, when changes are observed. Therefore the implementation in [2] requires the servers to be modified.

2.2 Proposed method for load balancing

The proposed method in this thesis is much simpler and provides accurate server load and path information. Compared with the dynamic server selection method in [2], we will explore better server reporting and more accurate bandwidth measurement. In the dynamic server selection method they measure the response time of web requests, in our proposed method we will use ICMP echo message request probing . Server load information will be accessed from the web server. In comparison with [1] this thesis proposal is geared towards accessing a replicated server which is assumed to be located anywhere over the global Internet.

3. Thesis Plan

The method will be to make the server load and path performance information available, dynamically to a client , through a Load balancing Agent (LBA). The two main tasks are: i) obtain the characteristics of the paths from a client to each of the replicated servers and ii) provide the server load for each replicated server at any given moment .

Path characteristics are determined by using ICMP echo message request probing. It will be done periodically, just like in [2]. Server load information will be accessed from the web server. We know that web servers maintain a log file on the status of the server. The web server code can be modified to provide us a more meaningful report, i.e. the web server load. This again would not impose an overhead as web servers collect this information .

The operation of the Load Balancing Agent (LBA) is described below:

  • The LBA will be configured with a set of "mirror" IP addresses for a domain name. This will be done through a configuration protocol. The LBA will have the IP addresses of all the mirror sites of a given domain.
  • The LBA will run BPROBE and CPROBE to determine the available bandwidth and congestion delay expected to each of the (mirror) servers. Additionally, it will check the log files for each of the servers and extract the web server load information
  • The LBA will then perform client probing and status request periodically
  • The LBA-LBA coordination protocol that partitions the client request to the mirror servers. LBAs can communicate among themselves to coordinate and partition service requests
  • The user, at the client machine, sends the request with the kind of service required and the domain name:
  • The domain name resolution takes place. As it is preconfigured, it will lookup the IP addresses of the mirror servers as well as probing information stored in the Load Balancing tables
  • Based on the available information, the LBA will determine which server choice will result in has the least response time or improve the overall system throughput , and will provide the IP address of the server to the client
  • For the experiment, we will use three Linux PCs in our lab to design and develop the LBAs. We will also configure them with other web servers in UCCS computer science machines as a prototype load balancing system to demonstrate the concepts and protocols
  • 3.1 Tasks:

    3.1.1 Already complete- done during Spring '99 to present
  • Study TCP/IP Internet protocols [6]
  • Study existing research in this area [1][2][3]
  • Research products developed commercially for load balancing [7][8][9][10][11][12]
  • Study Domain name Server (DNS)[4]
  • 3.1.2 In progress - expected to finish date December 15, '99

  • Understand the DNS code for modification[13]
  • Study bandwidth probing toold BPROBE and CPROBE [3]
  • Study Apache web server[5]
  • Understand the Apache code for creating log files[14]
  • Design and implement the LBA configuration and the coordinating protocol
  • Design the message format
  • Run tests to gather data
  • Modify Apache code
  • Run tests
  • Write thesis
  • 3.2 Deliverables

  • The Load Balancing Agent (LBA) will provide the IP address of the server with the best response time or the best system throughput to the client
  • A thesis report documenting the design and implementation of the Load Balancing Agent(LBA), the Load Balancing (LB) Protocols, the LB architecture and results of the experiment.
  • References

    1. E.D. Katz et al." A scalable HTTP server: The NCSA prototype". Computer networks, Vol. 27(2) (1994) pp 155-164.

    2. Zongming Fei et. al." A novel server selection technique for improving the response time of a replicated service". IEEE Infocom '97- 16th conference on Computer communication

    3. Carter R. L and Crovella M. "Dynamic Server selection using bandwidth probing in wide-area networks". Tech. Rep. BU-CS-96-007, Computer science Department, Boston University, Boston, MA, 1996.

    4. Albitz P. and Liu C. DNS and BIND. O'Reilly & Assoc. 1997

    5. Laurie B. and Laurie P. Apache: The Definitive Guide. O'Reilly & Assoc. 1997.

    6. Wright G.R and Stevens W.R. TCP/IP Illustrated, Vol. 2. Addison Wesley Professional computing series. 1998

    7. Packeteer: http://www.packeteer.com

    8. Resonate: http://www.ResonateInc.com

    10. Bright Tiger: http://www.brighttiger.com

    11. Holon Tech: http://www.holontech.com

    12. RADware: http://www.rad.com

    13. http://www.linux.org/ns_main.c

    14. http://www.apache.org/http_log.c

    1 These tools BPROBE and CPROBE will be used in this thesis implementation Resolvers are library routines available with the domain Name Server, which access the information from the name servers2