SQUID 2.2.STABLE3 - HEAP Replacement

This page includes two benchmarks of Squid 2.2.STABLE3. The first (baseline) is the standard (out-of-the-box) configuration. The second (heap/GDSF) is with a newer code change that allows for different cache replacement policies. The major difference between the two versions is that baseline uses a double-linked list for the LRU replacement algorithm, while heap/GDSF uses a heap data structure for a number of different replacment algorithms.

The baseline version of Squid was built with:

% ./configure
% make

The heap/GDSF version of Squid was built with:

% make clean
% patch < heap.patch
% vi src/Makefile		# add DEFINES=-DHEAP_REPLACEMENT=1
% make

The following squid.conf file was used:

acl all src 0.0.0.0/0.0.0.0
http_access allow all
icp_access allow all
miss_access allow all
cache_dir /cache1 2267 16 256
cache_dir /cache2 2267 16 256
cache_dir /cache3 2267 16 256
cache_dir /cache4 2267 16 256
cache_dir /cache5 2267 16 256
cache_dir /cache6 2267 16 256
half_closed_clients off

Each cache_dir is an IBM DDRS-39130W SCSI 7200 RPM 9GB SCSI Disk. Cache filesystems are mounted with FreeBSD's noatime option.

I used the Squid Standardized Benchmarks version 1 workload.

Results

The throughput, BHR, and DHR data is taken from the polyclt log file, averaged at 10 second intervals. The CPU utilization data is taken from Squid, which was modified to log the values every minute.

Throughput

Document Hit Ratio

Byte Hit Ratio

CPU Utilization

Additional Information

baseline/LRU:

heap/GDSF:

heap/LFUDA: