使用PerformaSure进行J2EE性能监控及瓶颈分析

来源:互联网 发布:热力学软件 编辑:程序博客网 时间:2024/05/21 00:55

1.文档说明

本文档主要讲述如何把PerformaSure 工具集成在应用中并使用PerformaSure 工具进行性能数据的收集和分析。

2. PerformaSure 介绍

2.1简介

PerformaSure Quest Software出品的性能测试产品套件, 用于J2EE 架构应用系统的性能数据的采集和分析。

PerformaSure 产品由AgentNexusWorkstation几部分组成; Agent用于J2EE应用服务器、操作系统和网络的性能数据的采集; Nexus 用于采集到的数据的集中加工处理; Workstation 提供了性能分析结果的表示界面。

2.2功能特点

Quest PerformaSure性能测试产品套件在J2EE应用系统的性能测试方面很有特色, 它提供了多方面的性能指标数据的收集和分析功能, 有助于找出制约应用系统性能提升的瓶颈所在。

2.3易用性方面

PerformaSure产品的安装配置基本上与平台不相关, 安装过程比较简单。

与应用服务器的集成, 涉及到一些脚本的手工修改, 按照相关文档也可以比较顺利地配置成功。

图形用户界面比较友好直观, 支持数据存档和报告输出。

3. PerformaSure 安装、配置与数据分析

3.1 Windows下安装过程

进入PerformaSure 安装介质目录的windows 目录, 直接运行install.exe 即可, 根据需要选择不同的安装类型, 当仅用于搜集数据时选择“ agent”, 当用于处理数据时选择“ nexus”, 当用于分析数据结果时, 选择“ workstation”;

当选择的安装类型是“ nexus 时, 需要在安装完毕之后, 将有效的license 文件拷贝至PerformaSure 的起始安装目录下, 文件名称为performasure.license

3.2 Unix 下安装过程

首先进入一个XWindow环境;

然后进入PerformaSure安装介质目录的相应操作系统的目录,如solaris目录,运行install.bin,后续的安装步骤与Windows 下的安装过程相同。

Example

在收集frame cluster 环境下的性能数据时PerformaSure 的安装结构是:

1. 在两台部署了集群环境的机器上分别安装PerformaSure Agent 用例搜集两个ejb server 的数据

2. 在另外一台机器( 可以是pc  上安装PerformaSure Nexus  Workstation 用来处理和分析搜集到的数据

3.3PerformaSure配置和运行过程

3.3.1 Nexus 配置和运行:

进入PerformaSure 安装目录的bin 目录, 直接运行Nexus.exe Unix 下的相应的可执行文

件) 即可。

Nexus 运行的日志被输出到PerformaSure 安装目录的logs 目录中的nexus.log 中。

3.3.2 Agent 配置和运行:

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-UX 11 环境下的安装说明

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 的启

动脚本中即可

不要做其他改变

#

export PERFORMASURE_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都会去采集服务器数据

#这个是集群中的受管理服务器或单机服务器中需要的变量

set PERFORMASURE_OPTIONS=-Xbootclasspath/p:"%PS_BOOTSTRAP_PATH%"

com.sitraka.pas.agent.Agent --weblogic

#这个是集群中的管理服务器所需变量

set PERFORMASURE_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%"

set PERFORMASURE_OPTIONS=-Xbootclasspath/p:"%PS_BOOTSTRAP_PATH%"

-Dperformasure.cmdline.arg0=--weblogic-nodemgr

-Dperformasure.cmdline.arg1=weblogic.nodemanager.NodeManager com.sitraka.pas.agent.Agent

(c) %PERFORMASURE_OPTIONS% 覆盖java 命令行中的

weblogic.nodemanager.NodeManager

3.4 PerformaSure数据的分析

3.4.1 请求响应时间分析:

PerformaSure 以柱状图和树型图的形式提供了应用层请求响应时间的定量分析结果。这两种

图的表现形式比较直观, 使用比较方便。

柱状图的分析是以各个Servlet 的请求相应时间为基准的, 其中不同颜色的条带分别代表了

Web 层、EJB 层和通过JDBC进行的数据库访问所占的时间。

通过柱状图的分析, 可以直观地看出各个部分所占时间的比重, 为进一步分析提供了线索,

成为后续的分析工作的起点。

PerformaSure 提供的调用序列树型图可以将调用序列链条中耗时最多的环节用红色标示出

来, 有助于找出性能瓶颈。

在使用PerformaSure 进行性能数据分析的时候, 这两种图形是最常用的, 它们直观地显示出

了应用系统的性能瓶颈所在, 对一般化的性能分析很有帮助。

3.4.2 度量分析:

PerformaSure 提供了给予Java虚拟机、操作系统、应用服务器的EJBJDBCJMS 的以时间

为横坐标的数据度量曲线图形。

Java 虚拟机的度量指标包括: 堆的空闲百分比、空闲绝对值、占用百分比、占用绝对值, 

中每一种指标又分为全部计量节点的综合指标和每一个计量节点的个别指标两部分。

操作系统的度量指标包括: 内存占用、磁盘读写、CPU 利用率, 其中每一项又进一步分为若干细

化的指标。

应用服务器的度量指标包括: EJB 缓存、EJB 锁、事务成功提交、回滚和超时的统计、JDBC

连接池的使用情况、JMS 连接的使用情况; 其中每一种指标又分为全部计量节点的综合指标和每

一个计量节点的个别指标两部分。

总的来说, 度量分析这一部分提供了各种不同角度和粒度的度量指标上百个之多, 对于深入

的性能分析应该能够满足要求。在这一次的试用过程中, 有相当多的指标已经超出了Frame2 现阶

段性能测试的需要。

另外,对于相关指标之间的对照分析,PerformaSure 的支持不够完全。总体感觉,PerformaSure

提供的性能度量指标十分丰富, 但工具对这些指标的对比分析和深入挖掘功能不是很强, 多少给

人以堆砌数据的印象。

3.5 数据存档和报告生成

3.5.1 数据存档:

PerformaSure 采集到的一系列性能指标数据,以Session数据文件的形式保存在Nexus运行的

机器上, 每一次录制和采集生成一个文件。这个文件可以在日后重新打开再次进行分析, 这样就

满足了数据存档的需求, 操作也比较方便。

3.5.2 报告生成:

PerformaSure 提供性能数据导出成PDF 文件的功能, 格式和版面比较美观。导出文件的内容

基本上等同与Workstation 中看到的分析结果, 比较烦杂, 不太适合作为正式提交的文档, 应该需

要进一步加工才行。