WEB开发网
开发学院数据库DB2 使用 Rational Performance Tester 实现 DB2 性能... 阅读

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

 2008-09-16 16:29:37 来源:WEB开发网   
核心提示: 简介性能工程是确定并报告软件解决方案当前性能的一门学科,它涉及模仿大量并发用户、收集诊断数据、绘图、进行性能分析和设计 System Under Test (SUT) 的技术改进,使用 Rational Performance Tester 实现 DB2 性能测试和监控,在达到性能目标之前,此过程将一直重复,

简介

性能工程是确定并报告软件解决方案当前性能的一门学科。它涉及模仿大量并发用户、收集诊断数据、绘图、进行性能分析和设计 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 的性能改进。在达到性能目标之前,此过程将一直重复。

设置测试环境。测试环境必须能够模拟生产环境。随后收集的度量单位要尽可能地与开发出来的模型一样精确。该度量单位可能像单节点 WebSphere Community Edition with DB2 Express-C 一样简单,或者可能是 WebSphere Application Server Extended Deployment Edition on DB2 9 的 16 节点集群。

模拟用户负载。实际的用户负载要处理消费者行为分析和有效的线程实现。好的工作负载模拟器需要实现随机功能。而针对企业性能测试的出色工作负载模拟器则需要处理上千个线程和/或进程,并且必须具备良好的可伸缩性。

管理 System Under Test。在进行每次尝试时,SUT 都必须处于相同状态,以便产生可重复的结果。为实现这一目的,您应该重复利用 WebSphere 和 DB2 的集群、清除不同目录中的日志文件并存储 DB2 表空间。为了产生可重复的结果而始终如一地执行所有这些操作是一个好的实践。

收集每台机器上的诊断数据。至少应该具有 vmstat、iostat 和定期的 DB2 快照。必须在适当的时间使用适当的命令启动诊断工具。为了实现进一步的分析,必须系统地整理输出。为此,人们常常编写一些自定义脚本。

处理数字和绘图。这包括大量的复制粘贴处理和电子表格处理。复杂度适中的系统在绘图和分析方面涉及的诊断数据将超过 100 份。专有的图形解决方案常常集成到自定义脚本中,以便将数据后处理(post-process)为人类可使用的形式。

重复 N 次!执行性能测试的目的是发现性能瓶颈并进行性能改进。经过多少次尝试才能通过用户验收测试呢?根据我们的经验,一个版本可能要经过 100 次以上的尝试。

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

拓扑

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

图 1. 测试环境拓扑

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

最佳实践:分隔 RPT 工作台和驱动程序机器

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

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

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

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

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

总 Driver CPU : 总 DB2 CPU

4 : 1

总 HTTP Server CPU : 总 DB2 CPU

1 : 10

总 WAS CPU : 总 DB2 CPU

2 : 1 (对于 EJB 应用程序是 4 : 1)

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 工作台

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

图 2. 安装 IBM Rational Performance Tester

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

选择安装 IBM Rational Performance Tester(包括 Agent)

如果尚未安装 IBM Installation Manager,那么请按照向导中的指令安装它

在 IBM Installation Manager 打开时,请选择安装 IBM Rational Performance Tester 7.0.0

同意许可协议并为共享目录和 RPT 选择安装路径

选择典型安装并按照指令完成安装

如果想和许多用户一起运行测试,那么必须获得 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 代理控制器

将代理控制器安装包下载到驱动程序机器上

运行安装向导(在 Linux 系统上,应该运行 install_linux.bin;在 Windows 系统上,应该运行 launchpad.exe,然后选择安装 Agent)

同意许可协议并选择安装路径

选择使用默认 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 端口/打开文件的最大数量

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

在 Window 机器上,应该提高 tcpip 端口的数量限制:

打开 regedit(Start -> Run -> regedit) 使用以下密钥将 MaxUserPort 的值编辑为 65534:

HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParameters

在 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 工作区

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

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

图 4. RPT 工作区视图

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

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

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

图 5. 浏览 TradeScheduleTest

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

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

图 6. 添加部署机器

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

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

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

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

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

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

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

运行 Trade6 性能测试

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

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

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

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

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

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

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

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

RPT 中的监控工具

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

rstatd

IBM Tivoli Monitoring

Windows Performance Monitor

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

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

图 10. 启动资源监控

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

单击 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 性能监控计数器

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

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

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

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

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 上安装监控服务器,请执行以下步骤:

将安装包复制到机器上并运行 install.sh script

为监控服务器选择一个安装目录

选择将产品安装到本地主机并接受许可协议

选择您的 OS 并选择安装 Tivoli Enterprise Monitoring Server (TEMS)

选择一个 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 上安装监控代理,请执行以下步骤:

将代理安装包复制到机器上并运行 install.sh script

为监控代理选择安装目录

选择将产品安装到本地主机并接受许可协议

选择您的 OS 并选择安装监控代理

按照指令完成安装。

在启动代理之前,首先必须配置它,将它连接到监控服务器。要实现这一点,请使用 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 的监控代理添加了支持,该支持将添加到监控服务器中,如下所示:

停止监控服务器:

$ /home/adm22237/ITM/bin/itmcmd server stop MORTAL_HUB
 Stopping TEMS...
 TEMS stopped...

将代理安装包(包含用来将代理支持添加到监控服务器上的安装文件)复制到监控服务器机器上并运行 install.sh script

选择监控服务器的安装目录

选择将产品安装到本地主机并接受许可协议

选择您的 OS 并选择安装 Tivoli Enterprise Monitoring Server Support for Databases

按照指令完成安装

启动监控服务器:

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

通过键入以下内容将监控代理支持添加到服务器:

$ /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 监控代理,则应该按照以下这些步骤操作:

以实例用户(例如 mikezliu)的身份登录

连接到数据库并启动监控代理:

$ 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 资源监控

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

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

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

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

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

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

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

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

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

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

最佳实践汇总

规划测试环境拓扑

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 测试环境中收集性能度量的过程。

Tags:使用 Rational Performance

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接