tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Pantvaidya, Vishwajit" <vpant...@selectica.com>
Subject RE: Running out of tomcat threads - why many threads in RUNNABLE stage even with no activity
Date Fri, 15 May 2009 05:23:42 GMT
Since I did not get any responses to this, just wanted to ask - did I post this to the wrong
list and should I be posting this to the tomcat developers list instead?


-----Original Message-----
From: Pantvaidya, Vishwajit [mailto:vpantvai@selectica.com] 
Sent: Thursday, May 14, 2009 11:29 AM
To: Tomcat Users List
Subject: RE: Running out of tomcat threads - why many threads in RUNNABLE stage even with
no activity

I set connectionTimeout in server.xml to 600000 and now the RUNNABLE threads go back to WAITING
stage after that time.

But our other servers which are running the same configuration, same webapp and do not have
connectionTimeout set in server.xml, do not show so many RUNNABLE threads, but more WAITING
threads. So looks like the threads are getting recycled properly there.


Any idea why could this be? Could it be the OS (all servers run Linux but I do not know which
flavors/versions)?



-----Original Message-----
From: Pantvaidya, Vishwajit [mailto:vpantvai@selectica.com] 
Sent: Wednesday, May 13, 2009 2:28 PM
To: users@tomcat.apache.org
Subject: Running out of tomcat threads - why many threads in RUNNABLE stage even with no activity

My setup is tomcat 5.5.17 + mod_jk 1.2.15 + httpd 2.2.2. I am using AJP1.3.
Every 2-3 days with no major load, tomcat throws the error: "SEVERE: All threads (200) are
currently busy, waiting..."

I have been monitoring my tomcat TP-Processor thread behavior over extended time intervals
and observe that:
- even when there is no activity on the server, several TP-Processor threads are in RUNNABLE
state while few are in WAITING state
- RUNNABLE threads stack trace shows "java.lang.Thread.State: RUNNABLE at java.net.SocketInputStream.socketRead0(Native
Method)..."
- WAITING thread stack trace shows "java.lang.Thread.State: WAITING on org.apache.tomcat.util.threads.ThreadPool$ControlRunnable@53533c55"
- tomcat adds 4 new TP-Processor threads when a request comes in and it can find no WAITING
threads

So I conclude that my tomcat is running out of threads due to many threads being in RUNNABLE
state when actually they should be in WAITING state. Is that happening because of the socket_keepalive
in my workers.properties shown below?
Why are threads added in bunches of 4 - is there any way to configure this?

My workers config is:

Worker...type=ajp13
Worker...cachesize=10
Worker...cache_timeout=600
Worker...socket_keepalive=1
Worker...recycle_timeout=300
 
Earlier posts related to this issue on the list seem to recommend tweaking:
- several timeouts
- JkOptions +DisableReuse

I am planning to do the following to resolve our problem:
- upgrade jk to latest version - e.g. 1.2.28
- replace recycle_timeout with connection_pool_timeout
- add connectionTimeout in server.xml
- add JkOptions +DisableReuse

Please let me know if this is okay or suggestions if any.

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Mime
View raw message