在生产中累积PoolableThreads

2020-09-02 05:53发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)随着时间的流逝,我们正在累积Po...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


随着时间的流逝,我们正在累积PoolableThread类型的线程

它们都处于等待状态,所有对象的调用堆栈都相同:

 " PooledThread [21]"#14677 prio = 5 os_prio = 0 tid = 0x00007f748407f000 nid = 0x117c in Object.wait()[0x00007f749cc9a000]
     java.lang.Thread.State:等待(在对象监视器上)
          在java.lang.Object.wait(本地方法)
          在java.lang.Object.wait(Object.java:502)
          在de.hybris.platform.util.threadpool.PoolableThread.resetAndReturnToPool(PoolableThread.java:244)
          -锁定<0x0000000488801260>(de.hybris.platform.util.threadpool.PoolableThread)
          在de.hybris.platform.util.threadpool.PoolableThread.run(PoolableThread.java:217)

  

PoolableThreads处于等待状态并不罕见。 但是,在我们的生产环境中,数量只是在增长,它们从未被"释放"。 创建线程后,它将永远存在。

我创建了一个线程转储,并使用IBM的线程转储分析工具对其进行了可视化处理:  IBM的线程转储分析工具的屏幕截图

  • 我应该从哪里开始寻找?

  • 线程必须属于线程池,为什么不对其进行管理?

我们使用的Hybris版本是6.1

(95.6 kB)