Weblogic线程的使用

我在WebLogic 10.3上部署了一个应用程序,该应用程序performance出一种奇怪的行为。

  • 我在我的应用程序上运行一个常量(不是太高)的负载(20个并发用户,运行一个小活动)。
  • 响应时间是合理的(远低于应用程序稳定后的100ms)
  • 内存消耗似乎很好(我的应用程序创build了很多短生命的对象,但它们被垃圾回收,所以整体内存消耗保持在500 MB以下)。
  • 主题统计看起来也很健康: 线程池

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

这个testing还没有运行很长时间(所有在第一个屏幕截图中看不到的新线程都是在我写这个问题的时候创build的),而且我看到更多的线程正在创build。

任何想法为什么这些线程正在创build?

我build议你通过一个线程转储分析这些,所以你可以看到他们在崩溃之前做了什么。

每5秒钟间隔取4到5组线程转储。 所以最后你将有一个单独的日志文件,在应用服务器上有大约20到25秒的行动。

然后通过武士或TDA运行(我本人还没有使用过TDA),它会突出显示那些红色,所以你可以快速点击它,并得到显示问题的线路。

在这里看到一个例子。 看看那个链接中的Samurai输出图像。 绿色很好。 红色和灰色需要看。