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.
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.
baseline/LRU:
heap/GDSF: