Search squid archive

Re: Loads of TCP_MISS on files that should be hit

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Okay, I understand your point about Vary: User-Agent and have forwarded the information to the webmaster, however this cannot be the source of my TCP_MISSes as I only use wget to carry out the tests.
I have added the debug options you suggested, and removed the parameters on my refresh_pattern line, so that it now looks like:

refresh_pattern -i \.png 12960 90% 12960

cache.log reads this when I try and wget epo.png:

2013/01/09 12:29:58.955 kid1| ctx: exit level  0
2013/01/09 12:29:58.955 kid1| refresh.cc(539) getMaxAge: getMaxAge: 'http://flags.tatoeba.org/img/flags/epo.png'
2013/01/09 12:29:58.993 kid1| ctx: enter level  0: 'http://flags.tatoeba.org/img/flags/epo.png'
2013/01/09 12:29:58.993 kid1| refresh.cc(246) refreshCheck: refreshCheck: 'http://flags.tatoeba.org/img/flags/epo.png'
2013/01/09 12:29:58.993 kid1| refresh.cc(261) refreshCheck: refreshCheck: Matched '\.png 777600 90%% 777600'
2013/01/09 12:29:58.993 kid1| refresh.cc(263) refreshCheck: 	age:	60
2013/01/09 12:29:58.993 kid1| refresh.cc(265) refreshCheck: 	check_time:	Wed, 09 Jan 2013 11:30:58 GMT
2013/01/09 12:29:58.993 kid1| refresh.cc(267) refreshCheck: 	entry->timestamp:	Wed, 09 Jan 2013 11:29:58 GMT
2013/01/09 12:29:58.993 kid1| refresh.cc(170) refreshStaleness: FRESH: expires 1389311980 >= check_time 1357731058 
2013/01/09 12:29:58.993 kid1| refresh.cc(287) refreshCheck: Staleness = -1
2013/01/09 12:29:58.993 kid1| refresh.cc(372) refreshCheck: refreshCheck: object isn't stale..
2013/01/09 12:29:58.993 kid1| refresh.cc(374) refreshCheck: refreshCheck: returning FRESH_EXPIRES
2013/01/09 12:29:58.994 kid1| http.cc(466) cacheableReply: YES because HTTP status 200

Yet access.log still returns a miss:
1357731100.092    129 127.0.0.1 TCP_MISS/200 618 GET http://flags.tatoeba.org/img/flags/epo.png - HIER_DIRECT/86.65.39.22 image/png

On mer., 2013-01-09 at 23:22 +1300, Amos Jeffries wrote:
> On 9/01/2013 9:43 p.m., Victor wrote:
> > Hello
> >
> > After spending hours configuring squid 3.2.5, I only get TCP_MISS. To
> > narrow the problem, I will focus on one PNG file that I want cached, but
> > note that I get TCP_MISS for 99% of my requests, not only PNG files.
> > Refreshing doesn’t help, it never gets a TCP_HIT.
> >
> >          1357671721.566 127 127.0.0.1 TCP_MISS/200 618 GET
> > http://flags.tatoeba.org/img/flags/epo.png - HIER_DIRECT/86.65.39.22
> > image/png
> >          
> > in cache.log, I get:
> <snip>
> >          2013/01/09 09:27:04.757 kid1| http.cc(732) processReplyHeader:
> >          HTTP Server local=192.168.1.13:56799 remote=86.65.39.22:80 FD 13
> >          flags=1
> >          2013/01/09 09:27:04.757 kid1| http.cc(733) processReplyHeader:
> >          HTTP Server REPLY:
> >          ---------
> >          HTTP/1.1 200 OK
> >          Date: Wed, 09 Jan 2013 08:27:24 GMT
> >          Server: Apache/2.2.16 (Debian)
> >          Accept-Ranges: bytes
> >          Content-Length: 219
> >          Vary: User-Agent
> >          Expires: Fri, 10 Jan 2014 00:00:00 GMT
> >          Cache-Control: public, no-transform
> >          Content-Type: image/png
> >          Via: 1.1 tatoeba.fsffrance.org
> >          Keep-Alive: timeout=15, max=100
> >          Connection: Keep-Alive
> >          
> >          �PNG
> >          
> >          
> 
> This particular object is likely a MISS because it says Vary:User-Agent. 
> This is a rather unfriendly action for a site to take, it means that 
> even a single byte of diffference in two clients User-Agent header cause 
> a MISS and replaces the cached content with new data (which will likely 
> MISS on the next client too).
> 
> 
> > And this is my config file:
> >
> >          cache_effective_user squid
> >          cache_effective_group squid
> >          acl localnet src 10.0.0.0/8 # RFC1918 possible internal network
> >          acl localnet src 172.16.0.0/12 # RFC1918 possible internal
> >          network
> >          acl localnet src 192.168.0.0/16 # RFC1918 possible internal
> >          network
> >          acl localnet src fc00::/7 # RFC 4193 local private network range
> >          acl localnet src fe80::/10 # RFC 4291 link-local (directly
> >          plugged) machines
> >          acl SSL_ports port 443
> >          acl Safe_ports port 80 # http
> >          acl Safe_ports port 21 # ftp
> >          acl Safe_ports port 443 # https
> >          acl Safe_ports port 70 # gopher
> >          acl Safe_ports port 210 # wais
> >          acl Safe_ports port 1025-65535 # unregistered ports
> >          acl Safe_ports port 280 # http-mgmt
> >          acl Safe_ports port 488 # gss-http
> >          acl Safe_ports port 591 # filemaker
> >          acl Safe_ports port 777 # multiling http
> >          acl Safe_ports port 901 # SWAT
> >          acl CONNECT method CONNECT
> >          http_access allow localhost manager
> >          http_access deny manager
> >          http_access deny !Safe_ports
> >          http_access deny CONNECT !SSL_ports
> >          debug_options ALL,1 11,3 31,3 65,3
> >          http_access allow localnet
> >          http_access allow localhost
> >          http_access deny all
> >          http_port 3303
> >          cache_dir ufs /var/cache/squid 600 16 256
> >          cache_mem 256 MB
> >          coredump_dir /var/cache/squid
> >          refresh_pattern ^ftp: 1440 20% 10080
> >          refresh_pattern -i \.(gif|png|jpg|jpeg|ico|bmp)$ 260000 90%
> >          260009 override-expire ignore-no-cache ignore-no-store
> >          ignore-private
> 
> In 3.2 "ignore-no-cache" is now ignored. The Cache-Control:no-cache 
> header *actually* tells Squid to revalidate the object before sending 
> (this MAY result in a MISS if the object has changed, or in a REFRESH / 
> 304 status if the server object has not).
> 
> override-expires tells Squid to ignore the Expires header, in the object 
> in your log above Expires is the only thing provided to Squid indicating 
> that the objet is storable. Ignoring it may lead to MISS for objects 
> without Cache-Control which rely on it for storage timing (like the PNG 
> above does).
> 
> ignore-private - this is a very dangerous thing to do. Even things like 
> images may have drastic unwanted side effects. Think about security 
> Captcha systems ... what happens when you force serving the client a 
> cached image there? Just about every file type has some problem when you 
> generalize it across the entire Internet. If you have to use this 
> directive at all make the pattern as specific as possible to the problem 
> case.
> 
> >          refresh_pattern ^gopher: 1440 0% 1440
> >          refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
> >          refresh_pattern .       0   20% 4320
> >          
> > Note that I doubled check that my cache directories belonged to
> > squid:squid and their size slowly grows when I am using squid, yet I get
> > a TON of tcp_miss, even on cacheable sites (such aswww.lci.fr)
> > Any idea?
> >
> 
> Okay. So the objects are being cached, but not served from there.
> In 3.2.5 debug_options 22,3 should give you the stale.fresh outcomes 
> from the cache check.
> 
> Amos




[Index of Archives]     [Linux Audio Users]     [Samba]     [Big List of Linux Books]     [Linux USB]     [Yosemite News]

  Powered by Linux