hc-httpclient-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Oleg Kalnichevski <ol...@apache.org>
Subject Re: (more info) 2.0.2 - maxConnectionsPerHost and maxTotalConnections
Date Thu, 26 Jan 2006 16:23:57 GMT
On Thu, 2006-01-26 at 10:58 -0500, Jeff Roberts wrote:
> I get really confused about incoming and outgoing connections.  For instance, "worker
threads accessing this host" confuses me because I think of the worker threads as being "downstream"
on the Tomcats and of us accessing THEM. I want to make sure I'm not missing something here.
 

'worker threads accessing this host' = client-side threads executing
requests against the given host

> 
> If our service is receiving requests from w machines, sending them all through x Apache
servers (in our case x=1) and Apache is load-balancing those requests over y Tomcats, each
of which has a cachesize of 10, but we're only wanting to fill up z=8 out of that 10, which
of w,x,y and z should factor into maxConnectionsPerHost and maxTotalConnections?
> 
> I'm being told here that w doesn't matter because the incoming requests will just queue
up, x doesn't really matter since it's always 1 for us, and so just to set both parameters
to y*z, or x*y*z in case we ever add more Apaches to the setup.
> 
> In terms of those variables, do you agree, or do w and x come into it at all?
> 

I suspect you are confusing client-side connections (HttpClient) and
server-side connections (HTTPD/mod_jk/Tomcat). All you have to make sure
that the total number of client connections (maxTotalConnections) is
greater than the number of client-side worker threads and that the
number of connections per host (maxConnectionsPerHost) does not exceed
the maximum number of connections allowed by the server. 

This is not a Tomcat user list so I can only assist with the HttpClient
configuration.

Oleg

> ---
> J. Jeff Roberts
> jeff@rcshome.com
> (859) 552-5806
> 
> On Thu, 26 Jan 2006 12:03 , Oleg Kalnichevski <olegk@apache.org> sent:
> 
> >On Wed, 2006-01-25 at 13:54 -0500, Jeff Roberts wrote:
> >> OK, I think I understand what we're TRYING to do better now, let me take a shot
at explaining.
> >> 
> >> The defaults for maxConnectionsPerHost and maxTotalConnections are 2 and 20,
so I think that's where we got the *10 multiplier.  We believe the multiplier is supposed
to account for the number of http servers we're forwarding requests to, which in our case
is only one Apache server, so we think we could do without the *10 - please advise if any
of that's wrong.
> >> 
> >> The one Apache server is load balancing via mod_jk to 1 or more Tomcat servers.
 The cachesize parameter in the workers.properties is set to 10, but we're trying to leave
2 slots there for other requests besides the ones this particular server handles, which leaves
us 8 slots per server.
> >> 
> >> So we're setting maxConnectionsPerHost to 8, and currently we're setting maxTotalConnections
to 8*10, although we think the *10 may be unnecessary.  Now we're trying to account for there
being more Tomcats, so we're planning to set maxConnectionsPerHost to 8*num_tomcats and maxTotalConnections
to 8*num_tomcats as well.
> >> 
> >> Does that make any sense?
> >
> >Jeff, 
> >There is no universal scheme to calculate optimal MTHCM settings. You
> >should experiment and see which ones work best for you.
> >
> >Generally you should set maxConnectionsPerHost at least to n, where n is
> >a number of worker threads accessing the this host simultaneously. Then
> >you should set maxTotalConnections to n * m, where m is the number of
> >hosts you application connects to. Say, you have 5 worker threads per
> >host and 4 target hosts, then the total number of connections should be
> >at least 20 to avoid resource contention. If you set the total limit to
> >something like 15, then the worker threads will start contending for
> >connections when running at the full capacity. 
> >
> >Hope this helps
> >
> >Oleg
> >
> >> ---
> >> J. Jeff Roberts
> >> jeff@rcshome.com
> >> (859) 552-5806
> >> 
> >> 
> >> ----- Original Message ----- 
> >> From: 'Jeff Roberts' jeff@rcshome.com>
> >> To: httpclient-user@jakarta.apache.org
> >> Sent: Wed, 25 Jan 2006 09:18:30
> >> Subject: Fwd: 2.0.2 - maxConnectionsPerHost and maxTotalConnections
> >> 
> >> 
> >> 
> >> I've picked up some code that everyone suddenly disavows all knowledge of...you
know how that goes. :-)
> >> 
> >> We are creating a MultiThreadedHttpConnectionManager, setting═maxConnectionsPerHost
to 8 and maxTotalConnections to 8 * 10.═ That object is passed to the constructor for HttpClient.═
We then receive requests, which we route to an Apache server, which is load balancing to 1
or more Tomcats via mod_jk.
> >> 
> >> I am told that someone fiddled around and found the 8/80 setting works well
if we're "balancing" over only 1 Tomcat, but that they think we should multiply one or both
of the properties by the number of Tomcats as we add servers.═ No one seems to know where
the "* 10" in the call to maxTotalConnections came from, or whether we still need it if we
multiply the 8 by the number of Tomcats.
> >> 
> >> 1. If any of that made sense, does anyone have a clue if we're setting these
parameters correctly, and if either the 8 or the "* 10" makes any sense?
> >> 
> >> 2. Does it sound right to multiply one or both by the number of Tomcats?
> >> 
> >> 3. Can I call setMaxConnectionsPerHost() and setMaxTotalConnections() at any
time?═ While requests are cranking through, in other words?═ Can I call them both with
a larger and a smaller number than the current setting without problems, as Tomcats are added
or removed?
> >> 
> >> Any info much appreciated.
> >> 
> >> --- 
> >> J. Jeff Roberts 
> >> jeff@rcshome.com 
> >> (859) 552-5806 
> >> 
> >> 
> >> 
> >> 
> >> 
> >> 
> >> 
> >> 
> >> 
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: httpclient-user-unsubscribe@jakarta.apache.org
> >> For additional commands, e-mail: httpclient-user-help@jakarta.apache.org
> >> 
> >> 
> >
> >
> >---------------------------------------------------------------------
> >To unsubscribe, e-mail: httpclient-user-unsubscribe@jakarta.apache.org
> >For additional commands, e-mail: httpclient-user-help@jakarta.apache.org
> >
> 
> 
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: httpclient-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: httpclient-user-help@jakarta.apache.org
> 
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: httpclient-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: httpclient-user-help@jakarta.apache.org


Mime
View raw message