使用 IBM 性能分析工具解决生产环境中的性能问题
2010-04-12 00:00:00 来源:WEB开发网核心提示: 在分析结果中可以看到 Current Thread ,就是对应引起 OOM 的应用服务器的线程,使用 IBM 性能分析工具解决生产环境中的性能问题(7),使用该线程的名称作为关键字在我们的 log 里进行搜索,迅速定位到了业务点——这是一个定时的调度,jca 还提供了对垃
在分析结果中可以看到 Current Thread ,就是对应引起 OOM 的应用服务器的线程,使用该线程的名称作为关键字在我们的 log 里进行搜索,迅速定位到了业务点——这是一个定时的调度,其功能是按固定时间间隔以 DBLink 的方式从外部应用的数据库系统中抽取数据,通过应用层逻辑转换后保存到内网数据库系统中。应用层的逻辑是对所有的业务数据进行循环,对每条业务数据进行到 POJO 的一一对照转换,这意味这一条业务数据需要 10 几个 POJO 进行组合对照,也就是说,如果外网在指定的时间间隔内数据量稍大,就会加载大量的对象,使 JVM 的 class loaders 瞬间超过 8192 的限制,而产生 OOM 的错误,从而使内存不断被消耗,直至宕机。
jca 还提供了对垃圾回收和线程状态的详细分析数据,可以参考如下两图:
图 5. jca 对垃圾回收状态的分析数据
查看原图(大图)
图 6. jca 对垃圾线程状态的分析数据
查看原图(大图)
问题核实后,如何进行解决呢?分析结果中也给出了相应的建议,从图 4 的 Recommended 小节我们可以看到:
更多精彩
赞助商链接