You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@trafficserver.apache.org by Alan Carroll <so...@oath.com.INVALID> on 2018/06/20 16:42:46 UTC
Per upstream server connection tracking - PR 3819
There is an refresh PR 3819 for this feature which tracks connections per
upstream server. The original PR was an in place refresh to fix bugs and
improve performance which we have been running in Oath production. I've
been requested to make it a more thorough overhaul. To this end I'm working
changing the configuration set up. The new values would be
proxy.config.http.per_server.max_connections INT - maximum # of connections
allowed for an upstream. Default 0 (disabled). Previously
proxy.config.http.origin_max_connections. Overridable.
proxy.config.http.per_server.match STRING - "ip", "host", "both", or
"none", with the same meaning as
proxy.config.http.server_session_sharing.match. This groups the upstream
servers and counts connections for each group. Default "ip". Previously
this used the server session sharing match value. Overridable.
proxy.config.http.per_server.queue_size INT - if there are no connections
available, reschedule the transaction to try again later. A value of -1
means unlimited queue size, 0 means no queuing. The default would change
from -1 (unlimited) to 0 (disabled). Previously
proxy.config.http.origin_max_connections_queue.
proxy.config.http.per_server.queue_delay INT - the # of milliseconds to
delay for a transaction in the queue. Default 100.
proxy.config.http.per_server.min_keep_alive INT - the # of sessions to
attempt to maintain to the upstream group. If there are fewer than this a
new connection will be opened even if an existing server session is
available. Default 0. Previously
proxy.config.http.origin_min_keep_alive_connections.
proxy.config.http.per_server.alert_delay INT - throttle alert messages
relating to a group to no more often than this many seconds. Default 60.
Re: Per upstream server connection tracking - PR 3819
Posted by Susan Hinrichs <sh...@oath.com.INVALID>.
The queuing feature was in the previous (current implementation) which is
why I assume it is in this PR.
We don't use the queueing feature.
On Thu, Jun 21, 2018 at 1:04 PM, Bryan Call <bc...@apache.org> wrote:
> I would like to get more feedback on the queueing and retry logic from the
> community and if anyone is or would use these options in the future.
>
> -Bryan
>
>
>
> > On Jun 20, 2018, at 9:42 AM, Alan Carroll <so...@oath.com.INVALID>
> wrote:
> >
> > There is an refresh PR 3819 for this feature which tracks connections per
> > upstream server. The original PR was an in place refresh to fix bugs and
> > improve performance which we have been running in Oath production. I've
> > been requested to make it a more thorough overhaul. To this end I'm
> working
> > changing the configuration set up. The new values would be
> >
> > proxy.config.http.per_server.max_connections INT - maximum # of
> connections
> > allowed for an upstream. Default 0 (disabled). Previously
> > proxy.config.http.origin_max_connections. Overridable.
> >
> > proxy.config.http.per_server.match STRING - "ip", "host", "both", or
> > "none", with the same meaning as
> > proxy.config.http.server_session_sharing.match. This groups the upstream
> > servers and counts connections for each group. Default "ip". Previously
> > this used the server session sharing match value. Overridable.
> >
> > proxy.config.http.per_server.queue_size INT - if there are no
> connections
> > available, reschedule the transaction to try again later. A value of -1
> > means unlimited queue size, 0 means no queuing. The default would change
> > from -1 (unlimited) to 0 (disabled). Previously
> > proxy.config.http.origin_max_connections_queue.
> >
> > proxy.config.http.per_server.queue_delay INT - the # of milliseconds to
> > delay for a transaction in the queue. Default 100.
> >
> > proxy.config.http.per_server.min_keep_alive INT - the # of sessions to
> > attempt to maintain to the upstream group. If there are fewer than this a
> > new connection will be opened even if an existing server session is
> > available. Default 0. Previously
> > proxy.config.http.origin_min_keep_alive_connections.
> >
> > proxy.config.http.per_server.alert_delay INT - throttle alert messages
> > relating to a group to no more often than this many seconds. Default 60.
>
>
Re: Per upstream server connection tracking - PR 3819
Posted by Bryan Call <bc...@apache.org>.
I would like to get more feedback on the queueing and retry logic from the community and if anyone is or would use these options in the future.
-Bryan
> On Jun 20, 2018, at 9:42 AM, Alan Carroll <so...@oath.com.INVALID> wrote:
>
> There is an refresh PR 3819 for this feature which tracks connections per
> upstream server. The original PR was an in place refresh to fix bugs and
> improve performance which we have been running in Oath production. I've
> been requested to make it a more thorough overhaul. To this end I'm working
> changing the configuration set up. The new values would be
>
> proxy.config.http.per_server.max_connections INT - maximum # of connections
> allowed for an upstream. Default 0 (disabled). Previously
> proxy.config.http.origin_max_connections. Overridable.
>
> proxy.config.http.per_server.match STRING - "ip", "host", "both", or
> "none", with the same meaning as
> proxy.config.http.server_session_sharing.match. This groups the upstream
> servers and counts connections for each group. Default "ip". Previously
> this used the server session sharing match value. Overridable.
>
> proxy.config.http.per_server.queue_size INT - if there are no connections
> available, reschedule the transaction to try again later. A value of -1
> means unlimited queue size, 0 means no queuing. The default would change
> from -1 (unlimited) to 0 (disabled). Previously
> proxy.config.http.origin_max_connections_queue.
>
> proxy.config.http.per_server.queue_delay INT - the # of milliseconds to
> delay for a transaction in the queue. Default 100.
>
> proxy.config.http.per_server.min_keep_alive INT - the # of sessions to
> attempt to maintain to the upstream group. If there are fewer than this a
> new connection will be opened even if an existing server session is
> available. Default 0. Previously
> proxy.config.http.origin_min_keep_alive_connections.
>
> proxy.config.http.per_server.alert_delay INT - throttle alert messages
> relating to a group to no more often than this many seconds. Default 60.
Re: Per upstream server connection tracking - PR 3819
Posted by Alan Carroll <so...@oath.com.INVALID>.
If a transaction attempts to connect outbound, the number of connections
for that upstream group is checked. If the maximum would be exceeded, then
* If there is room in the queue (e.g. the number of currently queued
transactions is less than the max) the transaction waits
`per_server.queue_delay` milliseconds and tries the upstream connection
again.
* otherwise a 502 - "Too many connections" response is generated and sent
to the user agent.
This is the current behavior, except the delay is not adjustable (it is
hardwired to 100ms) and the queue max is by default unlimited. There was an
objection that this default is dangerous and should only be done if the
administrator explicitly requests it.
On Wed, Jun 20, 2018 at 11:57 AM, Eric Friedrich (efriedri) <
efriedri@cisco.com.invalid> wrote:
> Can you please provide some more details on proxy.config.http.per_server.
> queue_delay?
>
> Whats being delayed and what happens after 100ms?
>
> —Eric
>
> > On Jun 20, 2018, at 12:42 PM, Alan Carroll <so...@oath.com.INVALID>
> wrote:
> >
> > There is an refresh PR 3819 for this feature which tracks connections per
> > upstream server. The original PR was an in place refresh to fix bugs and
> > improve performance which we have been running in Oath production. I've
> > been requested to make it a more thorough overhaul. To this end I'm
> working
> > changing the configuration set up. The new values would be
> >
> > proxy.config.http.per_server.max_connections INT - maximum # of
> connections
> > allowed for an upstream. Default 0 (disabled). Previously
> > proxy.config.http.origin_max_connections. Overridable.
> >
> > proxy.config.http.per_server.match STRING - "ip", "host", "both", or
> > "none", with the same meaning as
> > proxy.config.http.server_session_sharing.match. This groups the upstream
> > servers and counts connections for each group. Default "ip". Previously
> > this used the server session sharing match value. Overridable.
> >
> > proxy.config.http.per_server.queue_size INT - if there are no
> connections
> > available, reschedule the transaction to try again later. A value of -1
> > means unlimited queue size, 0 means no queuing. The default would change
> > from -1 (unlimited) to 0 (disabled). Previously
> > proxy.config.http.origin_max_connections_queue.
> >
> > proxy.config.http.per_server.queue_delay INT - the # of milliseconds to
> > delay for a transaction in the queue. Default 100.
> >
> > proxy.config.http.per_server.min_keep_alive INT - the # of sessions to
> > attempt to maintain to the upstream group. If there are fewer than this a
> > new connection will be opened even if an existing server session is
> > available. Default 0. Previously
> > proxy.config.http.origin_min_keep_alive_connections.
> >
> > proxy.config.http.per_server.alert_delay INT - throttle alert messages
> > relating to a group to no more often than this many seconds. Default 60.
>
>
Re: Per upstream server connection tracking - PR 3819
Posted by "Eric Friedrich (efriedri)" <ef...@cisco.com.INVALID>.
Can you please provide some more details on proxy.config.http.per_server.queue_delay?
Whats being delayed and what happens after 100ms?
—Eric
> On Jun 20, 2018, at 12:42 PM, Alan Carroll <so...@oath.com.INVALID> wrote:
>
> There is an refresh PR 3819 for this feature which tracks connections per
> upstream server. The original PR was an in place refresh to fix bugs and
> improve performance which we have been running in Oath production. I've
> been requested to make it a more thorough overhaul. To this end I'm working
> changing the configuration set up. The new values would be
>
> proxy.config.http.per_server.max_connections INT - maximum # of connections
> allowed for an upstream. Default 0 (disabled). Previously
> proxy.config.http.origin_max_connections. Overridable.
>
> proxy.config.http.per_server.match STRING - "ip", "host", "both", or
> "none", with the same meaning as
> proxy.config.http.server_session_sharing.match. This groups the upstream
> servers and counts connections for each group. Default "ip". Previously
> this used the server session sharing match value. Overridable.
>
> proxy.config.http.per_server.queue_size INT - if there are no connections
> available, reschedule the transaction to try again later. A value of -1
> means unlimited queue size, 0 means no queuing. The default would change
> from -1 (unlimited) to 0 (disabled). Previously
> proxy.config.http.origin_max_connections_queue.
>
> proxy.config.http.per_server.queue_delay INT - the # of milliseconds to
> delay for a transaction in the queue. Default 100.
>
> proxy.config.http.per_server.min_keep_alive INT - the # of sessions to
> attempt to maintain to the upstream group. If there are fewer than this a
> new connection will be opened even if an existing server session is
> available. Default 0. Previously
> proxy.config.http.origin_min_keep_alive_connections.
>
> proxy.config.http.per_server.alert_delay INT - throttle alert messages
> relating to a group to no more often than this many seconds. Default 60.