You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@trafficserver.apache.org by GitBox <gi...@apache.org> on 2021/11/23 01:07:06 UTC

[GitHub] [trafficserver] rob05c commented on issue #8519: How long does ATS take to reinstate a downed parent?

rob05c commented on issue #8519:
URL: https://github.com/apache/trafficserver/issues/8519#issuecomment-976078484


   The settings are in records.config: 
   
   https://docs.trafficserver.apache.org/en/8.1.x/admin-guide/files/records.config.en.html#parent-proxy-configuration
   
   There are a lot of variables here. 
   
   First, it will retry a parent `proxy.config.http.parent_proxy.fail_threshold` times before marking it down. Each time, the timeout will be `proxy.config.http.parent_proxy.connect_attempts_timeout`. The time before the attempt fails can be up to that time, such as if a firewall is simply dropping packets, but maybe be shorter, such as a firewall returning a TCP Reset. 
   
   If your `proxy.config.http.parent_proxy.total_connect_attempts` is less than `proxy.config.http.parent_proxy.fail_threshold`, the time to mark down will also depend on how long in-between client requests.
   
   After a parent is marked down, ATS will wait `proxy.config.http.parent_proxy.retry_time` before trying it again for a future client request.
   
   ATS will make `proxy.config.http.parent_proxy.per_parent_connect_attempts` to a single parent. Then it will try the next parent (per the parent selection algorithm - round_robin, strict, consistent hash). After making a total of `proxy.config.http.parent_proxy.total_connect_attempts` attempts, it will return an error to the client.
   
   So, the time to reinstate a downed parent after the initial attempt could be as much as `proxy.config.http.parent_proxy.fail_threshold * 
   (proxy.config.http.parent_proxy.connect_attempts_timeout + proxy.config.http.parent_proxy.retry_time) * "the time between clients requesting" + 
   proxy.config.http.parent_proxy.retry_time + 
   proxy.config.http.parent_proxy.connect_attempts_timeout`
   
   Or as little as `proxy.config.http.parent_proxy.fail_threshold`.
   
   Assuming my math is right. Again, there are a lot of variables in-flight here.
   
   This is also assuming you're using parent.config and have `proxy.config.http.parent_proxy_routing_enable` set to `1`. If you're not, the similar settings here will be used instead:
   
   https://docs.trafficserver.apache.org/en/8.1.x/admin-guide/files/records.config.en.html#origin-server-connect-attempts
   
   You might also find this helpful: 
   
   https://docs.trafficserver.apache.org/en/8.1.x/admin-guide/performance/index.en.html#timeout-settings
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscribe@trafficserver.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org