Identify cause of hundreds of AJP threads in Tomcat

Posted by Rich on Stack Overflow See other posts from Stack Overflow or by Rich
Published on 2010-01-29T09:59:01Z Indexed on 2010/04/05 20:03 UTC
Read the original article Hit count: 354

Filed under:
|
|

We have two Tomcat 6.0.20 servers fronted by Apache, with communication between the two using AJP. Tomcat in turn consumes web services on a JBoss cluster.

This morning, one of the Tomcat machines was using 100% of CPU on 6 of the 8 cores on our machine. We took a heap dump using JConsole, and then tried to connect JVisualVM to get a profile to see what was taking all the CPU, but this caused Tomcat to crash. At least we had the heap dump!

I have loaded the heap dump into Eclipse MAT, where I have found that we have 565 instances of java.lang.Thread. Some of these, obviously, are entirely legitimate, but the vast majority are named "ajp-6009-XXX" where XXX is a number.

I know my way around Eclipse MAT pretty well, but haven't been able to find an explanation for it. If anyone has some pointers as to why Tomcat may be doing this, or some hints on finding out why using Eclipse MAT, that'd be appreciated!

© Stack Overflow or respective owner

Related posts about tomcat6

Related posts about ajp