我的 tomcat 服务器经常响应缓慢,一段时间后就死机了。这种情况每周经常发生一次。我进行了线程转储,它显示大约 50% 的线程处于锁定状态。锁定线程的类是 org.apache.tomcat.util.net.AprEndpoint
我认为随着时间的推移,线程锁定的数量正在上升,最终占用所有处于锁定状态的线程。这是线程转储中显示锁定状态的一条语句
"http-8080-4" daemon prio=6 tid=0x000000006acca800 nid=0x9d8 in Object.wait() [0x000000007083f000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x0000000028ead838> (a org.apache.tomcat.util.net.AprEndpoint$Worker)
at java.lang.Object.wait(Object.java:485)
at org.apache.tomcat.util.net.AprEndpoint$Worker.await(AprEndpoint.java:1511)
- locked <0x0000000028ead838> (a org.apache.tomcat.util.net.AprEndpoint$Worker)
at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1536)
at java.lang.Thread.run(Thread.java:619)
Locked ownable synchronizers:
- None