next up previous
Next: Software components at front Up: Overview of test bed Previous: Overview of test bed

Software component at each server

Software running at each server in cluster collects system state information like load average (i.e. average number of process ready to run in last 1, 5 and 15 minutes), CPU and memory utilization, number of active connections, number of server processes running to handle client requests (with Apache server, the number of processes running to handle requests is automatically determined based on number of requests).

This software periodically obtains system load at short intervals (every 500 msec) and if load has changed since last update considerably, change in load is propagated to front node. Otherwise, if load does not change appreciably, still load update is sent every four second (8 clock ticks of 500 msec) to front node as heart beat message to inform that it is still alive and update its load information. To maintain consistent view of load information of all servers in cluster, all servers send this periodic load update at approximately the same time to front node.

Using web server access log (which is assumed to be in the standard Common-Log Format [13]), number of requests from each client domain (IP address of client) is determined and this information is propagated to front node. This information is collected and sent periodically at larger intervals (128 ticks of 500 msec, i.e. every 64 seconds).

At every server, every incoming packet for HTTP connection is diverted from TCP/IP stack and after changing destination address back to that of IP address of front node, it is re-injected back in TCP/IP stack. Now this packet is received by HTTP server, running at that server, as normal packet coming to it from interface having IP address of front node.


next up previous
Next: Software components at front Up: Overview of test bed Previous: Overview of test bed
Puneet Agarwal 2001-05-12