繁体   English   中英

线程处于等待状态:java.lang.Thread.State:正在sun.misc.Unsafe.park(本地方法)等待(停车)

[英]Thread is in WAITING state: java.lang.Thread.State: WAITING (parking) at sun.misc.Unsafe.park(Native Method)

我的应用程序负载沉重,我的日志越来越少

sudo -u tomcat jstack <java_process_id>

下面的线程正在消耗来自Kafka的消息,并且卡住了。 由于该线程处于等待状态,因此不再消耗kafka消息。

"StreamThread-3" #91 daemon prio=5 os_prio=0 tid=0x00007f9b5c606000 nid=0x1e4d waiting on condition [0x00007f9b506c5000]
   java.lang.Thread.State: WAITING (parking)
    at sun.misc.Unsafe.park(Native Method)
    - parking to wait for  <0x000000073aad9718> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
    at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
    at java.util.concurrent.ArrayBlockingQueue.put(ArrayBlockingQueue.java:353)
    at ch.qos.logback.core.AsyncAppenderBase.put(AsyncAppenderBase.java:160)
    at ch.qos.logback.core.AsyncAppenderBase.append(AsyncAppenderBase.java:148)
    at ch.qos.logback.core.UnsynchronizedAppenderBase.doAppend(UnsynchronizedAppenderBase.java:84)
    at ch.qos.logback.core.spi.AppenderAttachableImpl.appendLoopOnAppenders(AppenderAttachableImpl.java:51)
    at ch.qos.logback.classic.Logger.appendLoopOnAppenders(Logger.java:270)
    at ch.qos.logback.classic.Logger.callAppenders(Logger.java:257)
    at ch.qos.logback.classic.Logger.buildLoggingEventAndAppend(Logger.java:421)
    at ch.qos.logback.classic.Logger.filterAndLog_0_Or3Plus(Logger.java:383)
    at ch.qos.logback.classic.Logger.error(Logger.java:538)
    at com.abc.system.solr.repo.AbstractSolrRepository.doSave(AbstractSolrRepository.java:316)
    at com.abc.system.solr.repo.AbstractSolrRepository.save(AbstractSolrRepository.java:295)

我还在sun.misc.Unsafe.park(Native Method)上找到了这个正在等待的帖子但它对我的情况没有帮助。

在这种情况下,我还能进行哪些调查以获取更多详细信息?

我也遇到了同样的问题。 但是,幸运的是,我通过解决池的大小以及生产者和消费者的数量来解决我的问题。

尝试检查是否有任何方法可以配置以下内容。

  1. 您的线程池的大小
  2. 消费者/生产者数量(如果我们可以在kafka中进行配置)

确保线程池应该有足够的线程来同时服务使用者和生产者。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM