Re: [squid-users] Explaining RELEASEs

From: Amos Jeffries <squid3_at_treenet.co.nz>
Date: Sat, 16 Apr 2011 16:04:59 +1200

On 16/04/11 14:12, Yang Zhang wrote:
> We're seeing a bunch of the following pairs of RELEASE/SWAPOUT lines
> for the same URL in our store.log. Can anyone help me understand
> what's happening here?
>
> 1302893424.155 RELEASE 00 000830A0 6E5CACCDB20F6654643A090ACC1B995D
> 200 1302893423 -1 -1 application/json 2058/2058 GET
> http://foo.com/alpha
> 1302893424.155 SWAPOUT 00 000830A2 6E5CACCDB20F6654643A090ACC1B995D
> 200 1302893424 -1 -1 application/json 2058/2058 GET
> http://foo.com/alpha

Cached http://foo.com/alpha is being replaced with a new copy.

> 1302893424.332 RELEASE 00 000830A4 28E57991079BA357DCD9AA6C8D435A57
> 200 1302893424 -1 -1 application/json 2057/2057 GET
> http://foo.com/beta
> 1302893424.333 SWAPOUT 00 000830A6 28E57991079BA357DCD9AA6C8D435A57
> 200 1302893424 -1 -1 application/json 2057/2057 GET
> http://foo.com/beta

Cached http://foo.com/beta is being replaced with a new copy.

>
> Our squid.conf should aggressively cache everything forever, since
> we're using squid as an application cache against remote web services:
>
> # Increased disk cache size to 5GB; currently consuming 2.8GB
> cache_dir ufs /var/spool/squid3 5000 16 256
> ...
> # Cache everything, forever
> refresh_pattern . 525600 100% 525600 override-expire ignore-private ignore-n
>
> So I don't understand why there are RELEASEs happening at all - I

Caching "forever" is simply not possible. The cache items get removed
when there is no space available for new ones, when they are updated, or
when they expire.

> assume that means . If I also interleave lines from access.log:
>
> 1302893423.974 SWAPOUT 00 000830A0 6E5CACCDB20F6654643A090ACC1B995D
> 200 1302893423 -1 -1 application/json 2058/2058 GET
> http://foo.com/alpha
> 1302893423.975 255 10.160.227.224 TCP_MISS/200 2372 GET
> http://foo.com/alpha - DIRECT/173.223.232.122 application/json
> ...
> 1302893424.155 RELEASE 00 000830A0 6E5CACCDB20F6654643A090ACC1B995D
> 200 1302893423 -1 -1 application/json 2058/2058 GET
> http://foo.com/alpha
> 1302893424.155 SWAPOUT 00 000830A2 6E5CACCDB20F6654643A090ACC1B995D
> 200 1302893424 -1 -1 application/json 2058/2058 GET
> http://foo.com/alpha

> 1302893424.183 466 10.160.227.224 TCP_MISS/200 2372 GET
> http://foo.com/alpha - DIRECT/173.223.232.122 application/json
> 1302894993.280 8 10.160.227.224 TCP_MEM_HIT/200 2381 GET
> http://foo.com/alpha - NONE/- application/json
> 1302894993.280 8 10.160.227.224 TCP_MEM_HIT/200 2381 GET
> http://foo.com/alpha - NONE/- application/json

access.log records the time of finish plus the service duration.
Interleaving has to be done taking the duration into account to find the
start time...

(access.log #2 started: 1302893424.183 - 0.466)
1302893423.717 10.160.227.224 GET http://foo.com/alpha

(access.log #1 started: 1302893423.975 - 0.255)
1302893423.750 10.160.227.224 GET http://foo.com/alpha

(access.log #1 finished.
> 1302893423.974 SWAPOUT 00 000830A0 6E5CACCDB20F6654643A090ACC1B995D
> 200 1302893423 -1 -1 application/json 2058/2058 GET
> http://foo.com/alpha
> 1302893423.975 255 10.160.227.224 TCP_MISS http://foo.com/alpha

NP: new requests will HIT the #1 object.

(access.log #2 finished.)
> 1302893424.155 RELEASE 00 000830A0 6E5CACCDB20F6654643A090ACC1B995D
> 200 1302893423 -1 -1 application/json 2058/2058 GET
> http://foo.com/alpha
> 1302893424.155 SWAPOUT 00 000830A2 6E5CACCDB20F6654643A090ACC1B995D
> 200 1302893424 -1 -1 application/json 2058/2058 GET
> http://foo.com/alpha

NP: new requests will HIT the #2 object.

The MEM_HITs occured much later and HIT the #2 object.

Avoiding this overlap during fetch lag requires the "collapsed
forwarding" feature. (Which nobody has yet ported to Squid-3. Hint.)

Amos

-- 
Please be using
   Current Stable Squid 2.7.STABLE9 or 3.1.12
   Beta testers wanted for 3.2.0.6
Received on Sat Apr 16 2011 - 04:05:09 MDT

This archive was generated by hypermail 2.2.0 : Sun Apr 17 2011 - 12:00:03 MDT