Анализируя дамп потока, много потоков, ожидающих в Tomcat, мы получаем всплеск на этом узле с увеличением traffi c - PullRequest
0 голосов
/ 21 марта 2020

Профилировщик работал на экземпляре в течение 5 минут. Ниже приведен дамп потока, созданный из новой версии c. Через некоторое время мы получаем постоянное увеличение использования процессора и памяти. Потом через некоторое время система вылетает. Я новичок в анализе дампа потока.

Пожалуйста, предложите меры, которые необходимо предпринять для более глубокого анализа проблемы, и предложите ее исправить.

68% org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run() :61
68% java.util.concurrent.ThreadPoolExecutor$Worker.run() :617
68% java.util.concurrent.ThreadPoolExecutor.runWorker(java.util.concurrent.ThreadPoolExecutor.Worker) :1127,1142
67% java.util.concurrent.ThreadPoolExecutor.getTask() :1066,1067
64% org.apache.tomcat.util.threads.TaskQueue.poll(long, java.util.concurrent.TimeUnit) :31
64% org.apache.tomcat.util.threads.TaskQueue.poll(long, java.util.concurrent.TimeUnit) :85
64% java.util.concurrent.LinkedBlockingQueue.poll(long, java.util.concurrent.TimeUnit) :467
64% java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(long) :2078
64% java.util.concurrent.locks.LockSupport.parkNanos(java.lang.Object, long) :215
64% sun.misc.Unsafe.park(boolean, long) :native
3.2% org.apache.tomcat.util.threads.TaskQueue.take() :31
3.2% org.apache.tomcat.util.threads.TaskQueue.take() :103
3.2% java.util.concurrent.LinkedBlockingQueue.take() :442
3.2% java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await() :2039
3.2% java.util.concurrent.locks.LockSupport.park(java.lang.Object) :175
3.2% sun.misc.Unsafe.park(boolean, long) :native


16% java.util.concurrent.ThreadPoolExecutor$Worker.run() :617
16% java.util.concurrent.ThreadPoolExecutor.runWorker(java.util.concurrent.ThreadPoolExecutor.Worker) :1127,1142
11% org.jboss.netty.util.internal.DeadLockProofWorker$1.run() :42
11% org.jboss.netty.util.ThreadRenamingRunnable.run() :108
10% org.jboss.netty.channel.socket.nio.NioWorker.run() :178
10% org.jboss.netty.channel.socket.nio.AbstractNioWorker.run() :89
10% org.jboss.netty.channel.socket.nio.AbstractNioSelector.run() :212
10% org.jboss.netty.channel.socket.nio.AbstractNioSelector.select(java.nio.channels.Selector) :434
10% org.jboss.netty.channel.socket.nio.SelectorUtil.select(java.nio.channels.Selector) :68
10% sun.nio.ch.SelectorImpl.select(long) :97
10% sun.nio.ch.SelectorImpl.lockAndDoSelect(long) :86
10% sun.nio.ch.EPollSelectorImpl.doSelect(long) :79
10% sun.nio.ch.EPollArrayWrapper.poll(long) :269
10% sun.nio.ch.EPollArrayWrapper.epollWait(long, int, long, int) :native
5.2% java.util.concurrent.ThreadPoolExecutor.getTask() :1066,1067
4.9% java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take() :809
4.9% java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take() :1093
4.9% java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(long) :2068,2078
4.9% java.util.concurrent.locks.LockSupport.parkNanos(java.lang.Object, long) :215
4.9% sun.misc.Unsafe.park(boolean, long) :native


9.7% com.mongodb.connection.DefaultServerMonitor$ServerMonitorRunnable.run() :120,153
9.7% com.mongodb.connection.DefaultServerMonitor$ServerMonitorRunnable.waitForNext() :205
9.7% com.mongodb.connection.DefaultServerMonitor$ServerMonitorRunnable.waitForSignalOrTimeout() :224
9.7% java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(long) :2078
9.7% java.util.concurrent.locks.LockSupport.parkNanos(java.lang.Object, long) :215
9.7% sun.misc.Unsafe.park(boolean, long) :native```

[![!\[Snapshot of Jvm memory behaviour in last 12 hour][1]][1]
[1]: https://i.stack.imgur.com/gcWtR.png
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...