You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hc.apache.org by "Eoghan O'Hare (Jira)" <ji...@apache.org> on 2021/08/24 16:55:00 UTC

[jira] [Updated] (HTTPCLIENT-2172) HttpClient4 limiting to 5 http connections per route, web requests back up in client

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

Eoghan O'Hare updated HTTPCLIENT-2172:
--------------------------------------
    Affects Version/s:     (was: 4.5.14)
                       4.5.13
          Environment: 
Axis2 1.7.9
httpclient-4.5.13.jar
httpcore-4.4.14.jar

  was:
Axis2 1.7.9
httpclient-4.5.3.jar
httpcore-4.4.14.jar


> HttpClient4 limiting to 5 http connections per route, web requests back up in client
> ------------------------------------------------------------------------------------
>
>                 Key: HTTPCLIENT-2172
>                 URL: https://issues.apache.org/jira/browse/HTTPCLIENT-2172
>             Project: HttpComponents HttpClient
>          Issue Type: Bug
>    Affects Versions: 3.1 (end of life), 4.5.13
>         Environment: Axis2 1.7.9
> httpclient-4.5.13.jar
> httpcore-4.4.14.jar
>            Reporter: Eoghan O'Hare
>            Priority: Major
>         Attachments: axis2_httpclient.7z, httpclient4_setup_code.txt
>
>
> I am investigating a client side issue under load whereby;
>  # The number of http connections per http route cannot be increased above 5
>  # Http POST requests seem to backup in the httpclient and requests are delayed being sent
> The client application is invoking SOAP web services which are implemented in the client using Axis2 auto generated stubs. 
> The Axis2 ServiceClient is configured to use httpclient4.
> For this load test, there was 1000 web requests sent at a rate of 100 web requests per second. There is one http server being used. That is the RHEL 8 packaged Apache httpd. The server is localhost to the client. 
> The web requests seem backup in the httpclient, with request send delays that increase exponentially. From running tcpdump, I can see that a maximum of 5 http connections are created to the http server during the load test.
> I have tried the load test splitting the load across 4 http servers, I can get above 100 total web service requests per second, however once I increase the rates to get up to 300 web requests per second the same issues start occurring. Makes sense to some degree since 100 web request per second across 4 routes would be only 25 web request per route per second.
> From an implementation point of view, the client application is using the PoolingClientConnectionManager. The default max per route setting is set to be 200, the max total is set to be 1000.
> From our client traces, I can see that there are approximately 100 web service invocations into axis2 per second for the 10 second run.
> I have attached axis2 and httpclient trace level logs from the load test with one http route at 100ws requests per second for simplicity. I have tried to attach a tcpdump capture from that test, however Jira would not allow me (size wise, it is only 2.8M).
> Find attached the sample code where;
>  * the connection manager is instantiated
>  * the connection manager settings are configured
>  * the http client instance is created
>  * the http client instance is set as the cached client into axis2 ServiceClient
> We have a production client that is using Apache commons httpclient3 for these web service transmissions. I understand this is end of life, however it is having a similar issue with a limited number of http connections created and a backup of web requests within httpclient/axis.
> I am hoping that you can give some pointers as to how to resolve these issues on both httpclient libraries since they are very similar.
> I have been working this issue for a number of weeks, trying lots of different code and configurations, changing axis versions, changing http client versions etc. Any help you can provide would be much appreciated.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@hc.apache.org
For additional commands, e-mail: dev-help@hc.apache.org