1.文档说明
本文档主要讲述如何把PerformaSure工具集成在应用中并使用PerformaSure工具进行性能数据的收集和分析。
2.PerformaSure介绍
2.1简介
PerformaSure是QuestSoftware出品的性能测试产品套件,用于J2EE架构应用系统的性能数据的采集和分析。
PerformaSure产品由Agent、Nexus、Workstation几部分组成;Agent用于J2EE应用服务器、操作系统和网络的性能数据的采集;Nexus用于采集到的数据的集中加工处理;Workstation提供了性能分析结果的表示界面。
2.2功能特点
QuestPerformaSure性能测试产品套件在J2EE应用系统的性能测试方面很有特色,它提供了多方面的性能指标数据的收集和分析功能,有助于找出制约应用系统性能提升的瓶颈所在。
2.3易用性方面
PerformaSure产品的安装配置基本上与平台不相关,安装过程比较简单。
与应用服务器的集成,涉及到一些脚本的手工修改,按照相关文档也可以比较顺利地配置成功。
图形用户界面比较友好直观,支持数据存档和报告输出。
3.PerformaSure安装、配置与数据分析
3.1Windows下安装过程
进入PerformaSure安装介质目录的windows目录,直接运行install.exe即可,根据需要选择不同的安装类型,当仅用于搜集数据时选择“agent”,当用于处理数据时选择“nexus”,当用于分析数据结果时,选择“workstation”;
当选择的安装类型是“nexus”时,需要在安装完毕之后,将有效的license文件拷贝至PerformaSure的起始安装目录下,文件名称为performasure.license。
3.2Unix下安装过程
首先进入一个XWindow环境;
然后进入PerformaSure安装介质目录的相应操作系统的目录,如solaris目录,运行install.bin,后续的安装步骤与Windows下的安装过程相同。
Example:
在收集framecluster环境下的性能数据时PerformaSure的安装结构是:
1.在两台部署了集群环境的机器上分别安装PerformaSureAgent用例搜集两个ejbserver的数据
2.在另外一台机器(可以是pc)上安装PerformaSureNexus和Workstation用来处理和分析搜集到的数据
3.3PerformaSure配置和运行过程
3.3.1Nexus配置和运行:
进入PerformaSure安装目录的bin目录,直接运行Nexus.exe(或Unix下的相应的可执行文
件)即可。
Nexus运行的日志被输出到PerformaSure安装目录的logs目录中的nexus.log中。
3.3.2Agent配置和运行:
3.3.2.1设置Nexus主机名解析
在Nexus所在机器上执行命令hostname,获得Nexus所在机器的DNS名称,将该名称转化
为小写字符串;
在Agent所在机器的hosts文件中为Nexus所在机器增加一个条目,主机名使用上述小写字符串。
3.3.2.2设置与Nexus机器的连接
在Nexus所在机器上编辑PerformaSure安装目录中的agent.config文件,找到其中的
<NexusLocation>……..</NexusLocation>形式的行,在起始和结束标签中填入Nexus所在机器的IP
地址和端口,如<NexusLocation>192.168.70.190:41705</NexusLocation>。Nexus的缺省端口就是
41705,一般不用修改,只修改IP地址即可。
3.3.2.3与Weblogic集成
(注:PerformaSure2.1版本目前支持weblogic6.x和weblogic7.0的版本,对于weblogic8以上
的版本支持方面可能会有问题)
①Solaris,AIX,和HP-UX11环境下的安装说明
1.如果使用的是Weblogic6.x,则需将下面的语句复制到
bea_home/wlsServer6.1/conig/mydomain/startwebloigc.sh中
如果使用的是Weblogic7.0,则需将下面的语句复制到
bea_home/weblogic700/server/bin/startWLS.sh中
并且保证所有的语句都是在已经设定好了JAVA_HOME后才出现
(a)设置PERFORMASURE_HOME变量,使之对应PerformaSure目录
#必须设定下面的变量
#
PERFORMASURE_HOME=***本机上PerformaSure的实际路径***
(b)设置PerfomaSure所需的一些参数
#
#下面的语句都是基于PERFORMASURE_HOME变量,直接拷贝到Weblogic的启
动脚本中即可
#不要做其他改变
#
exportPERFORMASURE_HOME
sh"${PERFORMASURE_HOME}/scripts/preinstrumentor.sh""${JAVA_HOME}"
."${PERFORMASURE_HOME}/scripts/makebootstrappath.sh"
makebootstrappath"${JAVA_HOME}"
PERFORMASURE_BOOTSTRAP=-Xbootclasspath/p:"${PS_BOOTSTRAP_PATH}"
#下面出现的变量请注意:如果在集群环境下,则分为管理服务器和受管理服务器
#如果是管理服务器,则后面的参数是--weblogic-nodemgr,
#这样Nexus就不会采集该服务器的数据
#而如果是受管理服务器,则后面的参数是--weblogic
#如果是在单服务器环境下,则后面的参数也是--weblogic
#这样两种情况下Nexus都会去采集服务器数据
#这个是集群中的受管理服务器或单机服务器中需要的变量
PERFORMASURE_OPTIONS="com.sitraka.pas.agent.Agent--weblogic"
#这个是集群中的管理服务器所需变量
PERFORMASURE_OPTIONS="com.sitraka.pas.agent.Agent--weblogic-nodemgr"
2.将下面的变量插入Weblogic启动脚本中的java命令行,并且保证出现在"weblogic.server"
之前
"${PERFORMASURE_BOOTSTRAP}"${PERFORMASURE_OPTIONS}
请注意:对于Weblogic7.0来说,服务器的启动脚本可能出现在两个地方,即
user_projects/domain_name/Startweblogic.sh或者是weblogic700/server/bin/startWLS.sh,因此要
判断出所需要的脚本,并加以改变。
②Windows环境下的安装说明
1.如果使用的是Weblogic6.x,则需将下面的语句复制到
bea_home/wlsServer6.1/conig/mydomain/startwebloigc.cmd中
如果使用的是Weblogic7.0,则需将下面的语句复制到
bea_home/weblogic700/server/bin/startWLS.cmd中
并且保证所有的语句都是在已经设定好了JAVA_HOME后才出现
(a)设置PERFORMASURE_HOME变量,使之对应PerformaSure目录
#必须设定下面的变量
#
PERFORMASURE_HOME=***本机上PerformaSure的实际路径***
(b)设置PerfomaSure所需的一些参数
#
#下面的语句都是基于PERFORMASURE_HOME变量,直接拷贝到Weblogic的启
动脚本中即可
#不要做其他改变
#
call"%PERFORMASURE_HOME%/scripts/preinstrumentor.cmd""%JAVA_HOME%"
call"%PERFORMASURE_HOME%/scripts/makebootstrappath.cmd""%JAVA_HOME%"
#下面出现的变量请注意:如果在集群环境下,则分为管理服务器和受管理服务器
#如果是管理服务器,则后面的参数是--weblogic-nodemgr,
#这样Nexus就不会采集该服务器的数据
#而如果是受管理服务器,则后面的参数是--weblogic
#如果是在单服务器环境下,则后面的参数也是--weblogic
#这样两种情况下Nexus都会去采集服务器数据
#这个是集群中的受管理服务器或单机服务器中需要的变量
setPERFORMASURE_OPTIONS=-Xbootclasspath/p:"%PS_BOOTSTRAP_PATH%"
com.sitraka.pas.agent.Agent--weblogic
#这个是集群中的管理服务器所需变量
setPERFORMASURE_OPTIONS=-Xbootclasspath/p:"%PS_BOOTSTRAP_PATH%"
com.sitraka.pas.agent.Agent--weblogic-nodemgr
2.将下面的变量插入Weblogic启动脚本中的java命令行,并且保证出现在"weblogic.server"
之前
%PERFORMASURE_OPTIONS%
请注意:对于Weblogic7.0来说,服务器的启动脚本可能出现在两个地方,即
user_projects/domain_name/Startweblogic.cmd或者是weblogic700/server/bin/startWLS.cmd,因
此要判断出所需要的脚本,并加以改变。
3.将Weblogic集群的管理服务器作为Windows的服务运行
(a)构建管理服务器的启动脚本
*Weblogic6.1下:参见
http://e-docs.bea.com/wls/docs61/adminguide/remotestart.html#10044497,创建作为Windows服
务的管理服务器启动脚本,但先不要运行该脚本
*Weblogic7.0下:使用bea_home/weblogic700/server/bin/installNodeMgrSvc.cmd的一个
副本
(b)将下面的语句放入管理服务器的启动脚本,并且保证出现在执行程序之前
@rem必须设定下面的变量
@rem
PERFORMASURE_HOME=***本机上PerformaSure的实际路径***
@rem
@rem下面的语句都是基于PERFORMASURE_HOME变量,直接拷贝到Weblogic的
启动脚本中即可
@rem不要做其他改变
@rem
call"%PERFORMASURE_HOME%/scripts/preinstrumentor.cmd""%JAVA_HOME%"
call"%PERFORMASURE_HOME%/scripts/makebootstrappath.cmd"
"%JAVA_HOME%"
setPERFORMASURE_OPTIONS=-Xbootclasspath/p:"%PS_BOOTSTRAP_PATH%"
-Dperformasure.cmdline.arg0=--weblogic-nodemgr
-Dperformasure.cmdline.arg1=weblogic.nodemanager.NodeManagercom.sitraka.pas.agent.Agent
(c)用%PERFORMASURE_OPTIONS%覆盖java命令行中的
weblogic.nodemanager.NodeManager
3.4PerformaSure数据的分析
3.4.1请求响应时间分析:
PerformaSure以柱状图和树型图的形式提供了应用层请求响应时间的定量分析结果。这两种
图的表现形式比较直观,使用比较方便。
柱状图的分析是以各个Servlet的请求相应时间为基准的,其中不同颜色的条带分别代表了
Web层、EJB层和通过JDBC进行的数据库访问所占的时间。
通过柱状图的分析,可以直观地看出各个部分所占时间的比重,为进一步分析提供了线索,
成为后续的分析工作的起点。
PerformaSure提供的调用序列树型图可以将调用序列链条中耗时最多的环节用红色标示出
来,有助于找出性能瓶颈。
在使用PerformaSure进行性能数据分析的时候,这两种图形是最常用的,它们直观地显示出
了应用系统的性能瓶颈所在,对一般化的性能分析很有帮助。
3.4.2度量分析:
PerformaSure提供了给予Java虚拟机、操作系统、应用服务器的EJB、JDBC、JMS的以时间
为横坐标的数据度量曲线图形。
Java虚拟机的度量指标包括:堆的空闲百分比、空闲绝对值、占用百分比、占用绝对值,其
中每一种指标又分为全部计量节点的综合指标和每一个计量节点的个别指标两部分。
操作系统的度量指标包括:内存占用、磁盘读写、CPU利用率,其中每一项又进一步分为若干细
化的指标。
应用服务器的度量指标包括:EJB缓存、EJB锁、事务成功提交、回滚和超时的统计、JDBC
连接池的使用情况、JMS连接的使用情况;其中每一种指标又分为全部计量节点的综合指标和每
一个计量节点的个别指标两部分。
总的来说,度量分析这一部分提供了各种不同角度和粒度的度量指标上百个之多,对于深入
的性能分析应该能够满足要求。在这一次的试用过程中,有相当多的指标已经超出了Frame2现阶
段性能测试的需要。
另外,对于相关指标之间的对照分析,PerformaSure的支持不够完全。总体感觉,PerformaSure
提供的性能度量指标十分丰富,但工具对这些指标的对比分析和深入挖掘功能不是很强,多少给
人以堆砌数据的印象。
3.5数据存档和报告生成
3.5.1数据存档:
PerformaSure采集到的一系列性能指标数据,以Session数据文件的形式保存在Nexus运行的
机器上,每一次录制和采集生成一个文件。这个文件可以在日后重新打开再次进行分析,这样就
满足了数据存档的需求,操作也比较方便。
3.5.2报告生成:
PerformaSure提供性能数据导出成PDF文件的功能,格式和版面比较美观。导出文件的内容
基本上等同与Workstation中看到的分析结果,比较烦杂,不太适合作为正式提交的文档,应该需
要进一步加工才行。
相关推荐
2. **定位问题**:通过数据分析找出性能瓶颈,可能涉及数据库查询效率低、代码逻辑复杂、资源竞争或配置不当等方面。 3. **调优与优化**:针对发现的问题采取相应的优化措施,例如优化SQL查询、改进代码逻辑、增加...
8. 应用性能监控:为了更好地进行性能分析,监控工具必不可少。它们可以监控到J2EE应用运行时的各种状态,包括应用服务器状态、数据库状态、网络状态等。 9. 性能测试报告:测试结束后,编写性能测试报告是将测试...
- 使用JMX(Java Management Extensions)进行服务器监控,及时发现性能瓶颈。 - 利用Profiler工具(如VisualVM、YourKit)分析CPU、内存和线程状态,定位性能问题。 9. **代码优化**: - 避免过度设计:简洁的...
JProbe是一款强大的Java性能分析工具,它能够检测和定位Java内存泄漏,识别性能瓶颈,以及帮助开发者诊断和修复Java故障。通过深入代码级别的分析,JProbe可以提供关于哪些代码段需要优化的详细信息,对于提升整体...
本文档介绍了如何完整进行J2EE应用程序的性能测试以及如何解决J2EE API的关键性能问题。
数据库访问通常是性能瓶颈,优化策略包括: 1. 使用预编译的SQL语句(PreparedStatement):减少解析SQL的时间。 2. 数据库连接池:通过连接池管理数据库连接,减少连接创建和关闭的开销。 3. 有效的查询设计:...
随着技术的进步,新型的性能监控工具应运而生,它们不仅开销小,而且可以在生产环境或负载测试中使用,能够多层次地测量,帮助开发者准确地定位性能瓶颈。 #### 二、J2EE应用性能调整方法 J2EE应用的性能调整通常...
4. 科学地进行调优,包括识别性能瓶颈、测试假设、修改应用和再次测试性能。 5. 确定影响性能的因素(CPU、内存或IO),依次解决瓶颈。 6. 优化完成后,进行质量保证(QA)测试,记录和注释优化过的代码。 在应用...
使用JUnitPerf进行自动化性能测试,不仅可以评估单个用户访问系统的响应时间,还可以模拟多用户并发访问情况下的系统表现。JUnitPerf中的`TimedTest`和`LoadTest`类分别用于响应时间和负载的测试装饰器,可以有效地...
有效的性能监控可以帮助开发者及时发现并解决性能瓶颈,从而提高系统的整体效率和用户体验。 #### 三、性能监控的定义与目标 ##### 定义: 性能监控是指通过一系列的技术手段对软件系统的运行状态进行持续跟踪、...
这种测试有助于发现潜在的性能瓶颈,优化代码,以及为服务器配置提供指导。 二、性能测试的目标 1. **响应时间**:衡量系统处理请求的速度,包括用户请求到系统响应之间的时间。 2. **吞吐量**:表示系统在单位时间...
- 确定性能瓶颈所在:是CPU、内存还是I/O问题。 - 每次只解决一个瓶颈,避免过度调优不必要的部分。 - 提高CPU性能可以通过优化代码、改进算法或减少短期生存的对象实现。 - 提升内存性能则需减少或缩小长期生存...
这个方法强调在PC环境下,使用应用程序能够运行的最小配置来进行压力测试,以揭示潜在的性能瓶颈。 在J2EE应用中,性能调优通常涉及到程序、数据库、应用服务器、JVM(Java虚拟机)和操作系统的多个层面,由于其...
5. 使用性能分析工具监控和调优,例如JProfiler、VisualVM等。 6. 优化数据库查询,合理设计索引,避免N+1查询问题。 7. 编写高效的Java代码,遵循SOLID原则,避免内存泄漏和资源浪费。 通过遵循最佳实践和持续优化...
【PerformaSure】是Quest公司推出的一款专门针对J2EE应用程序的监控工具,它具备强大的性能诊断和优化功能,能够帮助用户在系统上线前找出性能瓶颈,确保生产环境的高效运行。以下是PerformaSure的主要特点和功能: ...
【J2EE性能优化】是针对基于Java 2 Platform, Enterprise Edition (J2EE) 开发的分布式企业级应用程序进行的性能提升过程。优化的主要目标是提高并发用户数量、吞吐量和可靠性,以确保应用能够高效、稳定地服务于...
本文档介绍了如何完整进行J2EE应用程序的性能测试以及如何解决J2EE API的关键性能问题。