A fundamental property of EQUILOAD is that files within a specific size range are sent to the same server. This increases the chances that a given request can be satisfied from the local cache, resulting in a service time that is considerably less than when the requested file is not currently in the cache but only in the disk. In the previous performance analysis, we assumed that files are always fetched from the disk, i.e., that the service time of each request is linearly related to the actual file size. However, the effect of local caching in load balancing of clustered web servers significantly affects performance. LARD is a ``locality-aware'' scheduling policy that takes into consideration the cache contents of the back-end servers [73] and offers significant performance advantages versus non locality-aware policies.
By its nature, we expect the cache behavior of the back-end servers with EQUILOAD to be close to optimal, since requests for the same file are assigned to the same server. To examine EQUILOAD's performance with respect to caching, we adjust our simulation implementation and ensure that the service time for each request is computed according to the storage location (cache or disk) from where the requested file is fetched. We assume that the service time is two orders of magnitude smaller if the file is fetched from cache instead of local disk. We stress that even in this version of EQUILOAD the dispatcher does not require any information about the status of the back-end servers.
For comparison, we simulate a LARD-like load balancing policy where
the dispatcher knows the cache contents
of each server in the cluster and assigns each incoming request to the
least-loaded server that has already the requested file in its local cache,
if there is one, otherwise to the least-loaded server.
To avoid the possibility of extreme load unbalances,
if all servers that have the requested file in their local cache are heavily
loaded compared to those that don't have it,
the dispatcher assigns the request to the server with the lightest load
(more precisely, this happens if the difference between the loads
of the least-loaded server among those with the request in the cache
and the least-loaded server among those without the request in the cache
exceeds a given threshold
). In our experiments, we use different
values of the threshold
, to investigate the values yielding
the best performance.
The simulations run on a real trace, the day 57 of the World Soccer Cup.
Figures 7.14(a), and
Figure 7.14(b),
illustrate the average system queue length and the average system cache
hit ratio respectively, as function of the arrival rate7.6.
We note that EQUILOAD handles the increasing load in the
system very well and has the highest and constant cache hit ratio.
EQUILOAD outperforms the LARD-like policy for all threshold values
,
and all system loads.
The LARD-like policy, although not as good as EQUILOAD, also performs well.
The higher the values of threshold
, the better the performance of the system for high system loads, while
for low system loads the smaller the threshold values the better the
performance.
However, the LARD policy does not sustain a high cache-hit ratio
as the system load increases.
![]() |