对外请求大量超时导致服务器宕机

刘大贱 发布于 2016/06/07 19:30
阅读 531
收藏 0

我们一个SDK登录验证服务器,需要接受客户端请求后向第三方渠道发起HTTP请求验证,下午其中一个渠道出现网络波动,导致产生大量超时异常后,服务器直接宕机了,tomcat上配置200个最大线程,198个是处于RUNNABLE且都是处于处理该异常渠道的请求,唯有两个线程是其他情况,jmap dump如下:

"Java2D Disposer" daemon prio=10 tid=0x00007ff0cc01d800 nid=0x4b90 in Object.wait() [0x00007ff25a261000]

   java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x00000006a67751e0> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118)
- locked <0x00000006a67751e0> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:134)
at sun.java2d.Disposer.run(Disposer.java:127)
at java.lang.Thread.run(Thread.java:662)


"MultiThreadedHttpConnectionManager cleanup" daemon prio=10 tid=0x00007ff0c400f800 nid=0x4b42 in Object.wait() [0x00007ff25a7ce000]
   java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x00000006c20d1870> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118)
- locked <0x00000006c20d1870> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:134)
at org.apache.commons.httpclient.MultiThreadedHttpConnectionManager$ReferenceQueueThread.run(MultiThreadedHttpConnectionManager.java:1122)



请问一下是否这两个线程导致服务器宕机,这个线程死锁是什么意思啊?

加载中
0
newzai
newzai
不会连基本的Http连接超时都没有设置吧?
刘大贱
超时是肯定有的,之前3秒现在降到1.5秒
0
就是个精虫上脑的地方
就是个精虫上脑的地方
超时时间设置合理一点 既然总连接不大 时间就设短一点
0
风哥X
风哥X
你服务器多少核的,用200个线程,如果你服务器只能支持10个线程同时跑,那么你搞200个线程调度的时间的花了很多!
返回顶部
顶部