3

My Tomcat 7.0.27 running with Liferay 6.1.20-ee-ga2 stop working during high load. Running jstack give me a lot of this thread that seems to do nothing and blocking ajp resource. The cpu is not in 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

Could someone explain me what these thread are doing? Is it normal that they are in this state? Thanks

agiannetti
  • 151
  • 2
  • 10

3 Answers3

1

AJP is used for communication between your webserver (apache http) and your tomcat server. AJP is a bit more resource saving than plain http.

Client <--http--> Webserver <--ajp--> Tomcat

For ajp connection pooling is used. Tomcats default value for the maximum of ajp threads is 200. So 200 simultaneous requests can be handled. During high load there should therefore be a maximum of 200 ajp threads waiting for some work (RUNNABLE).

  • My configuration is of 700 ajp threads. Anyway when the server stop responding there are a lot of ajp threads that seems to be free. But the server doesn't serve new requests. – agiannetti Sep 23 '14 at 08:17
0

ok. if the server stops responding this can have several root causes.

  1. The Webserver does not allow 700 threads/connections.
  2. Your application somehow does not release the threads.

If the sever is an unresponsive state, do the other connectors (http etc) still work or is the complete system unresponsive?

Does increasing the maxThread-value extend the responsive ness (or reverse)?

Regards Marcel

  • My answer is "Could someone explain me what these thread are doing? Is it normal that they are in this state? Thanks" The web server is tomcat and it allows 700 thread/connections. I don't know if my application is not relasing thread but iI would like to know why some threads are in that strange statuts – agiannetti Sep 24 '14 at 10:23
0

It seems that the threads stuck in 0x0000000000000000 because of an out of memory. There's no left space so the allocation stops in 0x0000000000000000

"ajp-bio-8009-exec-8929" daemon prio=10 tid=0x00007f8a5c12e800 nid=0xcc25 runnable [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
        - None
agiannetti
  • 151
  • 2
  • 10