> You make it sound as if our job is primarily to limit the number of
> CLOSE_WAIT connections. It really isn't.
> 
> The CLOSE_WAIT connections are mostly (AFAIK) unfortunate side-effects of
> us keeping connections alive after we're done using them, and while kept
> like that they get closed from the other end.
 
Many CLOSE_WAIT connections will impact the libcurl performance significantly. 
Every system has a limit for maximum number of open socket, the more CLOSE_WAIT 
connection will result in less ESTABLISHED connections.

> I'm thinking we can change the if() in ConnectionDone() to a while() instead
> and kill off connections until below the threshold. We should also add a test
> case for that.

Just changing if() to while() seems does not have a lot help. 
In my setup, 
Using libcurl-7.24.0, I can have about 20K ESTABLISHED connections, no 
CLOSE_WAIT connections. Using 7.35.0 (after changing if() to while()), the 
number will be 9K for ESTABLISHED and 11K for CLOSE_WAIT.

I am wondering if we need to close the connections for a easy_handle when we 
removing it from a multi_handle?

-------------------------------------------------------------------
List admin: http://cool.haxx.se/list/listinfo/curl-library
Etiquette:  http://curl.haxx.se/mail/etiquette.html

Reply via email to