[
https://issues.apache.org/jira/browse/TS-153?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14286079#comment-14286079
]
Leif Hedstrom commented on TS-153:
----------------------------------
>From the conversations on IRC, I really feel we need a better name. I like
>bcall's proposal of
{code}
max_connections_in
max_connections_out
max_connections_active_in
max_connections_active_out
{code}
When we started the discussions around these features, the vision what that
we'd remove the current "throttle" mechanism, and instead the number of FDs we
require is the sum of the above. And, we throttle accordingly on the sums of
"_in" and "_out".
The point here is to simplify both configurations, and code. What I had
envisioned was that we allow up to the "sum" of the _in client connections.
Once we hit that, we start shedding; The priority on shedding is
{code}
1. Shed the oldest KA connections
2. Shed the oldest inactive connection
3. Shed the oldest active connection (this must be optional)
{code}
If after this there is still no free socket / FD, we throttle (deny the
connection).
This would allow us to get rid of a significant amount of timeout shenanigans
in the event system. There's no point (IMO) to ever timeout on KA connections,
they will get shedded when needed. The other two types of connections would
still have timeouts of course, so those configs can remain. But, we can perhaps
change the code to be less aggressive on how often we update / cancel such
timeouts (i.e. we probably don't have to do it on higher resolution than
seconds).
> "Dynamic" keep-alive timeouts
> -----------------------------
>
> Key: TS-153
> URL: https://issues.apache.org/jira/browse/TS-153
> Project: Traffic Server
> Issue Type: New Feature
> Components: Core
> Reporter: Leif Hedstrom
> Assignee: Bryan Call
> Priority: Minor
> Labels: A
> Fix For: 5.3.0
>
> Attachments: ts153.diff
>
>
> (This is from a Y! Bugzilla ticket 1821593, adding it here. . Originally
> posted by Leif Hedstrom on 2008-03-19):
> Currently you have to set static keep-alive idle timeouts in TS, e.g.
> CONFIG proxy.config.http.keep_alive_no_activity_timeout_in INT 8
> CONFIG proxy.config.http.keep_alive_no_activity_timeout_out INT 30
> even with epoll() in 1.17.x, this is difficult to configure, and put an
> appropriate timeout. The key here is that the
> settings above need to assure that you stay below the max configured number
> of connections, e.g.:
> CONFIG proxy.config.net.connections_throttle INT 75000
> I'm suggesting that we add one (or two) new configuration options, and
> appropriate TS code support, to instead of
> specifying timeouts, we specify connection limits for idle KA connections.
> For example:
> CONFIG proxy.config.http.keep_alive_max_idle_connections_in INT 50000
> CONFIG proxy.config.http_keep_alive_max_idle_connections_out INT 5000
> (one still has to be careful to leave head-room for active connections here,
> in the example above, 20000 connections
> could be active, which is a lot of traffic).
> These would override the idle timeouts, so one could use the max_idle
> connections for incoming (client) connections,
> and the idle timeouts for outgoing (origin) connections for instance.
> The benefit here is that it makes configuration not only easier, but also a
> lot safer for many applications.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)