We continue to monitor our threads in tomcat 7, and recently we began to see that sometimes the number of threads will become double the normal value, i.e. about 200 threads (instead of the usual 80 threads).
After receiving the thread dump, I see that during the time when the number of threads increases, the increase is due to the presence of a large number (about 100) of threads, as shown below (all expectations are at 588cc7d5):
"http-bio-8080-exec-201" - Thread t@2856
java.lang.Thread.State: TIMED_WAITING
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <588cc7d5> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.parkNanos(Unknown Source)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(Unknown Source)
at java.util.concurrent.LinkedBlockingQueue.poll(Unknown Source)
at org.apache.tomcat.util.threads.TaskQueue.poll(TaskQueue.java:86)
at org.apache.tomcat.util.threads.TaskQueue.poll(TaskQueue.java:32)
at java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Locked ownable synchronizers:
- None
Does anyone know what might cause this behavior?
source
share