Tomcat stops working: no ajp available
My Tomcat 7.0.27 running Liferay 6.1.20-ee-ga2 stops working during high load. Running jstack gives me a lot of this thread that doesn't seem to do anything and is blocking the ajp resource. The processor is not under high load (less than 55%).
"ajp-bio-8009-exec-8930" daemon prio = 10 tid = 0x00007f8a5c12f800 nid = 0xcc26 runnable [0x0000000000000000] java.lang.Thread.State: RUNNABLE
Locked ownable synchronizers:
- None
"ajp-bio-8009-exec-8929" daemon prio=10 tid=0x00007f8a5c12e800 nid=0xcc25 runnable [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
Locked ownable synchronizers:
- None
"ajp-bio-8009-exec-8928" daemon prio=10 tid=0x00007f8a5c0eb800 nid=0xcc20 runnable [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
Locked ownable synchronizers:
- None
"ajp-bio-8009-exec-8927" daemon prio=10 tid=0x00007f8a5c042800 nid=0xcc1f runnable [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
Locked ownable synchronizers:
- None
Can anyone explain to me what this thread is doing? Is it normal that they are in this state? Thanks to
source to share
It seems that the threads are stuck at 0x0000000000000000 due to out of memory. No free space, so allocation stops at 0x0000000000000000
"ajp-bio-8009-exec-8929" daemon prio=10 tid=0x00007f8a5c12e800 nid=0xcc25 runnable [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
Locked ownable synchronizers:
- None
source to share
AJP is used to communicate between your web server (apache http) and your tomcat server. AJP is slightly resource-saving than plain http.
Client <--http--> Webserver <--ajp--> Tomcat
To connect ajp, pooling is used. The default value for Tomcats for the maximum number of ajp threads is 200. So 200 concurrent requests can be handled. Therefore, at high load, there should be no more than 200 ajp threads waiting for some work (RUNNABLE).
source to share
OK. if the server becomes unresponsive, there may be several underlying reasons.
- The web server does not allow 700 threads / connections.
- Your application is not freeing threads somehow.
If the server is not responding, are other connectors (http, etc.) running, or is the system not responding to requests?
Does maxThread increase sensitivity (or vice versa)?
Relationship Marseille
source to share