trafficserver-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Stephen Washburn <step...@stephenwashburn.com>
Subject Re: Avoiding TCP_REFRESH_HIT
Date Thu, 23 Nov 2017 17:56:49 GMT
Apologies if I’m missing something, but doesn’t that page say that there is an option to
have it treat freshness as such:

> Traffic Server considers all HTTP objects in the cache to be fresh:
> Never revalidate HTTP objects in the cache with the origin server.

By modifying proxy.config.http.cache.when_to_revalidate

https://docs.trafficserver.apache.org/en/7.1.x/admin-guide/files/records.config.en.html#proxy-config-http-cache-when-to-revalidate

Stephen

> On Nov 23, 2017, at 09:26, Veiko Kukk <veiko.kukk@gmail.com> wrote:
> 
> Now to think about it, i might have set dest_domain to wrong value. Documentation is
not that clear on that. If there are x.y.z.tld and a.b.z.tld then what have to be written
to dest_domain to capture both of those?
> dest_domain=z.tld
> or
> dest_domain=*.*.z.tld
> 
> Or someting else?
> 
> Veiko
> 
> 
> 2017-11-23 19:20 GMT+02:00 Veiko Kukk <veiko.kukk@gmail.com>:
>> Hi Alan,
>> 
>> That is what i had already done in cache.config:
>> dest_domain=.*.source.tld ttl-in-cache=9999d
>> 
>> Of cource, source.tld is actually real domain, and this did not avoid checking origin
for object freshness, it was still considered stale by ATS.
>> 
>> https://docs.trafficserver.apache.org/en/7.1.x/admin-guide/configuration/cache-basics.en.html#ensuring-cached-object-freshness
describes that if Expires is present, it is used to calculate objects freshness. And there
is no way to ignore it. I've configured now ATS to remove Expires header and set Cache-control:
max-age=157784630 with header rewrite plugin and cond %{READ_RESPONSE_HDR_HOOK}
>> Will see it that helps.
>> 
>> Veiko
>> 
>> 
>> 2017-11-23 18:38 GMT+02:00 Alan Carroll <solidwallofcode@oath.com>:
>>> You might try fiddling with the 'cache.config' file and set a cache TTL of 10
years or so.
>>> 
>>>> On Thu, Nov 23, 2017 at 10:11 AM, Veiko Kukk <veiko.kukk@gmail.com>
wrote:
>>>> Hi David,
>>>> 
>>>> Objects are not fetched from ATS via browser. ATS is just internal cache.
Only problem is to trick ATS into believing that object is always fresh, never stale.
>>>> I wonder if modifying headers before ATS (READ_RESPONSE_HDR_HOOK) removing
or changing Expires and/or adding max-age to some very big value might be right way to go
for me.
>>>> 
>>>> Veiko
>>>> 
>>>> 
>>>> 2017-11-23 17:52 GMT+02:00 David Carlin <dcarlin@oath.com>:
>>>>> Have you considered adding "Cache-Control: Immutable" to these objects
which will never require re-validation?  This will prevent the browser from attempting an
If-Modified-Since request. 
>>>>> 
>>>>> https://hacks.mozilla.org/2017/01/using-immutable-caching-to-speed-up-the-web/
>>>>> 
>>>>> David
>>>>> 
>>>>>> On Thu, Nov 23, 2017 at 10:07 AM, Veiko Kukk <veiko.kukk@gmail.com>
wrote:
>>>>>> In addition to my previous e-mail, headers that are provided by source
to ATS:
>>>>>> 
>>>>>> < HTTP/1.1 200 OK
>>>>>> < Content-Length: 1185954
>>>>>> < Accept-Ranges: bytes
>>>>>> < Last-Modified: Mon, 02 Nov 2015 17:56:12 GMT
>>>>>> < Etag: 92ef40097ba87bdf09efcf7e1cefd32a
>>>>>> < X-Timestamp: 1446486971.39466
>>>>>> < Content-Type: application/octet-stream
>>>>>> < Content-Disposition: attachment; filename="ABIYohNyPrJNjvFsAdgN5wc8D-8Yo4ZO.m4s";
filename*=UTF-8''ABIYohNyPrJNjvFsAdgN5wc8D-8Yo4ZO.m4s
>>>>>> < Expires: Thu, 23 Nov 2017 15:27:30 GMT
>>>>>> < X-Trans-Id: tx3a0af5473d5c41d38195c-005a16e30d
>>>>>> < X-Openstack-Request-Id: tx3a0af5473d5c41d38195c-005a16e30d
>>>>>> < Date: Thu, 23 Nov 2017 15:02:37 GMT
>>>>>> < X-IPLB-Instance: 12631
>>>>>> 
>>>>>> I assume, Expires header is here to blame and must be overriden in
ATS config, but how? I don't have control over source, its Openstack Swift object storage.
>>>>>> 
>>>>>> Veiko
>>>>>> 
>>>>>> 
>>>>>> 2017-11-23 16:35 GMT+02:00 Veiko Kukk <veiko.kukk@gmail.com>:
>>>>>>> Hi,
>>>>>>> 
>>>>>>> Could ATS in reverse proxy mode be configured such way that it
would never try to revalidate from source? It is known that in our case, object never changes
(and is never refetched from source) and it is desirable to avoid any source validation. Validation
verification adds significant overhead and we need to avoid it. Response to client with TCP_REFRESH_HIT
would take 100-200ms instead of 0-10 in case of direct local TCP_HIT.
>>>>>>> 
>>>>>>> I've configured following:
>>>>>>> dest_domain=.*.source.tld action=ignore-no-cache
>>>>>>> dest_domain=.*.source.tld revalidate=9999d
>>>>>>> dest_domain=.*.source.tld ttl-in-cache=9999d
>>>>>>> 
>>>>>>> CONFIG proxy.config.http.cache.when_to_revalidate INT 3
>>>>>>> CONFIG proxy.config.http.cache.required_headers INT 0
>>>>>>> 
>>>>>>> But i still get TCP_REFRESH_HIT even when 9999 days have not
passed (obviously).
>>>>>>> 
>>>>>>> NB! ATS is used as internal cache and our 'client' never explicitly
requests revalidation.
>>>>>>> 
>>>>>>> Thanks,
>>>>>>> Veiko
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> 
>> 
> 

Mime
View raw message