tomcat的work线程占用大量cpu
遇到个问题,服务器load非常高,晚上会下降不少,第二天照旧,cpu在繁忙时基本上能占到100%,如果重启,会短暂恢复,几天内load又会变得越来越高,跟踪线程栈找CPU占用高的发现都是work线程,诡异的是他们处在waiting状态啊!而且是占用时间非常长,十几个小时。
比如下面这条线程
"http-0.0.0.0-7001-12" daemon prio=10 tid=0x00007f541463a000 nid=0xd7d9 in Object.wait() [0x000000004c067000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x000000077390c838> (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:1464)
- locked <0x000000077390c838> (a org.apache.tomcat.util.net.AprEndpoint$Worker)
at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1489)
推测还是代码问题,什么情况会导致这种问题呢,无头绪啊,求大神