Patrik Ellrén wrote:
We have a setup with a number of identical application servers running on Windows 2003 
Server. On each server there is an instance of Squid (2.6 stable 18) that runs as an 
accelerator. The accelerator mode seems to work fine when each Squid instance is only 
accelerating "its own" application server but we would like the Squids to run 
as siblings and we have not been able to get it to work.

Even though the objects are cached by Squid on one machine calls from a sibling 
generates a combination of:

UDP_HIT/000
TCP_MISS/504

It looks like the ICP call indicates a hit but when a Squid tries to retrieve 
the cached object it is not found in the cache. The max-age and expire headers 
are set to allow caching for weeks (and it does work when the Squids are 
accelerating only its own origin server), cache-control is set to public and no 
other headers have been set.

If we add allow_miss for the cache_peer tags then the objects will be retrieved 
but they will come from the sibling's origin server and not from the cache so 
it looks like the communication works.

Does anyone have an idea what could cause this behaviour?

Random wild guesses:
 - The sibling has a '504 timeout' error object cached for that URL.

- The sibling has the object, UDP gets through but TCP connection is firewalled.

- The ICP request does not match the HTCP request (ie the HTCP is looking for a specific object, but the ICP doesn't have the right Vary setting passed on to the sibling.)

- You have an old cache-digest and the sibling has expired the object to make new space

(don't ask me why, all a wild guess remember).

Amos
--
Please use Squid 2.6.STABLE19 or 3.0.STABLE4

Reply via email to