[squid-users] TCP_MISS in images

Amos Jeffries squid3 at treenet.co.nz
Fri Jul 24 09:26:39 UTC 2015


On 24/07/2015 6:02 a.m., Yuri Voinov wrote:
> 
> 
> 
> 23.07.15 23:57, Amos Jeffries пишет:
>> On 24/07/2015 4:02 a.m., Ulises Nicolini wrote:
>>> Hello,
>>>
>>> I have a basic squid 3.5 configuration with
>>>
>>> maximum_object_size_in_memory 64 KB
>>> maximum_object_size 100000 KB
>>> minimum_object_size 512 bytes
>>>
>>> refresh_pattern -i \.(gif|png|jpg|jpeg|ico)$ 1440 90% 10080
>>> override-expire ignore-no-cache ignore-private
>>> refresh_pattern -i (/cgi-bin/)                  0       0%      0
>>> refresh_pattern .                                       0 20%     4320
>>>
> 
>> ignore-no-cache has no meaning for Squid-3.5.
> 
>> ignore-private does nothing on your images. It makes current Squid act
>> like must-revalidate was set on the response instead of "private".
> 
>> override-expire also does nothing on your images. As used above it makes
>> Squid act like "s-maxage=604800" was given instead of any Expires:
>> header or max-age=N / s-maxage=N Cache-Control values.
> 
> 
>>>
>>> cache_dir rock  /cache1/rock1 256  min-size=500 max-size=32767
>>> max-swap-rate=250 swap-timeout=350
>>> cache_dir diskd /cache2/diskd1 1000 16 256 min-size=32768
> max-size=1048576
>>> cache_dir diskd /cache2/diskd2 100000 16 256 min-size=1048576
>>>
>>>
>>> But when I test it against my webserver, using only one client PC, the
>>> only thing I get are TCP_MISSes of my images.
>>>
>>> 1437664284.339     11 192.168.2.103 TCP_MISS/200 132417 GET
>>> http://test-server.com/images/imagen3.jpg - HIER_DIRECT/192.168.2.10
>>> image/jpeg
>>> 1437664549.753      5 192.168.2.103 TCP_MISS/200 53933 GET
>>> http://test-server.com/images/imagen1.gif - HIER_DIRECT/192.168.2.10
>>> image/gif
>>> 1437665917.469     18 192.168.2.103 TCP_MISS/200 8319 GET
>>> http://test-server.com/images/icono.png - HIER_DIRECT/192.168.2.10
>>> image/png
>>>
>>> The response headers don't have Vary tags or any other that may impede
>>> caching
>>>
>>> Accept-Ranges    bytes
>>> Connection    close
>>> Content-Length    53644
>>> Content-Type    image/gif
>>> Date    Thu, 23 Jul 2015 15:56:07 GMT
>>> Etag    "e548d4-d18c-51b504b95dec0"
>>> Last-Modified    Mon, 20 Jul 2015 15:36:03 GMT
>>> Server    Apache/2.2.22 (EL)
>>>
> 
>> Your refresh pattern says to only cache these objects for +90% of their
>> current age, so long as that period is longer than 1 day (1440 mins) and
>> no more that 7 days (10080 mins).
> 
>> Which means;
>>  they are 3 days 20 mins 4 secs old right now (260404 secs).
>>  90% of that is 2 days 17 hrs 6 mins 3 secs (234363 secs).
> 
>> So the object "e548d4-d18c-51b504b95dec0" will stay in cache for the
>> next 2 days 17hrs etc.
> 
>> I notice though that the Content-Length size does not match any of the
>> logged transfer sizes. Which makes me wonder if the object is actually
>> varying despite the lack of Vary headers.
> 
> 
>>>
>>> Is it necessary a certain amount of requests of a single object to be
>>> cached (mem o disk) or am I facing some other problem here?
> 
>> Yes. Two requests. The first (a MISS) will add it to cache the second
>> and later should be HITs on the now cached object.
> 
>> BUT, only if you are not force-reloading the browser for your tests.
>> Force-reload instructs Squid it ignore its cached content and replace it
>> with another MISS.

> Amos, this behaviour depends from refresh_pattern and often can be
> ignore (with reload-into-ims, for example).

I know. You know that. The Q about number of requests is a big hint that
he is very new to this and may not be aware yet.

He has not configured anything that would affect it. So it is still
relevant to his Squid and still #1 most common mistake when testing
these things.

Amos


More information about the squid-users mailing list