IBM®
跳转到主要内容
    中国 [选择]    使用条款
 
 
Select a scope: Search for:    
    首页    产品    服务与解决方案     支持与下载    个性化服务    
跳转到主要内容

developerWorks 中国  >  SOA and Web services | WebSphere | Rational  >

基于 SOA 应用程序的性能测试方法

developerWorks
前一页第 5 页,共 10 页后一页

文档选项

对本教程的评价

帮助我们改进这些内容


性能测试工具及测试环境的准备

性能测试拥有自己专门的测试工具去检查服务器的各种参数,比如:CPU,I/O,JVM,以及模拟性能测试场景的工具 Rational Performance Tester for SOA。在本文场景,利用 WebSphere Process Server 搭建了一个集群,它可以分摊 I/O 负载,降低系统故障,所以搭建 WebSphere Process Server 的集群至关重要。

搭建 WebSphere Process Server 集群

Cluster(集群)是多个 WebSphere Process Server 的集群,它可以集中管理所有 WebSphere Process Server( 以下简称 WPS),并参与管理所有 WPS 的负载。WPS 6.0.1 及以上版本支持搭建 Cluster。这样可以做到负载均衡(Workload Balance)和高可用性(High Availability),从而使得 WPS 更加稳定,性能更为优秀。况且在一般的真实生产环境中,WPS 集群也是经常要使用到的。

Cluster 分为两种,水平 Cluster 和竖直 Cluster。水平 Cluster 的成员在不同物理机器上,竖直 Cluster 的成员在同一台物理机器上。在这里由于测试环境的限制,我们采用的是竖直 Cluster,有三个 Cluster 成员。Cluster 中有一个 Deployment Manager 类型 profile,它可以管理整个单元内部所有的 WPS。Deployment Manager 通过和 Node Agent 交互信息来管理节点。而 Node Agent 用来管理三个 Cluster 成员。我们还需要在 WPS Cluster 和应用中间加入一个 HTTP Server,使得应用通过 HTTP 协议访问 WPS Cluster 的时候随机的分摊到不同的 Cluster 上面。





回页首


使用 Rational Performance Tester For SOA 搭建分布式测试环境

要安装 Rational Performance Tester For SOA 首先要安装 Rational Performance Tester 然后升级到 Rational Performance Tester For SOA。为了均匀分布性能测试中的负载量,可以安装一个 RPT controller 和多个 RPT agent。下图则为基于 RPT 的分布式测试环境图:


图 5. RPT 分布式测试环境图
RPT 分布式测试环境图




回页首


制作铺底数据

  • 准备铺底数据的目的

在性能测试过程中,我们要增大数据库的数据量。铺底数据就是在性能测试的时候,为数据库注入大量的业务数据,以保证性能测试的环境更加接近生产环境。铺底数据要按照实际业务逻辑去生成,这个实际的业务逻辑可以归纳为――在真实的生产环境中,客户利用的所有业务表的存储比例和数量。铺底数据虽然是一些对系统无用的垃圾数据,但是要遵守数据库中的数据依赖关系。

  • 铺底数据对系统的性能影响较大

系统在有铺底数据和没有铺底数据的情况下,性能会有很大的差异。如果没有那些铺底数据,那么本来为一张表建立了一个索引,当系统的数据量很小的时候,数据库就有可能造成全表扫描,而不走索引扫描,这样就会造成系统的性能降低。如果数据量很小的话,数据库进行一次查询时候的 SQL 语句执行路径方案和数据量大的时候的方案是不同的。(譬如 DB2 的 ACCESS PATH。ACCESS PATH 会随着数据量的多少的变化而变化的。)

  • 生成铺底数据

利用性能测试工具录制脚本,反复插入数据到数据库中,最终生成铺底数据

利用性能测试工具录制脚本,循环 1000 遍,导出数据库文件,利用程序把数据翻 10000 倍,然后在把数据导入到数据库中。





回页首


性能测试中需要使用的分析工具

  • nmon

nmon 是用来监控和分析 AIX 和 Linux 服务器的性能数据的工具。如 CPU 使用率,内存的适用,内核统计和队列信息,磁盘 I/O 率,传输,读写率,磁盘空间等等。它就像 Windows 的任务管理器一样,但是比之更强大,更准确。nmon 还可以捕获性能数据做性能分析和图形的报告。报告的输出是一个 spreadsheet 的格式(.csv)。具体如何安装及使用 nmon 可参考文章 nmon 性能:分析 AIX 和 Linux 性能的免费工具

下图是一个 nmon10 在 AIX 5 上输出的例子(CPU 详细信息)


图 6. nmon
nmon
  • MEMORY DUMP DIAGNOSTIC FOR JAVA

Memory Dump Diagnostic For JAVA 这个工具是用来分析运行在 WebSphere Application Server 的 JVM 的内存 dump 和堆 dump 的。这个内存 dump 的分析器可以追踪到 java 堆的引起内存泄露的根。这个工具非常擅长获得分析产品环境应用服务器遇到 OutOfMemoryErrors 的大内存 dumps。软件需要运行在 IBM SDK JVM 里。

用工具打开堆 dumps,通过树形视图框架查找问题。


图 7. Memory Dump Diagnostic For JAVA
Memory Dump Diagnostic For JAVA

内存堆的树状视图中的显示所有的对象在 Java 内存堆树上建造了一个深度优先搜索的对象引用图。所有的对象都是根据总延伸大小排序的。在树状视图的每个对象显示了总延伸大小,单个对象的大小,对象的引用数量,这个对象的类名称和地址。每一个泄漏的根节点到泄漏的单元的拥有的链被现实为橙色。你可以右键点击这个视图树的每一个元素 , 显示出一些有用的下拉菜单 , 如在某一个特定对象中寻找最大底部 , 或者寻找一个这个对象下的对象等。

  • IBM Thread and Monitor Dump Analyzer for Java Technology

需要使用的 Java 2 平台标准版版本 1.4.1 或更高 Java 运行环境( JRE 环境)运行 IBM 线程和监视器转储分析器 Java 技术。使用 <Java path>java –Xmx[heapsize] –jar jca<Thread and Monitor Dump Analyzer for Java Technology version>.jar [javacore files separated by path delimiter] [analysis output HTML file]

例如:

D:\install\jca11>java -jar jca11.jar

启动 IBM Thread and Monitor Dump Analyzer for Java Technology,并装载 Javacore 文件。

以下线程信息显示了 javacore 的对比信息。


图 8. IBM Thread and Monitor Dump Analyzer for Java Technology-Thread Detail
IBM Thread and Monitor Dump Analyzer for Java Technology

也可以选择多个 javacore 来对比线程。例如下图,有 47 个线程在等待被 Servlet Engine Transports : 3049 死锁的 monitor


图 9. IBM Thread and Monitor Dump Analyzer for Java Technology-Monitor Detail
Monitor Detail




回页首



前一页第 5 页,共 10 页后一页
    关于 IBM 隐私条约 联系 IBM 使用条款