为了账号安全,请及时绑定邮箱和手机立即绑定

tomcat jvm 大量线程waiting on condition,如何解决?

tomcat jvm 大量线程waiting on condition,如何解决?

蝴蝶不菲 2019-04-18 18:15:28
大佬们好,做性能压测遇到及其奇怪的问题,机器load极高,甚至飙到100+,逻辑核数只有16核jstack dump的线程有一半的线程都在waiting on condition,而且都是一些tomcat的线程池之类的问题线程栈如下:53%的线程都是如下堆栈"catalina-exec-7" daemon prio=10 tid=0x00007f52fc016800 nid=0x1430 waiting on condition [0x00007f537abe7000]    java.lang.Thread.State: WAITING (parking)     at sun.misc.Unsafe.park(Native Method)     - parking to wait for  <0x000000073168d480> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)     at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)     at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2043)     at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)     at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:104)     at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:32)     at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1068)     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)     at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)     at java.lang.Thread.run(Thread.java:745)    Locked ownable synchronizers:     - None附上已确定的可以过滤的影响因素,其中cpu利用率81%,fullgc只有俩次,也不是fullgc问题引起的,parNew gc每次耗时20-40ms之间,也是合理的。内存也足够用
查看完整描述

2 回答

?
慕容森

TA贡献1853条经验 获得超18个赞

谢谢大佬回答, 死锁也怀疑过,检查jstack日志并没有任何死锁。今天弄明白了,其实是线程创建过多,大量线程没有释放,


查看完整回答
反对 回复 2019-05-14
  • weixin_慕瓜0261181
    weixin_慕瓜0261181
    请问下,线程创建过多指的是tomcat的还是程序里面自用的线程池啊?我现在遇到一样的情况。谢谢回复
  • 慕粉1842443659
    慕粉1842443659
    大佬.. 你有找到原因吗 我这边情况也完全一样
  • 慕粉1842443659
    慕粉1842443659
    请问下 线程创建过多是指的什么线程呢, 后续是怎么解决的, 能简要说说吗 感谢~
?
湖上湖

TA贡献2003条经验 获得超2个赞

死锁了,都在等待锁,而且发现你的tomcat线程数巨高,先检查一下是否超过tomcat最大线程数。一般情况下tomcat处理线程300个已经很高了。


查看完整回答
反对 回复 2019-05-14
  • 2 回答
  • 0 关注
  • 7151 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号