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

developerWorks 中国  >  Information Management | Rational | WebSphere  >

使用 Rational Performance Tester 实现 DB2 性能测试和监控

最佳实践和经验法则

developerWorks
文档选项

未显示需要 JavaScript 的文档选项

讨论

样例代码

英文原文

英文原文


级别: 中级

Mike Liu (mikezliu@ca.ibm.com), 软件工程师, IBM
Tony Lau (tktlau@ca.ibm.com), 软件工程师, IBM, Software Group

2008 年 6 月 25 日

观察如何在 IBM® DB2® for Linux®、UNIX® 和 Windows® 基准测试环境中使用 Rational® Performance Tester 作为性能测试工具。了解要使用的最佳实践和一般经验法则。Trade6 基准应用程序被用作示例工作负载。

简介

IBM 为社区提供了 DB2 免费版本 DB2 Express-C,它提供了与 DB2 Express Edition 相同的核心数据特性,为构建和部署应用程序奠定了坚实的基础。

DB2 Express-C

性能工程是确定并报告软件解决方案当前性能的一门学科。它涉及模仿大量并发用户、收集诊断数据、绘图、进行性能分析和设计 System Under Test (SUT) 的技术改进。在达到性能目标之前,此过程将一直重复。在典型的 DB2 WebSphere® 拓扑中,SUT 中有十台以上的机器(否则会有上百台)是很常见的。因此,测试循环通常十分单调乏味并且容易出错。

Rational Performance Tester 是 IBM 旨在简化性能工程的性能测试和监控策略的基础。本文将介绍使用 IBM 测试解决方案在 WebSphere 集群环境中测试 DB2 的最佳实践。





回页首


目标

本文的主要目标是:

  • 描述在没有类似 Rational Performance Tester 的性能测试解决方案的情况下,性能测试和监控中的主要难点
  • 描述作为 IBM 测试解决方案的 Rational Performance Tester 和 Tivoli Performance Monitoring 基础设施
  • 了解在 DB2 WebSphere 环境中使用 Rational Performance Tester 的一些性能测试实践和经验法则




回页首


先决条件

以下是在测试环境中使用的机器、它们的作用、使用的硬件和安装的软件的清单。


表 1. 测试环境
机器硬件软件
数据库 4x1.45 GHz
Power4
16 GB RAM
  • IBM DB2 Enterprise Server Edition V9.1 Fix Pack 2 s070210 for AIX 64-bit
  • IBM Tivoli® Monitoring Server V6.1.0 Fix Pack 2 UNIX Platforms (C93SJIE.tar) + DB2 6.1.0-TIV-ITM_DB2-LA0053 Agent Support Install (6.1.0-TIV-ITM_DB2-LA0053.tar)
  • IBM Tivoli Monitoring for UNIX V6.1.0 Fix Pack 2 (C93SJIE.tar)
  • IBM Tivoli Monitoring for Databases V6.1.0 UNIX Platforms (C9393IE) + DB2 6.1.0-TIV-ITM_DB2-LA0053 Agent Support Install (6.1.0-TIV-ITM_DB2-LA0053.tar)
RPT Agent
Controller (x2)
8x2 GHz
Intel XEON
4 GB RAM
  • IBM Rational Performance Tester Agent V7.0 (C95JAML.tar, C967UML.tar)
  • IBM Tivoli Monitoring for Linux V6.1.0 Fix Pack 2 (C93SRIE.tar)
HTTP Server /
WebSphere
Deployment
Manager
2x2 GHz
AMD Opteron
4GB RAM
  • IBM WebSphere HTTP Server V6.1 (C88STML.tar)
  • IBM Edge Components V6.1 for Linux on x86-64, 64-bit support (C88XKML.tar)
  • IBM WebSphere Deployment Manager V6.1 (C88STML.tar)
WebSphere
Application
Server (x7)
2x2 GHz
AMD Opteron
2 GB RAM
  • IBM WebSphere Application Server Network Deployment V6.1 (C88STML.tar)
RPT
Workbench
4x2.8 GHz
Intel XEON
4 GB RAM
  • IBM Rational Performance Tester V7.0 (C95J7ML.tar, C95J8ML.tar, C95J9ML.tar)




回页首


未使用 RPT 的性能工程

性能工程是确定并报告软件解决方案的当前性能的一门学科。它涉及设置 System Under Test (SUT)、模仿大量并发用户、管理 SUT、收集诊断数据、分析收集的数据和设计 SUT 的性能改进。在达到性能目标之前,此过程将一直重复。

  1. 设置测试环境。测试环境必须能够模拟生产环境。随后收集的度量单位要尽可能地与开发出来的模型一样精确。该度量单位可能像单节点 WebSphere Community Edition with DB2 Express-C 一样简单,或者可能是 WebSphere Application Server Extended Deployment Edition on DB2 9 的 16 节点集群。
  2. 模拟用户负载。实际的用户负载要处理消费者行为分析和有效的线程实现。好的工作负载模拟器需要实现随机功能。而针对企业性能测试的出色工作负载模拟器则需要处理上千个线程和/或进程,并且必须具备良好的可伸缩性。
  3. 管理 System Under Test。在进行每次尝试时,SUT 都必须处于相同状态,以便产生可重复的结果。为实现这一目的,您应该重复利用 WebSphere 和 DB2 的集群、清除不同目录中的日志文件并存储 DB2 表空间。为了产生可重复的结果而始终如一地执行所有这些操作是一个好的实践。
  4. 收集每台机器上的诊断数据。至少应该具有 vmstat、iostat 和定期的 DB2 快照。必须在适当的时间使用适当的命令启动诊断工具。为了实现进一步的分析,必须系统地整理输出。为此,人们常常编写一些自定义脚本。
  5. 处理数字和绘图。这包括大量的复制粘贴处理和电子表格处理。复杂度适中的系统在绘图和分析方面涉及的诊断数据将超过 100 份。专有的图形解决方案常常集成到自定义脚本中,以便将数据后处理(post-process)为人类可使用的形式。
  6. 重复 N 次!执行性能测试的目的是发现性能瓶颈并进行性能改进。经过多少次尝试才能通过用户验收测试呢?根据我们的经验,一个版本可能要经过 100 次以上的尝试。

Rational Performance Tester 是 IBM 旨在简化性能工程的性能测试和监控的策略。在下面的小节中,将查看 RPT 如何通过模拟用户负载获得要绘制的结果图形,从而简化性能测试周期。





回页首


拓扑

首先设计测试环境的拓扑结构非常重要。典型的由 RPT 驱动的集群式 Trade6 测试环境由数据库、 HTTP 服务器、WebSphere 部署管理器、WebSphere 应用服务器、驱动程序和 RPT 工作台组成。我们的测试环境的拓扑如下所示:


图 1. 测试环境拓扑
测试环境拓扑
最佳实践:分隔 RPT 工作台和驱动程序机器

RPT 工作台应该安装在不同于工作负载驱动程序机器的单独机器上,以减少驱动程序方面的开销

最佳实践:分隔驱动程序机器和 Trade 集群

驱动程序的开销很高,应该与 Trade 集群分隔开来。如果驱动程序位于运行 Trade 服务器的机器上,那么集群的资源会出现负载失衡,如果使用的是简单的循环负载平衡方案,那么这可能导致性能问题。

经验法则:CPU / 网络宽带比

有许多因素影响着测试环境中每个组件对另一个组件的伸缩。例如,如果工作负载非常依赖于数据库,那么您可以期望获得高比率的数据库与 WebSphere CPU 比。对于我们的测试环境,我们发现以下比率在机器之间的平衡资源利用方面非常合适:

  1. 总 Driver CPU : 总 DB2 CPU
    4 : 1
  2. 总 HTTP Server CPU : 总 DB2 CPU
    1 : 10
  3. 总 WAS CPU : 总 DB2 CPU
    2 : 1 (对于 EJB 应用程序是 4 : 1)
  4. Network for Drivers : 总 DB2 CPU
    当数据库机器上有 4 个以下的 CPU 时,建议使用 100 Mb 的网络,对于超过 4 个 CPU 的机器,建议使用 1GB 的网络





回页首


设置 Trade6 环境

要在 DB2 和 WebSphere 平台上设置 Trade6 基准,并创建和填充数据库,请参考 “使用 DB2 UDB 设置并运行 Trade6 基准” 一文(请参阅 参考资料)。

在下面几个小节中,将介绍如何使用 Rational Performance Tester 作为工作负载驱动程序,并了解一些用户可用的监控工具。





回页首


使用 RPT 作为工作负载驱动程序

使用 IBM Rational Performance Tester 作为工作负载驱动程序可以简化并自动化运行性能测试的过程。RPT 为用户提供了用来创建并运行不同类型的性能测试的框架,并提供了简化收集过程和分析性能度量过程的内置工具。

例如,RPT 中的 HTTP 协议允许用户记录、编辑和执行测量度量的 HTTP 性能测试,这些度量指标包括页面命中(page hit)、页面吞吐量和页面响应时间。

RPT 还为诸如 IBM Tivoli Monitoring、Windows Performance Monitor 和 rstatd 之类的资源监控工具提供支持,可以使用这些工具监控测试环境中所有机器上的资源。IBM Tivoli Monitoring 提供了用来进一步具体监控应用程序和数据库的可选组件。例如,Tivoli Monitoring for Databases 允许用户监控 DB2 数据库内部的多种度量指标,比如数据库快照、表空间和缓冲池。

RPT 工作台

该工作台可以充当用户配置、启动和监控性能测试的界面。在运行性能测试时,此工作台将部署 RPT 执行代码来确定目标部署机器,并使用 RPT 代理控制器执行它们。

安装 RPT 工作台

  1. 下载 RPT 7 安装包并运行 launchpad.exe 启动安装向导。


    图 2. 安装 IBM Rational Performance Tester
    安装 IBM Rational Performance Tester

  2. 选择安装 IBM Rational Performance Tester(包括 Agent)
  3. 如果尚未安装 IBM Installation Manager,那么请按照向导中的指令安装它
  4. 在 IBM Installation Manager 打开时,请选择安装 IBM Rational Performance Tester 7.0.0
  5. 同意许可协议并为共享目录和 RPT 选择安装路径
  6. 选择典型安装并按照指令完成安装

如果想和许多用户一起运行测试,那么必须获得 RPT 的许可密钥。可以使用包含许可密钥的许可服务器或使用许可文件获得许可密钥。要指向 Rational 许可服务器或导入许可文件,则应该运行 IBM Rational License Key Administrator(在 All Programs -> Rational Software 中可找到)。工作台使用的所有代理控制器都可以自动使用工作台使用的许可密钥。

最佳实践:增加工作台堆大小

对于依赖于从代理控制器和其他监控工具传输回工作台的大量数据的比较大的测试而言,默认工作台堆大小可能不够大。如果工作台内存不足,可以通过编辑位于 RPT 主目录中的 eclipse.ini 来增加默认工作台堆大小,并更改以下代码行:

-Xms40m


这指定了堆的大小。建议将最大工作台堆大小设置为 1.5 GB:

-Xmx1500m

最佳实践:日志级别

建议将 RPT 调度执行组件的日志级别设置为 “WARNING”,以减少系统开销。
要做到这一点,请转向 Window -> Preferences -> Logging。打开 Loggers 选项卡并将以下组件的日志级别更改为 “WARNING”:

com.ibm.rational.test.common.schedule.execution
com.ibm.rational.test.lt.execution

RPT 代理控制器

RPT 代理控制器必须安装在每台驱动程序机器上,以便为工作台提供控制它们的方法。这允许 RPT 工作台在这些机器上部署代码并执行性能测试。

安装 RPT 代理控制器

  1. 将代理控制器安装包下载到驱动程序机器上
  2. 运行安装向导(在 Linux 系统上,应该运行 install_linux.bin;在 Windows 系统上,应该运行 launchpad.exe,然后选择安装 Agent)
  3. 同意许可协议并选择安装路径
  4. 选择使用默认 JVM 并完成安装

要在 Unix/Linux 上启动代理控制器,请执行 RAStart.sh:

$ /opt/IBM/SDP70Shared/AgentController/bin/RAStart.sh
  Starting Agent Controller
  RAServer started successfully

最佳实践:对代理控制器使用正确的 JVM

确保代理控制器使用的是随 RPT 一起打包的 JVM(RPT70/jdk/jre/bin/java)。要检查代理控制器正在使用的是哪个 JVM,请打开 <Agent Controller Home Dir>/config/serviceconfig.xml 并选择 JAVA_PATH 的值。作为好的实践,工作台使用的 Java 版本与代理控制器使用的 Java 版本应该是匹配的。

最佳实践:增加 tcpip 端口/打开文件的最大数量

在包含代理控制器的每台机器上,可能都需要应用以下调优:

  1. 在 Window 机器上,应该提高 tcpip 端口的数量限制:
    打开 regedit(Start -> Run -> regedit) 使用以下密钥将 MaxUserPort 的值编辑为 65534:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters

  2. 在 Unix/Linux 系统上,应该使用 ulimit(作为根用户)增加所允许的打开文件的最大数量:

    $ ulimit -n 10050000

在应用调优之后,应该重启代理控制器,如下列清单所示:

$ /opt/IBM/SDP70Shared/AgentController/bin/RAStop.sh
  RAServer stopped, pid = 27275
$ /opt/IBM/SDP70Shared/AgentController/bin/RAStart.sh
  Starting Agent Controller
  RAServer started successfully





回页首


使用 RPT 运行性能测试

部署 Trade6 性能测试项目

这里提供了一个示例 RPT 性能测试项目(请参阅 下载)。使用性能项目中提供的脚本,可以通过模拟的工作负载驱动 Trade6 环境,该模拟负载重复地命中 Trade6 网站的 /trade/scenario servlet。

要部署这些脚本,请打开 RPT 并选择将现有项目导入工作区。浏览解压缩 TradeProject 的位置,选中它,然后选择 Copy projects into workspace。此外,还可以单击 Select archive file 直接指向压缩文件。图 3 显示了这些步骤:


图 3. 将项目导入 RPT 工作区
将项目导入 RPT 工作区

单击 Finish,让 RPT 将此项目复制到工作区中。现在,工作区中应该有一个包含两个 Trade6 测试脚本的性能测试项目:


图 4. RPT 工作区视图
RPT 工作区视图

必须对这些脚本进行以下更改,以便将它们用于您的环境:

  1. 打开 TradeScheduleTest 并展开测试,直到看见 HTTP 请求元素。更改主机和端口,使其指向您的 Trade6 web 主机。


    图 5. 浏览 TradeScheduleTest
    浏览 TradeScheduleTest

  2. 打开 TradeSchedule 并展开 User Group 1。对于要部署此性能测试的每台驱动程序机器,可以单击 Add new 并添加该机器。


    图 6. 添加部署机器
    添加部署机器

最佳实践:在性能运行期间停止问题确定

通过性能调度中的 Problem Determination 选项卡启用问题确定,这允许代理控制器为调试过程生成日志。对于实际的性能运行,应该将问题确定日志级别调整为 “None”,以减少代理控制器机器上的系统开销,或者调整为 “Severe” 并从每个用户组抽取一名用户作为样本。

最佳实践:增加代理控制器上的 JVM 堆大小

对于大型性能测试,可能需要为代理控制器增加 JVM 堆。例如,如果将堆大小增加为 1500 MB,请双击代理控制器机器(在 Test Navigator 中),打开 General Properties 选项卡,然后添加命名为 RPT_VMARGS 的值为 –Xmx1500m 的新属性。对于 Windows,建议将最大堆大小设置为 1.5 GB,对于 Linux,建议将该值设置为 3 GB。


图 7. 将新属性添加到某个位置
将新属性添加到某个位置

运行 Trade6 性能测试

要启动性能测试,请右键单击 TradeSchedule test -> Run As -> Performance test schedule。此外,可以在选中性能测试的同时按下 Alt+Shift+X, C 组合键。

然后工作台会将性能测试以及所需的 RPT 库部署到每台驱动程序机器并执行它们。在执行测试时,可以查看性能报告的不同页面,从而可以动态监控测试。

图 8 显示了吞吐量页面,该页面显示了与页面命中率和用户负载有关的信息:


图 8. 性能报告的吞吐量页面
性能报告的吞吐量页面

Response vs. Time 页面显示了每个请求的平均响应时间。图 9 显示了此响应时间页面:


图 9. 性能报告的响应时间页面
性能报告的响应时间页面




回页首


RPT 中的监控工具

Rational Performance Tester 7 为三个监控工具提供了集成式支持:

  • rstatd
  • IBM Tivoli Monitoring
  • Windows Performance Monitor

建议为性能测试环境中的每台机器至少安装一种类型的监控工具。这样做可以监控所有资源并杜绝任何资源瓶颈。

要启动监控,请转向性能调度的 Resource Monitoring 选项卡,如图 10 所示:


图 10. 启动资源监控
启动资源监控

单击 Add New 添加要监控的新机器。然后系统会提示您确定要进行监视的主机和要使用的监控工具。

最佳实践:同步系统时钟

多数监控工具都基于监视器下的系统使用时间戳来收集统计数据。因此,您首先应该同步正被监控的所有系统中的系统时钟。

在 Linux 和 AIX 系统上,可以键入以下内容(作为根用户)来实现这一点:

$ ntpdate -u speedo1
  12 Apr 13:52:06 ntpdate[21596]: step time server 9.26.54.6 offset 8.096963 sec

其中 speedo1 是充当时钟同步服务器的机器。

Windows Performance Monitor

默认情况下,所有 Windows 机器上都安装了 Windows Performance Monitor,可以使用它来监控各种系统资源。

rstatd

rstatd 工具用于从 Linux 和 Unix 操作系统中收集一些基本监控数据。这些数据包括:

  • 运行队列中的作业的平均数量
  • IOWait/Idle/System/User CPU Time
  • 所有界面上可以看见的所有冲突
  • 所有上下文切换
  • 总磁盘传输
  • 所有界面上的所有入站/出站错误
  • 所有界面上的所有入站/出站包
  • 所有中断
  • 已页入/页出的总 VM 页面
  • 已转入/转出的总 VM 页面

安装 rstatd

大多数 Unix 系统上都预先安装了 rstatd。要启动 rstatd 守护程序,请键入:

$ rpc.rstatd

对于 Linux 操作系统,可以在以下位置找到 rstatd 的开源版本:http://rstatd.sourceforge.net/。 要安装 rstatd,请键入以下内容:

$ tar xvf rpc.rstatd-4.0.1.tar
$ cd rpc.rstatd-4.0.1/
$ ./configure
$ make
$ make install

之后,请键入下列内容启动它:

$ rpc.rstatd

要使用 rstatd 监控 RPT 中的资源,请打开性能测试的 Resource Monitoring 选项卡,选择使用 UNIX rstatd 监视器,然后选择要收集的计数器。图 11 显示了这些步骤:


图 11. 启动 rstatd 性能监控计数器
启动 rstatd 性能监控计数器

要查看运作中的监控情况,请在运行测试的时候打开性能报告的 Resources 选项卡。您可以看到如下所示的图表,上面绘制了数据库机器上的 Idle、System、IOWait 和 User CPU 时间:


图 12. 使用 rstatd 实现 RPT 资源监控
使用 rstatd 实现 RPT 资源监控

IBM Tivoli Performance Monitoring

IBM Tivoli Monitoring 为监视器提供了更丰富的度量指标集,可以使用它们从测试环境中收集 rstatd 没有收集的额外的性能度量指标。可以安装不同类型的 ITM 监控代理,比如 Tivoli OS Monitoring、Tivoli Monitoring for Databases 或 Tivoli Monitoring for Applications,提供进一步的深层资源监控。

安装 IBM Tivoli Performance Monitoring

在安装 Tivoli Monitoring 之前,应该选择一台机器充当监控服务器。对于我们的测试环境,我们选择使用数据库机器。

要在 Unix/Linux 上安装监控服务器,请执行以下步骤:

  1. 将安装包复制到机器上并运行 install.sh script
  2. 为监控服务器选择一个安装目录
  3. 选择将产品安装到本地主机并接受许可协议
  4. 选择您的 OS 并选择安装 Tivoli Enterprise Monitoring Server (TEMS)
  5. 选择一个 TEMS 名称并完成安装

要启动监控服务器,请使用 cd 命令转向监控服务器主目录的 bin 目录,并执行 itmcmd (使用您的 TEMS 名称替换 MORTAL_HUB):

$ /home/adm22237/ITM/bin/itmcmd server start MORTAL_HUB
  Starting TEMS...
  TEMS started...

接下来应该将每台机器上的监控代理安装到监视器上。Tivoli OS 监控代理以及包含 Tivoli 监控服务器安装的大多数安装包都已包括在内。其他监控代理,比如 Tivoli Monitoring for Databases 或 Tivoli Monitoring for Applications,可能需要单独下载。

要在 Unix/Linux 上安装监控代理,请执行以下步骤:

  1. 将代理安装包复制到机器上并运行 install.sh script
  2. 为监控代理选择安装目录
  3. 选择将产品安装到本地主机并接受许可协议
  4. 选择您的 OS 并选择安装监控代理
  5. 按照指令完成安装。

在启动代理之前,首先必须配置它,将它连接到监控服务器。要实现这一点,请使用 itmcmd 命令:


清单 1. 连接到监控服务器
$ /home/adm22237/ITM/bin/itmcmd config -A ux
  Agent configuration started...
        
  Will this agent connect to a TEMS? [YES or NO] (Default is: YES):
  TEMS Host Name (Default is: mortal): mortal
        
  Network Protocol [ip, sna, ip.pipe or ip.spipe] (Default is: ip.pipe):
        
  Now choose the next protocol from one of these:
  - ip
  - sna
  - ip.spipe
  - none
  Network Protocol 2 (Default is: none):
  IP.PIPE Port Number (Default is: 1918):
  Enter name of KDC_PARTITION (Default is: null):
        
  Configure connection for a secondary TEMS? [YES or NO] (Default is: NO):
  Enter Optional Primary Network Name or "none" (Default is: none):
  Are you installing this product into a clustered environment(Default is: NO):
  Agent configuration completed...

应该使用您的代理 ID 替换其中的 ux。此 ID 基于代理类型和 OS,并且是惟一的。要查找代理 ID,可以使用 cinfo 命令:


清单 2. 查找代理 ID
$ /home/adm22237/ITM/bin/cinfo –I
        
  *********** Thu Apr 12 10:25:41 EDT 2007 ******************
  User      : mikezliu     Group: build pdxdb2
  Host name : mortal       Installer Lvl: 610 / 100
  CandleHome: /home/adm22237/ITM
  ***********************************************************
  ...Product inventory
        
  a4      Monitoring Agent for i5/OS
  tms     Version: 06.10.02.00
        
  ax      IBM Tivoli Monitoring Shared Libraries
  aix513  Version: 06.10.02.00
  aix516  Version: 06.10.02.00
        
  jr      Tivoli Enterprise-supplied JRE
  aix513  Version: 400 Rel: 100
  aix516  Version: 400 Rel: 100
        
  lz      Monitoring Agent for Linux OS
  tms     Version: 06.10.00.00
        
  ms      Tivoli Enterprise Monitoring Server
  aix513  Version: 06.10.02.00
        
  nt      Monitoring Agent for Windows OS
  tms     Version: 06.10.02.00
        
  sh      Tivoli Enterprise Monitoring SOAP Server
  aix513  Version: 06.10.02.00
        
  sy      Summarization and Pruning Agent
  tms     Version: 06.10.02.00
        
  tm      Monitoring Agent for IBM Tivoli Monitoring 5.x Endpoint
  tms     Version: 06.10.02.00
        
  ud      Monitoring Agent for DB2
  aix516  Version: 06.10.00.00
  tms     Version: 06.10.00.00
        
  ui      Tivoli Enterprise Services User Interface
  aix513  Version: 06.10.02.00
  aix516  Version: 06.10.02.00
        
  ul      Monitoring Agent for UNIX Logs
  tms     Version: 06.10.02.00
        
  um      Universal Agent
  tms     Version: 06.10.02.00
        
  ux      Monitoring Agent for UNIX OS
  aix516  Version: 06.10.02.00
  tms     Version: 06.10.02.00

按照指令,在提示的时候输入 Tivoli 监控服务器的主机名。

根据安装的监控代理的类型,可能需要将该代理的支持安装到监控服务器上。对于我们的集群,我们为 Unix/Linux 上的 DB2 的监控代理添加了支持,该支持将添加到监控服务器中,如下所示:

  1. 停止监控服务器:
    $ /home/adm22237/ITM/bin/itmcmd server stop MORTAL_HUB
      Stopping TEMS...
      TEMS stopped...

  2. 将代理安装包(包含用来将代理支持添加到监控服务器上的安装文件)复制到监控服务器机器上并运行 install.sh script
  3. 选择监控服务器的安装目录
  4. 选择将产品安装到本地主机并接受许可协议
  5. 选择您的 OS 并选择安装 Tivoli Enterprise Monitoring Server Support for Databases
  6. 按照指令完成安装
  7. 启动监控服务器:
    $ /home/adm22237/ITM/bin/itmcmd server start MORTAL_HUB
      Starting TEMS...
      TEMS started...

  8. 通过键入以下内容将监控代理支持添加到服务器:
    $ /home/adm22237/ITM/bin/itmcmd support -t MORTAL_HUB ud
      Copying cat and attr data...
      Product support installation started...
      Product support installation completed...

    其中的 ud 应该使用您的代理 ID 替换(可以使用 cinfo 命令查找 ID)。


还应该将以下补丁应用于 Tivoli Monitoring Server 和 Tivoli Monitoring Agent,以增加对 DB2 V9 的支持:

DB2 6.1.0-TIV-ITM_DB2-LA0053 Agent Support Install (6.1.0-TIV-ITM_DB2-LA0053.tar)

要启动代理,请使用 itmcmd 命令。根据想要启动的代理类型,可能需要传入额外的选项。例如,要启动 Tivoli OS 监控代理,可以键入以下内容:

$ /home/adm22237/ITM/bin/itmcmd agent start ux
  Starting agent...
  Agent Started...

要启动用于 DB2 的 Tivoli 监控代理,则应该按照以下这些步骤操作:

  1. 以实例用户(例如 mikezliu)的身份登录
  2. 连接到数据库并启动监控代理:

    $ db2 connect to trade6db
                  
      Database Connection Information
                  
      Database server        = DB2/AIX64 9.1.2
      SQL authorization ID   = MIKEZLIU
      Local database alias   = TRADE6DB
                  
    $ /home/adm22237/ITM/bin/itmcmd agent -o mikezliu start ud
      Starting agent...
      Agent Started...

要使用 Tivoli 监控 RPT 中的资源,请打开性能测试的 Resource Monitoring 选项卡,选择使用 IBM Tivoli Monitoring,然后指定监控服务器的主机名:


图 13. 启动 Tivoli 资源监控
启动 Tivoli 资源监控

这之后,可以使用 Resource 选项卡选择要收集的计数器。


图 14. 使用 Resource 选项卡选择要监控的计数器
使用 Resource 选项卡选择要监控的计数器

在运行测试的同时打开性能报告的 Resource 选项卡,这样可以查看运作中的监控情况。图 15 举例说明了这些步骤:


图 15. 使用 Tivoli Monitoring for Databases 实现 RPT 中的资源监控
使用 Tivoli Monitoring for Databases 实现 RPT 中的资源监控

通过右键单击该图,可以用不同的方式对其进行自定义,比如添加和移除计数器。例如,如果只想查看缓冲池命中率,那么可以右键单击该图 -> Add/Remove Performance Counters -> Resource Monitoring Counter 并只选择池命中率计数器。然后此图将更新为只绘制该计数器:


图 16. 使用 Tivoli Monitoring for Databases 实现 RPT 中的资源监控
使用 Tivoli Monitoring for Databases 实现 RPT 中的资源监控



回页首


最佳实践汇总

规划测试环境拓扑

RPT 工作台和驱动程序机器:RPT 工作台应该安装在不同于工作负载驱动程序的单独机器上

驱动程序机器:驱动程序的系统开销很高,应该独立于测试下的系统。

RPT 工作台

工作台堆大小:对于较大的测试,应该增加默认工作台堆大小

日志级别:对于实际性能运行,不应该将 RPT 调度执行组件的日志级别设置为 “WARNING” 以上

代理控制器

代理控制器的 JVM:代理控制器应该使用与 RPT 打包在一起的 JVM

Linux/UNIX 上的打开文件的最大数量:增加允许打开文件的最大数量

Windows 上的 tcpip 端口的最大数量:增加允许的 tcpip 端口的最大数量

运行 RPT 性能测试

问题确定:在性能运行期间,应该将问题确定日志级别调整为 “None”,或者调整为 “Severe” 并从每个用户组中抽取一名用户作为样本。

代理控制器上的 JVM 堆栈的堆大小:对于大型测试,需要增加代理控制器上启动的 JVM 堆栈的堆大小

资源监控

系统时钟:测试环境下的系统中的所有机器都应该有彼此同步的系统时间,以便资源监控使用正确时间戳





回页首


结束语

本文描述了如何使用 IBM Rational Performance Tester 作为 DB2 环境中的性能测试和监控工具。RPT 提供了帮助用户执行性能测试的多种工具,从对监控工具的内置支持,到允许用户编写和执行他们自己的工作负载驱动程序脚本。使用 RPT 作为端到端性能测试工具可以极大提高生产率,简化性能测试过程以及从 DB2 测试环境中收集性能度量的过程。





回页首


致谢

作者特别感谢 Kent Siefkes 和 Kevin Mooney,感谢他们在使用 Rational Performance Tester 作为工作负载驱动程序方面的帮助和建议,以及在最佳实践方面的一些建议。作者还要感谢 Joseph P Toomey、Kevin Mooney、Judy Liu 和 Adam Muise,感谢他们对本文提出的宝贵反馈意见。






回页首


下载

描述名字大小下载方法
示例 RPT 性能测试项目TradeProject.zip7KBHTTP
关于下载方法的信息


参考资料

学习

获得产品和技术
  • 下载 IBM 产品评估版,并开始使用来自 DB2®、Lotus®、Rational®、Tivoli® 和 WebSphere® 的应用程序开发工具和中间件产品。

讨论


作者简介

Mike Liu

Mike Liu 是 IBM 多伦多实验室从事 DB2 性能基准和高级解决方案开发的一名软件工程师。目前他正参与性能基准测试和 Rational Performance Tester 的新协议的原型制作。


Tony Lau

Tony Lau 在 DB2 性能测试和监控方面有五年多的经验。他是 DB2 WebSphere 基准和高级解决方案开发方面的软件工程师。他曾是打破三项世界记录的 SPECjAppServer2004 基准团队的 DB2 技术领导者。目前他正在从事下一代 Rational Performance Tester 的新特性的设计和原型制作。在加入 IBM 多伦多实验室之前,他曾是位于滑铁卢大学的贝尔实验室的一名研究助理。




对本文的评价










回页首


这是第一个商标归属声明。 这是第二个商标归属声明。 其他公司、产品或服务的名称可能是其他公司的商标或服务标志。

IBM 公司保留在 developerWorks 网站上发表的内容的著作权。未经IBM公司或原始作者的书面明确许可,请勿转载。如果您希望转载,请通过 提交转载请求表单 联系我们的编辑团队。
    关于 IBM 隐私条约 联系 IBM 使用条款