You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@trafficserver.apache.org by "Leif Hedstrom (JIRA)" <ji...@apache.org> on 2014/11/05 22:53:35 UTC

[jira] [Updated] (TS-2458) the http transaction should not be rescheduled when the original connections overflow

     [ https://issues.apache.org/jira/browse/TS-2458?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Leif Hedstrom updated TS-2458:
------------------------------
    Fix Version/s:     (was: 5.2.0)
                   sometime

> the http transaction should not be rescheduled when the original connections overflow
> -------------------------------------------------------------------------------------
>
>                 Key: TS-2458
>                 URL: https://issues.apache.org/jira/browse/TS-2458
>             Project: Traffic Server
>          Issue Type: Improvement
>          Components: HTTP
>            Reporter: Yu Qing
>             Fix For: sometime
>
>
> we have origin connections limits, the parameter proxy.config.http.server_max_connections is for whole connections, and the parameter proxy.config.http.origin_max_connections is for the specified connections per original server ip / host.
> the http transaction is rescheduled / retried after 100ms  when it's original connections exceed these limits.
> these transactions will be rescheduled repeatly when the original server is very slow. the system worsens when these retries happen because the http transactions accumulate more and more. 
> I think we should cut off these transactions immediately other than retry after 100ms.
> the rescheduling codes in proxy/http/HttpSM.cc as:
> {code}
> 4581     if (sum >= t_state.http_config_param->server_max_connections) {
> 4582       ink_assert(pending_action == NULL);
> 4583       pending_action = eventProcessor.schedule_in(this, HRTIME_MSECONDS(100));
> 4584       httpSessionManager.purge_keepalives();
> 4585       return;
> 4586     }
> 4587   }
> 4588   // Check to see if we have reached the max number of connections on this
> 4589   // host.
> 4590   if (t_state.txn_conf->origin_max_connections > 0) {
> 4591     ConnectionCount *connections = ConnectionCount::getInstance();
> 4592 
> 4593     char addrbuf[INET6_ADDRSTRLEN];
> 4594     if (connections->getCount((t_state.current.server->addr)) >= t_state.txn_conf->origin_max_connections) {
> 4595       DebugSM("http", "[%" PRId64 "] over the number of connection for this host: %s", sm_id,
> 4596         ats_ip_ntop(&t_state.current.server->addr.sa, addrbuf, sizeof(addrbuf)));
> 4597       ink_assert(pending_action == NULL);
> 4598       pending_action = eventProcessor.schedule_in(this, HRTIME_MSECONDS(100));
> 4599       return;
> 4600     }
> 4601   }
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)