JDK1.6+Tomcat6出现挂死的问题
项目中使用的是jdk1.6.0_13和Tomcat6.0.18,使用ssh框架,系统一直稳定运行,最近突然出现tomcat挂死的问题,现象是访问页面时浏览器一直处于等待状态,查看服务器的tomcat进程貌似一切正常,使用jstack打印不了,必须使用jstack -F pid才能打出有限的信息,使用jvisualvm等都连不上(已经配置好启动参数了),感觉好像是GC线程挂死了,导致其他java线程处于阻塞状态,请各位高人看看是否遇到过或者是否有解决的思路,不胜感激。
Deadlock Detection:
No deadlocks found.
Thread 26457: (state = IN_NATIVE)
- java.lang.UNIXProcess.forkAndExec(byte[], byte[], int, byte[], int, byte[], boolean, java.io.FileDescriptor, java.io.FileDescriptor, java.io.FileDescriptor) @bci=0 (Interpreted frame)
- java.lang.UNIXProcess.access$500(java.lang.UNIXProcess, byte[], byte[], int, byte[], int, byte[], boolean, java.io.FileDescriptor, java.io.FileDescriptor, java.io.FileDescriptor) @bci=18 (Interpreted frame)
- java.lang.UNIXProcess$1$1.run() @bci=93 (Interpreted frame)
Thread 22531: (state = BLOCKED)
- java.lang.Object.wait(long) @bci=0 (Interpreted frame)
- com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run() @bci=34, line=534 (Compiled frame)
Thread 22530: (state = BLOCKED)
- java.lang.Object.wait(long) @bci=0 (Interpreted frame)
- com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run() @bci=34, line=534 (Compiled frame)
Thread 22529: (state = BLOCKED)
- java.lang.Object.wait(long) @bci=0 (Interpreted frame)
- com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run() @bci=34, line=534 (Compiled frame)
Thread 22509: (state = BLOCKED)
- java.lang.Object.wait(long) @bci=0 (Interpreted frame)
- com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run() @bci=34, line=534 (Compiled frame)
Thread 22508: (state = BLOCKED)
- java.lang.Object.wait(long) @bci=0 (Interpreted frame)
- com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run() @bci=34, line=534 (Compiled frame)
Thread 22507: (state = BLOCKED)
- java.lang.Object.wait(long) @bci=0 (Interpreted frame)
- com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run() @bci=34, line=534 (Compiled frame)
Thread 19356: (state = BLOCKED)
- java.lang.Object.wait(long) @bci=0 (Interpreted frame)
- com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run() @bci=34, line=534 (Compiled frame)
Thread 19355: (state = BLOCKED)
- java.lang.Object.wait(long) @bci=0 (Interpreted frame)
- com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run() @bci=34, line=534 (Compiled frame)
Thread 19354: (state = BLOCKED)
- java.lang.Object.wait(long) @bci=0 (Interpreted frame)
- com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run() @bci=34, line=534 (Compiled frame)
Thread 6523: (state = BLOCKED)
- sun.misc.Unsafe.park(boolean, long) @bci=0 (Interpreted frame)
- java.util.concurrent.locks.LockSupport.parkNanos(java.lang.Object, long) @bci=20 (Interpreted frame)
- java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(java.util.concurrent.SynchronousQueue$TransferStack$SNode, boolean, long) @bci=174 (Compiled frame)
- java.util.concurrent.SynchronousQueue$TransferStack.transfer(java.lang.Object, boolean, long) @bci=102 (Interpreted frame)
- java.util.concurrent.SynchronousQueue.poll(long, java.util.concurrent.TimeUnit) @bci=11 (Interpreted frame)
- java.util.concurrent.ThreadPoolExecutor.getTask() @bci=62 (Interpreted frame)
- java.util.concurrent.ThreadPoolExecutor$Worker.run() @bci=18 (Interpreted frame)
- java.lang.Thread.run() @bci=11 (Interpreted frame)