使用 Rational Performance Tester 实现 DB2 性能测试和监控
http://tech.ddvip.com/2008-09/122155971965952.html
http://www.ibm.com/developerworks/cn/data/library/techarticles/dm-0801liu/
|
最佳实践和经验法则 |
级别: 中级 Mike Liu
([email protected]
), 软件工程师, IBM 2008 年 6 月 25 日 观 察如何在 IBM® DB2® for Linux®、UNIX® 和 Windows® 基准测试环境中使用 Rational® Performance Tester 作为性能测试工具。了解要使用的最佳实践和一般经验法则。Trade6 基准应用程序被用作示例工作负载。<!-- START RESERVED FOR FUTURE USE INCLUDE FILES--><!-- include java script once we verify teams wants to use this and it will work on dbcs and cyrillic characters --> <!-- END RESERVED FOR FUTURE USE INCLUDE FILES-->
性能工 程是确定并报告软件解决方案当前性能的一门学科。它涉及模仿大量并发用户、收集诊断数据、绘图、进行性能分析和设计 System Under Test (SUT) 的技术改进。在达到性能目标之前,此过程将一直重复。在典型的 DB2 WebSphere® 拓扑中,SUT 中有十台以上的机器(否则会有上百台)是很常见的。因此,测试循环通常十分单调乏味并且容易出错。 Rational Performance Tester 是 IBM 旨在简化性能工程的性能测试和监控策略的基础。本文将介绍使用 IBM 测试解决方案在 WebSphere 集群环境中测试 DB2 的最佳实践。
本文的主要目标是:
以下是在测试环境中使用的机器、它们的作用、使用的硬件和安装的软件的清单。 表 1. 测试环境
性能工程是确定并报告软件解决方案的当前性能的一门学科。它涉及设置 System Under Test (SUT)、模仿大量并发用户、管理 SUT、收集诊断数据、分析收集的数据和设计 SUT 的性能改进。在达到性能目标之前,此过程将一直重复。
Rational Performance Tester 是 IBM 旨在简化性能工程的性能测试和监控的策略。在下面的小节中,将查看 RPT 如何通过模拟用户负载获得要绘制的结果图形,从而简化性能测试周期。
首先设计测试环境的拓扑结构非常重要。典型的由 RPT 驱动的集群式 Trade6 测试环境由数据库、 HTTP 服务器、WebSphere 部署管理器、WebSphere 应用服务器、驱动程序和 RPT 工作台组成。我们的测试环境的拓扑如下所示: 图 1. 测试环境拓扑 最佳实践:分隔 RPT 工作台和驱动程序机器 RPT 工作台应该安装在不同于工作负载驱动程序机器的单独机器上,以减少驱动程序方面的开销 最佳实践:分隔驱动程序机器和 Trade 集群驱动程序的开销很高,应该与 Trade 集群分隔开来。如果驱动程序位于运行 Trade 服务器的机器上,那么集群的资源会出现负载失衡,如果使用的是简单的循环负载平衡方案,那么这可能导致性能问题。 经验法则:CPU / 网络宽带比有许多因素影响着测试环境中每个组件对另一个组件的伸缩。例如,如果工作负载非常依赖于数据库,那么您可以期望获得高比率的数据库与 WebSphere CPU 比。对于我们的测试环境,我们发现以下比率在机器之间的平衡资源利用方面非常合适:
要在 DB2 和 WebSphere 平台上设置 Trade6 基准,并创建和填充数据库,请参考 “使用 DB2 UDB 设置并运行 Trade6 基准” 一文(请参阅 参考资料
)。
使用 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 的许可**。可以使用包含许可**的许可服务器或使用许可文件获得许可**。要指向 Rational 许可服务器或导入许可文件,则应该运行 IBM Rational License Key Administrator(在 All Programs -> Rational Software 中可找到)。工作台使用的所有代理控制器都可以自动使用工作台使用的许可**。 最佳实践:增加工作台堆大小对于依赖于从代理控制器和其他监控工具传输回工作台的大量数据的比较大的测试而言,默认工作台堆大小可能不够大。如果工作台内存不足,可以通过编辑位于 RPT 主目录中的 eclipse.ini 来增加默认工作台堆大小,并更改以下代码行:
这指定了堆的大小。建议将最大工作台堆大小设置为 1.5 GB:
最佳实践:日志级别
建议将 RPT 调度执行组件的日志级别设置为 “WARNING”,以减少系统开销。
RPT 代理控制器必须安装在每台驱动程序机器上,以便为工作台提供控制它们的方法。这允许 RPT 工作台在这些机器上部署代码并执行性能测试。
要在 Unix/Linux 上启动代理控制器,请执行 RAStart.sh:
最佳实践:对代理控制器使用正确的 JVM 确 保代理控制器使用的是随 RPT 一起打包的 JVM(RPT70/jdk/jre/bin/java)。要检查代理控制器正在使用的是哪个 JVM,请打开 <Agent Controller Home Dir>/config/serviceconfig.xml 并选择 JAVA_PATH 的值。作为好的实践,工作台使用的 Java 版本与代理控制器使用的 Java 版本应该是匹配的。 最佳实践:增加 tcpip 端口/打开文件的最大数量在包含代理控制器的每台机器上,可能都需要应用以下调优:
在应用调优之后,应该重启代理控制器,如下列清单所示:
这里提供了一个示例 RPT 性能测试项目(请参阅 下载 )。使用性能项目中提供的脚本,可以通过模拟的工作负载驱动 Trade6 环境,该模拟负载重复地命中 Trade6 网站的 /trade/scenario servlet。 要部署这些脚本,请打开 RPT 并选择将现有项目导入工作区。浏览解压缩 TradeProject 的位置,选中它,然后选择 Copy projects into workspace 。此外,还可以单击 Select archive file 直接指向压缩文件。图 3 显示了这些步骤: 图 3. 将项目导入 RPT 工作区 单击 Finish ,让 RPT 将此项目复制到工作区中。现在,工作区中应该有一个包含两个 Trade6 测试脚本的性能测试项目: 图 4. RPT 工作区视图 必须对这些脚本进行以下更改,以便将它们用于您的环境:
通过性能调度中的 Problem Determination 选项卡启用问题确定,这允许代理控制器为调试过程生成日志。对于实际的性能运行,应该将问题确定日志级别调整为 “None”,以减少代理控制器机器上的系统开销,或者调整为 “Severe” 并从每个用户组抽取一名用户作为样本。 最佳实践:增加代理控制器上的 JVM 堆大小对于大型性能测试,可能需要为代理控制器增加 JVM 堆。例如,如果将堆大小增加为 1500 MB,请双击代理控制器机器(在 Test Navigator 中),打开 General Properties 选项卡,然后添加命名为 RPT_VMARGS 的值为 –Xmx1500m 的新属性。对于 Windows,建议将最大堆大小设置为 1.5 GB,对于 Linux,建议将该值设置为 3 GB。 图 7. 将新属性添加到某个位置 要启动性能测试,请右键单击 TradeSchedule test -> Run As -> Performance test schedule。此外,可以在选中性能测试的同时按下 Alt+Shift+X, C 组合键。 然后工作台会将性能测试以及所需的 RPT 库部署到每台驱动程序机器并执行它们。在执行测试时,可以查看性能报告的不同页面,从而可以动态监控测试。 图 8 显示了吞吐量页面,该页面显示了与页面命中率和用户负载有关的信息: 图 8. 性能报告的吞吐量页面 Response vs. Time 页面显示了每个请求的平均响应时间。图 9 显示了此响应时间页面: 图 9. 性能报告的响应时间页面
Rational Performance Tester 7 为三个监控工具提供了集成式支持:
建议为性能测试环境中的每台机器至少安装一种类型的监控工具。这样做可以监控所有资源并杜绝任何资源瓶颈。 要启动监控,请转向性能调度的 Resource Monitoring 选项卡,如图 10 所示: 图 10. 启动资源监控 单击 Add New 添加要监控的新机器。然后系统会提示您确定要进行监视的主机和要使用的监控工具。 最佳实践:同步系统时钟多数监控工具都基于监视器下的系统使用时间戳来收集统计数据。因此,您首先应该同步正被监控的所有系统中的系统时钟。 在 Linux 和 AIX 系统上,可以键入以下内容(作为根用户)来实现这一点:
其中 speedo1 是充当时钟同步服务器的机器。 默认情况下,所有 Windows 机器上都安装了 Windows Performance Monitor,可以使用它来监控各种系统资源。 rstatd 工具用于从 Linux 和 Unix 操作系统中收集一些基本监控数据。这些数据包括:
大多数 Unix 系统上都预先安装了 rstatd。要启动 rstatd 守护程序,请键入:
对于 Linux 操作系统,可以在以下位置找到 rstatd 的开源版本:http://rstatd.sourceforge.net/。 要安装 rstatd,请键入以下内容:
之后,请键入下列内容启动它:
要使用 rstatd 监控 RPT 中的资源,请打开性能测试的 Resource Monitoring 选项卡,选择使用 UNIX rstatd 监视器,然后选择要收集的计数器。图 11 显示了这些步骤: 图 11. 启动 rstatd 性能监控计数器 要查看运作中的监控情况,请在运行测试的时候打开性能报告的 Resources 选项卡。您可以看到如下所示的图表,上面绘制了数据库机器上的 Idle、System、IOWait 和 User CPU 时间: 图 12. 使用 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 之前,应该选择一台机器充当监控服务器。对于我们的测试环境,我们选择使用数据库机器。
要启动监控服务器,请使用 cd 命令转向监控服务器主目录的 bin 目录,并执行 itmcmd
(使用您的 TEMS 名称替换 MORTAL_HUB):
接
下来应该将每台机器上的监控代理安装到监视器上。Tivoli OS 监控代理以及包含 Tivoli
监控服务器安装的大多数安装包都已包括在内。其他监控代理,比如 Tivoli Monitoring for Databases 或 Tivoli
Monitoring for Applications,可能需要单独下载。
在启动代理之前,首先必须配置它,将它连接到监控服务器。要实现这一点,请使用 itmcmd
命令:
清单 1. 连接到监控服务器
应该使用您的代理 ID 替换其中的 清单 2. 查找代理 ID
按照指令,在提示的时候输入 Tivoli 监控服务器的主机名。
还应该将以下补丁应用于 Tivoli Monitoring Server 和 Tivoli Monitoring Agent,以增加对 DB2 V9 的支持:
要启动用于 DB2 的 Tivoli 监控代理,则应该按照以下这些步骤操作:
要使用 Tivoli 监控 RPT 中的资源,请打开性能测试的 Resource Monitoring 选项卡,选择使用 IBM Tivoli Monitoring,然后指定监控服务器的主机名: 图 13. 启动 Tivoli 资源监控 这之后,可以使用 Resource 选项卡选择要收集的计数器。 图 14. 使用 Resource 选项卡选择要监控的计数器 在运行测试的同时打开性能报告的 Resource 选项卡,这样可以查看运作中的监控情况。图 15 举例说明了这些步骤: 图 15. 使用 Tivoli Monitoring for Databases 实现 RPT 中的资源监控 通过右键单击该图,可以用不同的方式对其进行自定义,比如添加和移除计数器。例如,如果只想查看缓冲池命中率,那么可以右键单击该图 -> Add/Remove Performance Counters -> Resource Monitoring Counter 并只选择池命中率计数器。然后此图将更新为只绘制该计数器: 图 16. 使用 Tivoli Monitoring for Databases 实现 RPT 中的资源监控
RPT 工作台和驱动程序机器: RPT 工作台应该安装在不同于工作负载驱动程序的单独机器上 驱动程序机器: 驱动程序的系统开销很高,应该独立于测试下的系统。 工作台堆大小: 对于较大的测试,应该增加默认工作台堆大小 日志级别: 对于实际性能运行,不应该将 RPT 调度执行组件的日志级别设置为 “WARNING” 以上 代理控制器的 JVM: 代理控制器应该使用与 RPT 打包在一起的 JVM Linux/UNIX 上的打开文件的最大数量: 增加允许打开文件的最大数量 Windows 上的 tcpip 端口的最大数量: 增加允许的 tcpip 端口的最大数量 问题确定: 在性能运行期间,应该将问题确定日志级别调整为 “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,感谢他们对本文提出的宝贵反馈意见。
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
http://public.dhe.ibm.com/software/rationalsdp/rpt_agt/61/html/612/nl/readme_zh_CN_612.html
Rational Performance Tester 6.1.2 工作台内存优化 <!-- webbot bot="PurpleText" PREVIEW="Defect 1102755" -->
不要在少于 768 MB 物理内存的系统上使用 Performance Tester。如果违反,您就可能遇到由于内存不足产生的性能降低和/或应用程序崩溃等情形,而且这样的配置不受支持。
在更新 Performance Tester 后,请调节系统的 JVM 堆大小。
要在 Windows 上执行此操作:
- 启动 Performance Tester。
- 单击窗口 > 首选项 。
- 展开“测试”树,并单击 Performance Test 工作台 。
会显示建议的 JVM 堆大小。将该数字输入到“Java 虚拟机堆大小”字段中,然后单击确定
。
设置 JVM 堆大小后,Performance Tester 可能无法在下次被启动时启动。这是由于内存过小或内存碎片严重的情况而引起的。关闭一些活动程序或停止一些服务可释放足够内存来允许 Performance Tester 启动。
如果内存仍然不够,请通过编辑配置文件,重新设置 JVM 堆大小。此 rationalsdp.ini 文件位于产品安装目录(缺省情况下为
C:\Program Files\IBM\Rational\SDP\6.0(Windows)和
/opt/IBM/Rational/SDP/6.0(Linux))中。请在文本编辑器(例如 Notepad)中打开该文件,然后查找以 VMArgs=-Xmx
开头后跟数字和 m
的行。这个数字应为您在“首选项”页面上为“Java 虚拟机堆大小”字段输入的数字。从配置文件除去该行可允许 Performance Tester 启动。
有关如何增大工作台上的内存分配的最新信息,和有关如何减少内存消耗的最佳实践,请参阅 IBM 技术说明 1221972“Rational Performance Tester 6.1.2 工作台内存优化”。要查找此技术说明,请单击帮助 > IBM Support Assistant
,然后单击显示选项
。选择 IBM 软件支持文档
和 Rational Performance Tester
,然后搜索“工作台内存优化”。
end