Weblogic 线程使用情况

Weblogic 线程使用情况

我在 WebLogic 10.3 上部署了一个应用程序,它表现出奇怪的行为。

  • 我的应用程序正在以恒定(不是太高)的负载运行(20 个并发用户,运行轻量级活动)。
  • 响应时间合理(应用程序稳定后远低于 100 毫秒)
  • 内存消耗似乎还好(我的应用程序创建了很多短暂存活的对象,但是它们被垃圾收集了,所以总体内存消耗保持在 500mb 以下)。
  • 线程统计数据看起来也很健康: 线程池

然而,在我让测试运行一段时间后,创建了越来越多的执行线程(“[ACTIVE] ExecuteThread:'3' forqueue:'weblogic.kernel.Default(self-tuning)'”),直到最终应用程序崩溃: 线程创建

这个测试已经运行了很长时间(您在第一个屏幕截图中看不到的所有新线程都是在我写这个问题时创建的),并且我看到创建了更多的线程。

知道为什么要创建这些线程吗?

答案1

我建议您通过进行线程转储来分析这些,这样您就可以看到它们在崩溃之前正在做什么。

每隔 5 秒进行 4 或 5 组线程转储。这样最后您将得到一个日志文件,其中包含应用服务器上大约 20 - 25 秒的操作。

然后运行这些武士或 TDA(我自己没有使用过 TDA),它会以红色突出显示,以便您可以快速单击它并获取显示问题的行。

查看示例这里。查看该链接中的 Samurai 输出图像。绿色很好。红色和灰色需要查看。

相关内容