【问题标题】:WebLogic (10.3.5) Thread Pool & Stuck Threads - What is considered continual use?WebLogic (10.3.5) 线程池和卡住线程 - 什么被认为是持续使用?
【发布时间】:2011-12-11 22:35:20
【问题描述】:

我想发现卡住的线程(通过设置 StuckThreadMaxTime 来监控连续线程的使用),并且考虑到每个事务的运行时间都很短,我想将其设置为一个较低的值——比如 20 秒。

我怀疑一旦线程返回到池中,Continuous use 计数器就会重新设置(这将是合乎逻辑的)即使线程几乎立即被重新使用。但我不确定。

是否有人确定将线程返回到池中会设置连续使用“时钟”而不是 StuckThreadMaxTime,即使线程在池中的时间很短,无法检测到?

【问题讨论】:

    标签: performance threadpool weblogic-10.x


    【解决方案1】:

    我不确定您所说的“连续使用计数器”是什么意思,但我可以解释 Weblogic 线程是如何工作的,希望这能澄清您的疑问。

    WL 为每个传入请求分配一个线程。该线程将用于完成请求,然后返回线程池。

    StuckThreadMaxTime 的作用是报告线程已超过同一请求的时间限制。

    因此,如果将其设置为默认 600 秒,则在超过该时间时将记录一条消息。

    注意 - Weblogic 不会在 600 秒后清除卡住的线程,它会继续处理只要它需要。它只是在日志中记录此事件。

    最后,当请求完成时,线程可以用于下一个请求。您可以通过在管理控制台中查看来验证每个线程完成了多少请求

    Servers > Monitoring > Threads 将显示线程数和完成的请求数

    所以回到你的确切问题 - StuckThreadMaxTime 为每个请求重置,而不是跨越多个请求

    此计时器在请求时启动,而不是在线程返回池时启动。

    您可以通过线程转储验证这一点 - 如果您收到(比如说)线程 7 的 StuckThread 消息,但几分钟后您可以看到线程 7 可能已清除并且现在正在处理另一个请求。

    进一步阅读:

    WebLogic stuck thread protection

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-14
      • 2020-11-09
      • 1970-01-01
      • 2010-11-06
      • 1970-01-01
      相关资源
      最近更新 更多