简而言之:我的JBoss实例运行正常,但几天后它的性能正在慢慢降低。
详细说明: 我有一个JBoss 5.1.0-GA和Java 1.6.0_18-b07(x64)在64位RHEL 4盒子上运行的设置。硬件是一台虚拟机,配备8核Xeon X5550 / 20G内存。
JBoss中部署的产品包含一个Web服务,在该服务上执行耐久性测试。 该过程不涉及任何数据库。
使用4个线程的soapui执行测试,并将测试配置为创建20%的CPU使用率。
首先,平均响应时间为300毫秒。 2天后,响应时间现在是600毫秒,我不明白。 当然我做了一些检查:
在进行一些进一步的调查时,我在开始时(当它仍然很快时)使用JProfiler执行cpu配置文件,然后在(慢)结束时执行。我所看到的是,每一次通话都要慢100%! 甚至可以调用一个简单的Map#put()。 (调用的数量和这些地图的内容是相同的)。 运行探查器时,没有阻塞线程的迹象,只是运行线程。
有没有人知道导致性能下降的原因是什么? 谢谢!
<小时/> 更新:通过将Java版本升级到1.6.0_24解决了性能下降问题!
虽然没有选项,但我浏览了java vm的所有发行说明,并在1.6.0_23中发现了性能和可靠性修复。另见 1.6.0_23 release notes
在jvm升级之后,性能保持不变,并且不会在几天内降级。
答案 0 :(得分:6)
Jan发现的解决方案:
通过将Java版本升级到1.6.0_24来解决性能下降问题!
虽然没有选项,但我浏览了java vm的所有发行说明,并在1.6.0_23中发现了性能和可靠性修复。另请参阅1.6.0_23发行说明
在jvm升级之后,性能保持不变,并且在几天内不会降低。*