Re: Easy Reuse across Multiple Multi Handles

2020-07-30 Thread Damon Earp via curl-library
Sorry, I'm not claiming there's a bug. I was expecting that by limiting the max connections to a host those few connections would be reused heavily. For example 100 requests all going to 1 host with a MAX_HOST_CONNECTIONS of 10 would be 10 connections with an average of 10 requests each. My expecta

Re: Easy Reuse across Multiple Multi Handles

2020-07-30 Thread Daniel Stenberg via curl-library
On Wed, 29 Jul 2020, Damon Earp via curl-library wrote: In the past few months we moved from v7.61.1 to v7.67.0, which is why I looked at that briefly. Anecdotally it looks like the newer version of libcurl is causing more single use connections than the older version. But as I said, I haven't

Re: Easy Reuse across Multiple Multi Handles

2020-07-29 Thread Damon Earp via curl-library
I'll try to rephrase: --- libcurl v7.67.0, using a single CURLM and ~400 HTTP/1.1 GET requests: Setting CURLMOPT_MAX_HOST_CONNECTIONS to 16 lead to > 30 Connections being used to complete the task. And most of them lived for less than a tenth of a second. Setting CURLMOPT_MAX_HOST_CONNECTIONS to

Re: Easy Reuse across Multiple Multi Handles

2020-07-28 Thread Daniel Stenberg via curl-library
On Tue, 28 Jul 2020, Damon Earp wrote: I finally got time to sit down and try to figure out what is happening. The issue goes away when I set CURLMOPT_MAXCONNECTS. Before I was just setting CURLMOPT_MAX_HOST_CONNECTIONS and most of my connections would live for a few milliseconds, once MAXCONN

Re: Easy Reuse across Multiple Multi Handles

2020-07-28 Thread Damon Earp via curl-library
Thanks for shooting down my wild guesses! I finally got time to sit down and try to figure out what is happening. The issue goes away when I set CURLMOPT_MAXCONNECTS. Before I was just setting CURLMOPT_MAX_HOST_CONNECTIONS and most of my connections would live for a few milliseconds, once MAXCONNE

Re: Easy Reuse across Multiple Multi Handles

2020-07-26 Thread Patrick Schlangen via curl-library
Am 26.07.2020 um 13:49 schrieb Daniel Stenberg : > > On Sun, 26 Jul 2020, Patrick Schlangen wrote: > >> that makes me wonder what retrieving the connect time, SSL connection time, >> name resolving time etc would return when a connection was reused. Do you >> have any information on that? > >

Re: Easy Reuse across Multiple Multi Handles

2020-07-26 Thread Daniel Stenberg via curl-library
On Sun, 26 Jul 2020, Patrick Schlangen wrote: When using the multi interface, the pool of connections is held by the multi handle and it gets shared and used by all the easy handles that are added to the multi handles. When a transfer is done, the connection will be help alive (if possible) ev

Re: Easy Reuse across Multiple Multi Handles

2020-07-26 Thread Patrick Schlangen via curl-library
Hi, > On 26. Jul 2020, at 12:41, Daniel Stenberg via curl-library > wrote: > > On Thu, 9 Jul 2020, Damon Earp via curl-library wrote: > >> After curl_multi_info_read says a request is complete, does the easy handle >> still hold the connection? > > No it doesn't. > > When using the multi in

Re: Easy Reuse across Multiple Multi Handles

2020-07-26 Thread Daniel Stenberg via curl-library
On Thu, 9 Jul 2020, Damon Earp via curl-library wrote: After curl_multi_info_read says a request is complete, does the easy handle still hold the connection? No it doesn't. When using the multi interface, the pool of connections is held by the multi handle and it gets shared and used by all

Easy Reuse across Multiple Multi Handles

2020-07-09 Thread Damon Earp via curl-library
Situation: We have several threads each with their own multi handles working with libevent. Recently we thought it'd be nice to start reusing easy handles, as the cost of creating a new one is expensive compared to curl_easy_reset. However something interesting happened, our connection reuse plumme