读书人

IBM相干JVM诊断工具

发布时间: 2012-06-28 15:20:04 作者: rapoo

IBM相关JVM诊断工具








就可以开始安装了(注:IBM Support Assistant以及后面的相关工具是采用纯Java编写的,需要Java运行时环境支持,请确保机器上已预装JRE,经验证V4.1支持Java5.0及以上版本),安装成功后,首次运行的IBM Support Assistant面板如下,下次启动可以选择“启动活动”标签,选择相关功能即可:











?

18、 结论:经过分析,绝大多数的等待发生在同一个地方:ArrayList,难道是List()存在问题,继续跟踪,发现都这些等待都使用的是RMI方式通信,不难想象,是某种远程调用,而问题表现的恰恰是因为大量的远程调用中出现了线程等待,结合该项目的特点,我们发现,该项目的部署方式为,WEB模块+EJB模块,而两者分开部署,虽然这种方式更适合分布式的应用。问题就出在这,调用EJB时采用了大量的远程接口调用,根据EJB规范,远程调用时对象的传递需要进行序列化,正是这种序列化造成了大量的等待。

19、 建议:根据以上分析,我们找出了影响其性能的一个主要原因,WEB模块与企业逻辑EJB之间的通信存在问题,EJB2.0为了提高性能开始支持Local方式的EJB,但是LocalEJB和RemoteEJB的实现方式和调用方式都是不一样的(配置也不一样,可以通过程序自适应),RemoteEJB是通过RMI方式调用的,对象传递需要序列化,而LocalEJB是通过对象引用传递的,没有序列化,性能会高很多。所以针对该问题,建议尽量调用EJB的本地接口。该诊断最终获得客户认可,对系统的重新优化后,性能有了明显提高。

20、 以上仅仅从工具方面分析了项目中可能遇到的瓶颈问题,实际上,正如前面所说,一个完全不存在瓶颈的系统是不存在的,在这个项目中,我们实际上还发现了其他问题:比如配置的问题,对应用服务器、数据库的配置问题;另外,针对数据库的SGA命中率低的问题,我们给出了一些SQL的优化建议,这些都得到了客户的认可。

读书人网 >移动开发

热点推荐