[squid-users] TCP_MISS in images
Amos Jeffries
squid3 at treenet.co.nz
Thu Jul 23 17:57:58 UTC 2015
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
More information about the squid-users
mailing list