多线程性能问题,Linux下部署跑一会就停了,有日志
项目跑了一个小时就停了,关闭tomcat有如下日志,有没有大神看看是哪里的问题,需要源码的问我。
日志如下:
Full thread dump Java HotSpot(TM) 64-Bit Server VM (25.91-b14 mixed mode):
"DestroyJavaVM" #99 prio=5 os_prio=0 tid=0x00007ff88049b800 nid=0xd83 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"Keep-Alive-SocketCleaner" #96 daemon prio=8 os_prio=0 tid=0x00007ff84c0b6800 nid=0xdf4 in Object.wait() [0x00007ff827cf9000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at sun.net.www.http.KeepAliveStreamCleaner.run(KeepAliveStreamCleaner.java:101)
- locked <0x00000000c6a14a80> (a sun.net.www.http.KeepAliveStreamCleaner)
at java.lang.Thread.run(Thread.java:745)
"http-bio-8080-exec-7" #92 daemon prio=5 os_prio=0 tid=0x00007ff82c0e7800 nid=0xdef runnable [0x00007ff8280fd000]
java.lang.Thread.State: RUNNABLE
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.socketRead(SocketInputStream.java:116)
at java.net.SocketInputStream.read(SocketInputStream.java:170)
at java.net.SocketInputStream.read(SocketInputStream.java:141)
at org.apache.coyote.http11.InternalInputBuffer.fill(InternalInputBuffer.java:519)
at org.apache.coyote.http11.InternalInputBuffer.fill(InternalInputBuffer.java:504)
at org.apache.coyote.http11.Http11Processor.setRequestLineReadTimeout(Http11Processor.java:168)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:990)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:625)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:318)
- locked <0x00000000f26580f8> (a org.apache.tomcat.util.net.SocketWrapper)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)
"pool-3-thread-1" #79 prio=5 os_prio=0 tid=0x00007ff82ccd5000 nid=0xddf waiting on condition [0x00007ff828de0000]
java.lang.Thread.State: TIMED_WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x00000000c8eb81b0> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2078)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1093)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:809)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1067)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1127)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
"MySQL Statement Cancellation Timer" #78 daemon prio=5 os_prio=0 tid=0x00007ff82c26b800 nid=0xddd in Object.wait() [0x00007ff829ae1000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:502)
at java.util.TimerThread.mainLoop(Timer.java:526)
- locked <0x00000000c76595e0> (a java.util.TaskQueue)
at java.util.TimerThread.run(Timer.java:505)
"Timer-4" #77 daemon prio=5 os_prio=0 tid=0x00007ff82c4db000 nid=0xddc in Object.wait() [0x00007ff829be2000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at java.util.TimerThread.mainLoop(Timer.java:552)
- locked <0x00000000c77a3460> (a java.util.TaskQueue)
at java.util.TimerThread.run(Timer.java:505)
"Timer-3" #24 daemon prio=5 os_prio=0 tid=0x00007ff8458f8000 nid=0xda7 in Object.wait() [0x00007ff851ad7000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at java.util.TimerThread.mainLoop(Timer.java:552)
- locked <0x00000000c626caa8> (a java.util.TaskQueue)
at java.util.TimerThread.run(Timer.java:505)
"pool-2-thread-1" #23 prio=5 os_prio=0 tid=0x00007ff82c5cf800 nid=0xda6 waiting on condition [0x00007ff8683be000]
java.lang.Thread.State: TIMED_WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x00000000c5d75670> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2078)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1093)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:809)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1067)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1127)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
"com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#2" #21 daemon prio=5 os_prio=0 tid=0x00007ff82c4c2000 nid=0xd9a in Object.wait() [0x00007ff8687c0000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:534)
- locked <0x00000000c5d75f60> (a com.mchange.v2.async.ThreadPoolAsynchronousRunner)
"com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#1" #20 daemon prio=5 os_prio=0 tid=0x00007ff82c4c1800 nid=0xd99 in Object.wait() [0x00007ff8688c1000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:534)
- locked <0x00000000c5d75f60> (a com.mchange.v2.async.ThreadPoolAsynchronousRunner)
"com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#0" #19 daemon prio=5 os_prio=0 tid=0x00007ff82c4f2800 nid=0xd98 in Object.wait() [0x00007ff8689c2000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:534)
- locked <0x00000000c5d75f60> (a com.mchange.v2.async.ThreadPoolAsynchronousRunner)
"Timer-1" #18 daemon prio=5 os_prio=0 tid=0x00007ff82c421000 nid=0xd97 in Object.wait() [0x00007ff868ac3000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at java.util.TimerThread.mainLoop(Timer.java:552)
- locked <0x00000000c5d7b2d8> (a java.util.TaskQueue)
at java.util.TimerThread.run(Timer.java:505)
"MySQL Statement Cancellation Timer" #17 daemon prio=5 os_prio=0 tid=0x00007ff82c3f2800 nid=0xd95 in Object.wait() [0x00007ff868fc4000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x00000000c5acc428> (a java.util.TaskQueue)
at java.lang.Object.wait(Object.java:502)
at java.util.TimerThread.mainLoop(Timer.java:526)
- locked <0x00000000c5acc428> (a java.util.TaskQueue)
at java.util.TimerThread.run(Timer.java:505)
"com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#2" #16 daemon prio=5 os_prio=0 tid=0x00007ff82c367000 nid=0xd94 in Object.wait() [0x00007ff8690c5000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:534)
- locked <0x00000000c5accae8> (a com.mchange.v2.async.ThreadPoolAsynchronousRunner)
"com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#1" #15 daemon prio=5 os_prio=0 tid=0x00007ff82c39d800 nid=0xd93 in Object.wait() [0x00007ff8691c6000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:534)
- locked <0x00000000c5accae8> (a com.mchange.v2.async.ThreadPoolAsynchronousRunner)
"com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#0" #14 daemon prio=5 os_prio=0 tid=0x00007ff82c39c000 nid=0xd92 in Object.wait() [0x00007ff8692c7000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:534)
- locked <0x00000000c5accae8> (a com.mchange.v2.async.ThreadPoolAsynchronousRunner)
"Timer-0" #13 daemon prio=5 os_prio=0 tid=0x00007ff82c362000 nid=0xd91 in Object.wait() [0x00007ff8693c8000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at java.util.TimerThread.mainLoop(Timer.java:552)
- locked <0x00000000c5acd610> (a java.util.TaskQueue)
at java.util.TimerThread.run(Timer.java:505)
"Service Thread" #7 daemon prio=9 os_prio=0 tid=0x00007ff8800b9000 nid=0xd8c runnable [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"C1 CompilerThread1" #6 daemon prio=9 os_prio=0 tid=0x00007ff8800b6000 nid=0xd8b waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"C2 CompilerThread0" #5 daemon prio=9 os_prio=0 tid=0x00007ff8800b3000 nid=0xd8a waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"Signal Dispatcher" #4 daemon prio=9 os_prio=0 tid=0x00007ff8800b1800 nid=0xd89 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE