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) <
efrie...@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 
> > <solidwallofc...@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.
>
>

Reply via email to