tomcat-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Craig R. McClanahan" <>
Subject Re: TC4-m4 CPU per request increase and thread queue locking?
Date Mon, 06 Nov 2000 02:02:32 GMT
Nick Bauman wrote:

> On Sun, 5 Nov 2000, Craig R. McClanahan wrote:
> > A very large chunk of Catalina's processing time is consumed by parsing the
> > request headers, and converting them into a Request object that is passed on for
> > processing.  Volunteers who want one convenient place to start suggesting
> > improvements can look at org.apache.connector.http.HttpProcessor -- there is an
> > instance of this class running for each processor thread that is created.
> >
> So does HttpProcessor use a pooler? If not, I would imagine this would be
> a huge performace benefit. Is anyone slated to do this?

The instances of HttpProcessor -- each with an associated thread -- are indeed pooled
and reused by the HttpConnector (the object that accepts incoming socket connections
and hands them off for processing).  Initially, the connector creates the number of
instances that you specify in the minProcessors property (default=5), and the number
grows up to the specified maximum if you get more simultaneous requests than you
currently have processors.

Once created, an HttpProcessor instance and its corresponding thread are never
destroyed until the server is shut down.  Idle threads sit on a wait() call (no "do
you have work for me to do" type polling), so they don't consume any CPU time -- well,
I'm assuming that threading was implemented competently in your JVM :-) -- and the
memory footprint is pretty insigificant, so there did not seem to be any gain in
harvesting them if the current level of server activity is low.

> Nicolaus Bauman
> Software Engineer
> Simplexity Systems


View raw message