Java Jetty多个接收器被阻止等待锁定,对象被其他接收器锁定
我面临一个应用程序挂起的问题,可能是由于Jetty线程被阻塞,但我不能100%确定如何解释线程转储,观察到的情况是否正常,Jetty接受器的生命周期如何 这是我观察到的线程转储的一个特定部分:Java Jetty多个接收器被阻止等待锁定,对象被其他接收器锁定,java,multithreading,jetty,Java,Multithreading,Jetty,我面临一个应用程序挂起的问题,可能是由于Jetty线程被阻塞,但我不能100%确定如何解释线程转储,观察到的情况是否正常,Jetty接受器的生命周期如何 这是我观察到的线程转储的一个特定部分: "qtp1291915867-82 Acceptor0 SelectChannelConnector@0.0.0.0:3581 STARTING" prio=5 tid=0x52 state=BLOCKED at sun.nio.ch.ServerSocketChannelImpl.accept(
"qtp1291915867-82 Acceptor0 SelectChannelConnector@0.0.0.0:3581 STARTING" prio=5 tid=0x52 state=BLOCKED
at sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:281)
- waiting to lock java.lang.Object@71918ba2 [owned by "qtp1291915867-84 Acceptor2 SelectChannelConnector@0.0.0.0:3581 STARTING" tid=0x54]
at org.eclipse.jetty.server.nio.SelectChannelConnector.accept(SelectChannelConnector.java:97)
at org.eclipse.jetty.server.AbstractConnector$Acceptor.run(AbstractConnector.java:833)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:598)
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:533)
at java.lang.Thread.run(Thread.java:804)
"qtp1291915867-83 Acceptor1 SelectChannelConnector@0.0.0.0:3581 STARTING" prio=5 tid=0x53 state=BLOCKED
at sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:281)
- waiting to lock java.lang.Object@71918ba2 [owned by "qtp1291915867-84 Acceptor2 SelectChannelConnector@0.0.0.0:3581 STARTING" tid=0x54]
at org.eclipse.jetty.server.nio.SelectChannelConnector.accept(SelectChannelConnector.java:97)
at org.eclipse.jetty.server.AbstractConnector$Acceptor.run(AbstractConnector.java:833)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:598)
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:533)
at java.lang.Thread.run(Thread.java:804)
"qtp1291915867-84 Acceptor2 SelectChannelConnector@0.0.0.0:3581 STARTING" prio=5 tid=0x54 state=RUNNABLE (running in native)
at sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)
at sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:305)
- locked java.lang.Object@71918ba2
at org.eclipse.jetty.server.nio.SelectChannelConnector.accept(SelectChannelConnector.java:97)
at org.eclipse.jetty.server.AbstractConnector$Acceptor.run(AbstractConnector.java:833)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:598)
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:533)
at java.lang.Thread.run(Thread.java:804)
"qtp1291915867-85 Acceptor3 SelectChannelConnector@0.0.0.0:3581 STARTING" prio=5 tid=0x55 state=BLOCKED
at sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:281)
- waiting to lock java.lang.Object@71918ba2 [owned by "qtp1291915867-84 Acceptor2 SelectChannelConnector@0.0.0.0:3581 STARTING" tid=0x54]
at org.eclipse.jetty.server.nio.SelectChannelConnector.accept(SelectChannelConnector.java:97)
at org.eclipse.jetty.server.AbstractConnector$Acceptor.run(AbstractConnector.java:833)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:598)
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:533)
at java.lang.Thread.run(Thread.java:804)
好了,接受程序的数量应该在CPU的1到#之间,所以我假设这是在4核CPU中运行的,问题是,从jetty的角度来看,其他接受程序被阻止等待其他接受程序资源是正常的吗?如果是的话,这个资源是什么
我不太喜欢Jetty,所以我真的不知道这是否正常,他们只是在等待轮到他们处理传入连接,如果是,那么问题就在不同的地方,但我想放弃Jetty部分
顺便说一句,jetty版本是7.5.4
有什么想法吗
谢谢
,考虑升级。感谢JoakimrdDy不幸的是,短期内可能是不可能的,所以现在我需要处理这种情况。没有关于堆栈跟踪指示一个问题(从一个数据点)。当您体验到这种感知的“挂起”时,尝试访问静态资源。如果jetty做出响应,即使是404,也不是jetty造成的问题,而是您的web应用程序。自jetty 7.5.4以来,jetty已有180多个稳定版本(2个主要的servlet api修订版和7个主要版本发布)。