TAG NAME cache_replacement_policy

Description The cache replacement policy parameter determines which objects are to be replaced when disk space is needed
Build Option
–enable-removal-policy
Usage
cache_replacement_policy policy
Default
cache_replacement_policy lru
Synopsis
Whenever space for new objects were not found in the disk, cache_replacement_policy tag determines which objects in the cache memory (disk) should be replaced.

The cache replacement policies is of four types. They are,

Policy
Explanation
lru Squid’s original list based LRU policy
heap GDSF Greedy-Dual Size Frequency
heap LFUDA Least Frequently Used with Dynamic Aging
heap LRU LRU policy implemented using a heap

This applies to any cache_dir lines listed below this.

The lru policies keeps recently referenced objects.

The heap GDSF policy optimizes object hit rate by keeping smaller popular objects in cache so it has a better chance of getting a hit.  It achieves a lower byte hit rate than LFUDA though since it evicts larger (possibly popular) objects.


The heap LFUDA policy keeps popular objects in cache regardless of their size and thus optimizes byte hit rate at the expense of hit rate since one large, popular object will prevent many smaller, slightly less popular objects from being cached.


Both policies utilize a dynamic aging mechanism that prevents cache pollution that can otherwise occur with frequency-based replacement policies.

For more information about the GDSF and LFUDA cache replacement policies see http://www.hpl.hp.com/techreports/1999/HPL-1999-69.html and http://fog.hpl.external.hp.com/techreports/98/HPL-98-173.html.

Note

If using the LFUDA replacement policy you should increase the value of maximum_object_size above its default of 4096 KB to maximize the potential byte hit rate improvement of LFUDA.


Arguments

policy
One of the above mentioned policies

Example(s)
cache_replacement_policy heap LFUDA