`

【J2EE性能分析篇】ManageEngine ApplicationsManager的应用

    博客分类:
  • JVM
JVM 
阅读更多

对于软件测试从业者来说,性能测试领域主要包括性能测试执行、性能测试分析、性能优化三个过程域;而性能分析一直是测试工程师的难中之难、重中之重!今天,Sincky在这里和大家分享J2EE性能分析方法之一:用ManageEngine ApplicationsManager软件来分析J2EE WEB事务的响应时间!

     ApplicationsManager软件是ManageEngine公司的主打产品之一,可以对目前IT基础架构(包括硬件、操作系统、数据库中间件、应用服务器中间件、网络、J2EE/.NET服务)进行性能监控的工具,可谓强大无比、超乎想像!在我接触的性能监控类工具中,它是支持能力最强的工具。

我的相关日志:
2009-08-20 | 软件测试类工具大全2009版 第二部分

     在测试人员使用Loadrunner这种性能测试工具进行性能测试执行后,ApplicationsManager的强大能力即可突出。以典型的J2EE WEB应用程序的性能测试为例,虽然Loadrunner具有监控应用程序的功能,例如操作系统、数据库、中间件,但是Loadrunner对于国内外软件中常用的免费的中间件如Jboss、Tomcat、MySQL支持不足;而更为重要的一点,Loadrunner只能从黑盒级别获得一个HTTP请求到响应的时间解析,虽然它有对HTTP的简单诊断功能,但是仍然不能清楚的知道一个完整的HTTP请求到响应的过程中,JSP执行时间是多少?JavaBean执行时间是多少?EJB执行时间是多少?SQL语句执行时间是多少?试想,如果性能测试人员能把通过Loadrunner定位的性能瓶颈定位到代码层面,那么我们的测试人员的价值可谓大大的体现,我们的工资理所当然高高的加喽!

    官方网址:http://www.manageengine.com/products/applications_manager/,这里Sincky以9.1版本为例。它本身也是一个典型的J2EE WEB程序,使用Tomcat作为Java服务器,MySQL作为数据库,端口默认是9090。

    在Windows上安装好ApplicationsManager9.1后,通过开始菜单启动Application Manager Start,它会自动弹开一个IE窗口,进入登录界面:    

    初始登录默认用户名和密码都是admin.登录进入后,其它功能我们暂且不说,各位朋友可以自行根据官方文档研究,我们这里直接进入正题。点击monitors,进入如下页面:    

    这里才是ApplicationsManager强大监控类型的列表,大家可以看看,你想到的有,想不到的也有;基本满足我们常规软件开发中所涉及到的基础架构。我这里以一个基于windows上的Tomcat6.0/SQL Server2005的J2EE WEB应用程序为例,重点介绍J2EE Web Transaction监控器的使用,当然大家可以再使用Windows/Tomcat Server/Java Runtime/HTTP(S) URLs/MS SQL等监控器来实时监控该应用程序的其它部分。但是这些监控器在ApplicationsManager并没有什么特别之处,大家试后就会发现它和Loadrunner或其它类似工具监控出来的信息完全类似。

    J2EE Web Transaction监控器是ApplicationsManager经过自身算法从HTTP请求/响应数据包和特定的应用服务器中拦截信息后解析出来的响应时间分解,要比Loadrunner的响应时间Breakdown更为彻底和强大,是我们性能测试分析中绝对的好帮手!

    为了让ApplicationsManager能够拦截到我们被测系统的HTTP数据,我们需要添加一个额外的Java jar包到Tomcat的启动文件里,ApplicationsManager通过这个jar文件开放的55555端口来搜集有用数据,最终通过自身算法解析到ApplicationsManager的页面上。这个jar文件叫做WebTransactionAgent.jar,可以从http://localhost:9090/resources/WebTransactionAgent.jar下载该文件,并拷贝到Tomcat服务器的bin路径下。然后修改bin目录下的catalina.bat文件,打开它,添加红色代码到如图位置: 

set JAVA_OPTS=%JAVA_OPTS% -javaagent:WebTransactionAgent.jar

rem ----- Execute The Requested Command ---------------------------------------

echo Using CATALINA_BASE:   %CATALINA_BASE%
echo Using CATALINA_HOME:   %CATALINA_HOME%
echo Using CATALINA_TMPDIR: %CATALINA_TMPDIR%

    保存该文件,然后启动Tomcat服务器Startup.bat,确保Tomcat服务器启动正常;正常启动的Tomcat提示窗口应该出现这句话:

AdventNet Web Transaction agent started at port 55555

    接着再回到ApplicationsManager,点击页面上边的New Monitor链接,选择J2EE Web Transaction,显示下图页面:

    在Host Name/IP Address里输入Tomcat服务器地址,如果子网掩码不同可以修改默认的,端口不必修改,因为已经开启55555了,Polling Interval是时间间隔,表示多久让ApplicationsManager搜集数据一次;选择一个Monitor Group,点击Add Monitor按钮,提示成功!点击成功提示后的Monitor Detail链接,进入如下页面:

    这里我们需要再编辑该监控器,点击Edit Monitor链接:

    这里一定要勾上Enable Tracing复选框,才能让ApplicationsManager对截获下来的SQL和Java Class进行深层性的分析,点击Update按钮,回到前页。其它设置含义请看帮助。

    接下来,我们可以随便在Tomcat下部署的J2EE应用里做一些动作,过了指定的时间间隔,点击上边的Refresh Data链接,就会在ApplicationsManager的下边出现我们期待已久的分析结果了:

   图中显示的是我随便操作几个WEB页面动作所解析下来的结果,由于试用版限制,这里只能显示5个Transaction,它们的响应时间分别是1000、219、78、47、16毫秒,以第一个Transaction的contact_edit.jsp为例,它有750毫秒消耗在JSP解析时间上,有250毫秒消耗在SQL语句执行上;其它事务类似。点击该事务,会在下边的method level的Tree视图中显示出这750毫秒和250毫秒分别花在具体什么JSP上和具体哪个SQL语句上.

    再点击method level的SQL视图,可看出JDBC连接时间、SQL语句执行时间、结果提交时间、连接关闭时间等等细的不能再细的时间分解!!!到了这个地步,朋友们,J2EE的性能瓶颈定位,还是难点吗? 得意 

    【总结】

    1. 图中的URL的Total时间,按照ApplicationsManager的文档,应该和Loadrunner的事务响应时间是一样的,只是Loadrunner是在多用户并发情况下计算出来的,而它不关注前台是否并发,只管采集后台数据、计算结果。实际工作中,我们对经过Loadrunner测试后的端到端事务响应时间,可以再用ApplicationsManager来进一步分析瓶颈所在地。

    2. ApplicationsManager是一款如此好的工具,如果需要应用到企业的实际性能测试分析环节中,还是需要官方license的支持才能体现其强大作用。

    3. ApplicationsManager可以综合监控和分析一个庞大软件系统的各个层面的性能问题,而绝不单单本实例所介绍的J2EE WEB应用程序监控。

    4. ApplicationsManager更可以作为软件产品上线后对生产环境的实时监控,并且可以对每个监控的性能指标设定阈值,并触发自动发送邮件等动作即时通知用户。另外,它对所有的监控器都有强大的报表功能,可以把历年、历月、历周的生产环境数据统计并分析出来,从而回过头来作为性能测试需求分析的有效场景设计依据;所以一定程度上,它和WebTrends Log Analyzer具有相同功效,参见:

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics