Diagnostics使用介绍和分析诊断
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
HP J2EE Diagnostics性能优化
1. HP J2EE Diagnostics产品说明
HP J2EE Diagnostics是一个可以独立运行的软件产品,它提供了一种自顶向下的解决方案,来对J2EE应用进行监测管理和诊断分析,它覆盖了J2EE应用的整个生命周期,即既可以在J2EE应用开发阶段使用,也可以在J2EE应用投产后使用。
它即可以单独使用,也可以同HP其他的解决方案集成起来,如LoadRunner®,HP Performance Center™, HP Business Availability Center™。
在J2EE应用服务器内部安装J2EE Diagnostics Probe,它可以监控发生在应用服务器内部的所有事件,如方法调用信息、SQL语句信息、内存泄漏、包括EJB组件的问题、方法的问题、JDBC调用SQL语句、线程状态和异常等信息。
实施了HP J2EE Diagnostics以后,不但可以监控到应用交易(Transaction A)端对端的响应时间,还可以进一步了解到该交易在WEB服务器、应用服务器和数据库服务器上分费的时间。
HP J2EE Diagnostics分析诊断
HP J2EE Diagnostics提供了包括HTTP、Servelet、JSP、EJB/Object、方法和SQL调用在内的多层次关联,它将这些内部组件的数据信息同JMX和操作系统级的指标数据关联起来以显示低效率环节的详细信息,同时以一个图形化的视图显示丰富的信息内容,包括交易追踪、调用链、内存泄漏、抖动、锁同步的详细信息、进程阻塞、时延图,甚至存在问题的方法的源代码。
J2EE Diagnostics能够捕捉特定方法创建实例的详细信息,包括参数传递、
各个环节的时延等,定位那些特定用户数据或使用模式引起的间歇型故障的来源。
项目说明
支持的应用类型 J2EE应用服务器:WEBLOGIC、WEBSPHERE、JBOSS和TOMCAT等
Microsoft .NET Framework: 1.1、2.0等
内存及负载分析HP Diagnostics for J2EE可以对每一个WebLogic Server实例的内存和负载进行监控。
通过内存使用量及HeapDump功能,可以及时发现内存泄漏。
热点问题分析从Diagnostics的热点问题分析可以看出,当前WebLogic 服务器上,什么方法调用最慢,什么SQL语句最耗时、以及抛出最多的异常等信息。
服务请求及处理过程服务请求用于跟踪交易请求在WebLogic 服务器上的执行过程,方法调用J2EE异常分析 Diagnostics
的Profiler可以精确地捕获这些异常发生的次数的地点。
方法调用分析对于业务系统产生的每一个方法调用,它的调用次数、响应时间、以及抛出的异常情况等可以从Diagnostics的“方法调用”模块中得到。
可以根据每个方法
的响应时间(Avg times)以及调用次数(Count)来排序,发现时间消耗长的方法调
用。
SQL语句分析 Diagnostics可以对应用服务器上执行每一条SQL语句调用次数最多,响应时间也最长,可以结合Quest的相关软件进行分析及优化。
WEBLOGIC、WEBSPHERE专项分
析
HP Diagnostics for J2EE为WebLogic、WebSphere等知名服务器提供了专项监控功能,通过它可以获得到这些应用服务器专有的性能特征。
1.1 内存及负载
HP Diagnostics for J2EE可以对每一个WebLogic Server实例的内存和负载进行监控。
通过内存使用量及HeapDump功能,可以及时发现内存泄漏。
通过负载视图,可以看出
1.2 热点问题分析
从Diagnostics的热点问题分析(Hotspots)可以看出,当前WebLogic 服务器上,什么方法调用最慢,什么SQL语句最耗时、以及抛出最多的异常等信息。
1.3 请求处理链
图中列出了AssertDetailBB.queryAssertDetail()方法的调用链及时间消耗,通过Call Tree 可以看出,OralcePreparedStatement.executeQuery()消耗了大量时间,它执行了一个SQL语句,可以对这个SQL语句进行优化,以减小处理时间。
1.4 服务请求
服务请求用于跟踪交易请求在WebLogic 服务器上的执行情况。
1.5 Exception分析
Diagnostics 的Profiler可以精确地捕获这些异常发生的次数的地点。
1.6 方法调用分析
对于业务系统产生的每一个方法调用,它的调用次数、响应时间、以及抛出的异常情况等可以从Diagnostics的“方法调用”模块中得到。
可以根据每个方法的响应时间(Avg times)以及调用次数(Count)来排序,发现时间消耗长的方法调用。
1.7 SQL语句分析
图中显示的每一条SQL语句调用次数最多,响应时间也最长,可以结合Quest的相关软件进行分析及优化。
1.8 系统性能指标
Diagnostics可以收集System(CPU、内存、IO...)、JVM(Heap)以及WebLogic(Queue、Thread、JMS、JTA、Servlets...)的指标,并作出曲线。
1.9 WebLogic专项监控
HP Diagnostics for J2EE为WebLogic、WebSphere等知名服务器提供了专项监控功能,通过它可以获得到这些应用服务器专有的性能特征。
2. Diagnostics+LR方案
使用LoadRunner模拟客户机对J2EE应用系统实加压力,采集交易响应时间和应用平台的性能数据。
Controller 可以把交易响应时间、J2EE Diagnostics采集数据和应用平台的性能数据放到Analysis模块中进行分析,向下Drill Down到J2EE应用服务器内部,发现消耗时间比较长的方法。
2.1 方案体系结构
J2EE性能诊断分析方案体系结构如下图所示:
GENERATORS J2EE Diagnostics Server
说明:
¾ 在J2EE 应用服务器内部安装J2EE Diagnostics Probe (图中绿色部件),它可以监控
发生在应用服务器内部的所有事件,如方法调用信息、SQL 语句信息、内存泄漏、
线程状态和异常等信息。
¾ 使用LoadRunner 模拟客户机对J2EE 应用系统实加压力,采集交易响应时间和应
用平台的性能数据。
¾ 把交易响应时间、J2EE Diagnostics 采集数据和应用平台的性能数据放到Analysis
模块中进行分析,向下Drill Down 到J2EE 应用服务器内部,发现消耗时间比较长
的方法,
2.2 方案应用举例
以下是国内某大型银行电子渠道交易系统(基于WebLogic Server 开发)使用本方案后获得的交易响应数据:
经过分析,发现“网银_账户信息查询”交易响应时间最长,其中ECTIP-CALLER层与ECTIP-CALLEE两个层面上共的时间占95%以上,而“Web Tier/Servlet”层仅占4%,Database/JDBC/Execute层仅占不到1%。
通过J2EE性能诊断工具,向下Drill Down,发现该交易抛出大量异常,而异常通常是造成应用性能下降和出错的主要原因:
下面是“网银_账户信息查询”交易的向下分解到服务请求视图,在图中上三角表示交易响应时间最长的采样点:
我们点击其中一个上三角,可以得到以下Calltree。
通过Calltree可以看出消耗时间最长的方法,以及哪些方法抛出了异常,这对我们解决问题非常有帮助:
我们可以帮助定们抛出了异常的方法:
说明:这里仅给出本方案的一部分特性。
3. Diagnostics+BAC 方案
3.1 方案体系结构
HP 监控平台由Business Availability Center 和Database Server 构成,它们同时安装在一台机器上。
BPM 是业务监控的发起端,分别安装在两个PC 机上,它们发起模拟交易,探测综合查询系统的可用性和性能,并把探测数据发回给BAC 服务器。
Diagnostics Server 是HP 的J2EE 诊断服务器,它从安装在J2EE 应用服务器内部的探测器(图中绿色小圆圈)上采集数据,并汇报给BAC 服务器。
Internet
Vugen
Admin Console
Oracle 9i,10g
SQL Server 2000 SP4
J2EE/.Net Diagnostics Probe
Diagnostics BPM@HPBA
C
在逃人员查询被盗汽车查询
人口查询车辆查询
3.2 方案应用举例
BPM 监控数据显示“车辆查询”交易响应时间比较长,则可以从BPM 报表直接向下钻取到J2EE 应用服务器平台,查询交易在应用服务器上的处理情况。
如下图所示:
从图中可以看出,“车辆查询”交易响应时间比较长,而且波动比较大,因此我们要向下分析原因。
双击该交易,我们可以看到它在应用服务器上被细分成若干个线程活动(服务请求),如下图所示:
对这些线程活动的延时进行排序,我们发现“/zhcx/severlet/YHTJCL”的响应时间比长,图中列出了几个关键点(向上三角形,表示响应时间比较长的采样点,向下三角形,表示响应时间比较短的采样点,圆圈表示响应时间比较平均的采样点),我们点击其中一个向上的三角形,查看该采集点发生的事件,如下图所示:
从图中我们可以看出,“/zhcx/severlet/YHTJCL”往下,调用了一个SQL语句,它的执行时间占到总体的35.3%,是一个性能瓶颈所在,需要开发人员对其进行优化。
4. 技术应答
4.1 对J2EE、.NET、SAP R3/Netweaver、Siebel
等应用系统进行诊断分析,协助发现并精确定位
性能瓶颈、异常、内存泄漏等问题;★HP应答:满足要求。
HP Diagnostics for Composite Application可以对J2EE,Microsoft .NET, SAP R3/Netweaver进行性能诊断,HP Diagnostics for Siebel可以对Siebel应用平台进行
性能诊断。
Diagnostics软件在性能诊断时,可以协助发现并精确定位性能瓶颈、异常、内存泄漏等问题。
4.2 提供热点问题分析,了解当前J2EE 服务器上,
什么方法调用最慢,什么SQL语句最耗时、以及
抛出最多的异常等信息。
HP应答:满足要求。
HP Diagnostics for Composite Application提供了热点问题(Hotspots)分析功能,从Diagnostics的热点问题分析可以看出,当前J2EE应用 服务器上,什么方法调用最慢,什么SQL语句最耗时、以及抛出最多的异常等信息。
如下图所示:
4.3 提供服务请求列表,用于跟踪交易请求在J2EE
服务器上的执行情况;★
HP应答:满足要求。
HP Diagnostics for Composite Application可以跟踪每服务请求在J2EE应用服务器上的处理过程。
如下图所示,图中列出了AssertDetailBB.queryAssertDetail()方法的调用链及时间消耗,通过Call Tree可以看出,OralcePreparedStatement.executeQuery()消耗了大量时间,它执行了一个SQL语句,可以对这个SQL语句进行优化,以减小处理时间。
4.4 提供方法调用分析,能够对于业务系统产生的每
一个方法调用,看到它的调用次数、响应时间、
以及抛出的异常情况等;
HP应答:满足要求。
HP Diagnostics for Composite Application提供了方法调用分析功能,它可以列出业务系统所有的方法调用信息,包括方法调用次数、响应时间、以及抛出的异常情况等。
如下图所示:
4.5 提供SQL语句分析,显示调用次数最多,响应时
间也最长的SQL语句;
HP应答:满足要求。
HP Diagnostics for Composite Application提供了SQL语句调用分析功能,如下图所示。
图中显示的每一条SQL语句被调用次数,平均响应时间,抛出的异常数等。
4.6 可以复用LoadRunner测试脚本,进行交易监
控;★
HP应答:满足要求。
HP Diagnostics for Composite Application可以和压力测试工具LoadRunner结合起来,共同完成性能测试和调优任务。
LoadRunner脚本中定义的交易信息,可以传递到
Diagnostics中,成为性能分析的入口点,如下图所示:
4.7 灵活实现类和方法的深度监控与诊断(包括标准
和非标准);★
HP应答:满足要求。
HP Diagnostics for Composite Application通过正则表达式,实现类和方法的深度监控和诊断。
例如,如果要实现对com.jet包中的所有的类进行监控,可以按如下方式来编写正则表达式。
Diagnostics已经对J2EE标准的类,WebLogic, WebSphere, Portal等常见的中
间件的类进行了监控,这些标准的类不必再通过正则表达式来配置
4.8 可与运维系统的业务可用性监控集成,从业务可
用性监控直接调用深度监控结果;★
HP应答:满足要求。
HP Diagnostics for Composite Application不但可以和LoadRunner软件实现集成,还可以和HP的运维管理软件集成,从而实现业务可用性监控。
4.9 可与LoadRunner测试软件集成,提供完整的应
用测试故障诊断和分析;★
HP应答:满足要求。
HP Diagnostics for Composite Application可以和LoadRunner软件实现集成,提供完整的应用测试故障诊断和分析,如下图所示:
4.10 品牌考虑范围主要包括HP、IBM和微软等品牌
软件。