我们有一个部署在WebLogic10上的企业级java应用程序(ear-少数ejb和一个webapp),使用Sun java 5。在负载用户较少的情况下,响应时间、CPU和内存使用率都很好,但是如果我们将并发用户数增加到>100,则会在一段时间后看到巨大的CPU峰值(例如:-使用100个用户进行负载测试,测试超过30分钟后CPU会变得很高)。我们想使用hprof来分析应用程序并收集统计数据,但只想在CPU较高的时候这样做,即在测试30分钟后,有什么方法可以做到吗?
我不能使用jmap,因为我们使用的是Sun java 5。
发布于 2009-05-17 06:11:49
CPU中的巨大峰值可能表明GC正在运行。如果是这样,这将不会显示在分析器中。您可以使用-verbosegc运行,以查看GC何时运行。(或使用jconsole)
发布于 2009-05-17 04:07:20
这本质上是特定于JVM的。因此,您需要指定您使用的JVM (Sun/BEA/IBM等)。
在弄清楚这一点的同时,考虑将webcontainer中的会话超时设置为60秒,然后重新运行测试。
发布于 2009-05-17 04:19:42
如果没有其他选择,您可以尝试以下几个选项:
我理解后者并不是每个人都喜欢的,但它最终会让你做你想做的事情。
https://stackoverflow.com/questions/873766
复制相似问题