Authors: Richard B. Bunt, Derek L. Eager, Gregory M. Oster, and Carey L. Williamson
This paper considers policies for distributing requests in clustered Web servers, wherein multiple server machines are configured to function as a single high(er) performance Web server. We evaluate various load distribution policies with respect to both their ability to achieve good load balance (the primary goal) and also to their impact on the effectiveness of per-machine caching. Trace-driven simulation is employed, with workload traces from two heavily-loaded (3-8 million requests per day) commercial Web servers.
Our results show that use of current state information is necessary in achieving good load balance only when the achievable per-request bandwidth is not strongly network or client limited. Use of current state information is not found to be necessary with respect to achieving good cache behaviour. Load distribution based on a static hashed assignment of the URL space is found to yield very similar cache performance to load distribution based on current cache contents. We also find that it is possible to achieve both good cache behaviour and good load balance, but it requires use of policies that take both objectives into consideration and that make use of information concerning current server loads.
Full Paper: postscript