On 26/10/2011 03:13, Rohit Kelapure wrote: > Dear All, > > After going through the thread renewal code in > /tomcat-8.0.x/java/org/apache/tomcat/util/threads/TaskQueue.java , > /tomcat-8.0.x/java/org/apache/tomcat/util/threads/ThreadPoolExecutor.java > and the bug (Improve ThreadLocal memory leak clean-up) > https://issues.apache.org/bugzilla/show_bug.cgi?id=49159 I had the > following questions- > > 1. Once the thread pool has been renewed after No. of active threads > in pool * max (threadKeepAliveTimeout, longestRequest+ > threadRenewalDelay) seconds, why does the ThreadPoolExecutor still > keep paying the price of thread renewal. ? > > After org.apache.tomcat.util.threads.ThreadPoolExecutor.threadRenewalDelay > is set to 1000L it never goes back to -1. Ideally once the all the > threads in the threadpool is renewed we should revert the > threadRenewalDelay back to -1 and NOT call > ThreadPoolExecutor.currentThreadShouldBeStopped()/ThreadPoolExecutor.stopCurrentThreadIfNeeded() > in TaskQueue.poll(long, TimeUnit) or TaskQueue.take(). > Is this because we are never quite sure as to when *all* of the > threads in the pool have been renewed ? > > 2. Does the thread renewal approach scale under load (i.e. all threads > in the pool busy servicing requests and CPU close to 90%) ? Is it > meant for production deployments ? > > 3. How about threads that are servicing long running HTTP Keep-alive > connections that never let the thread return to the pool. Are these > threads renewed before the server is stopped.
These questions all belong on the users mailing list. Mark --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org