观察如何在 IBM® DB2® for Linux®、UNIX® 和 Windows® 基准测试环境中使用 Rational® Performance Tester 作为性能测试工具。了解要使用的最佳实践和一般经验法则。Trade6 基准应用程序被用作示例工作负载。
简介
性能工程是确定并报告软件解决方案当前性能的一门学科。它涉及模仿大量并发用户、收集诊断数据、绘图、进行性能分析和设计 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 |
|
RPT Agent Controller (x2) | 8x2 GHz Intel XEON 4 GB RAM |
|
HTTP Server / WebSphere Deployment Manager | 2x2 GHz AMD Opteron 4GB RAM |
|
WebSphere Application Server (x7) | 2x2 GHz AMD Opteron 2 GB RAM |
|
RPT Workbench | 4x2.8 GHz Intel XEON 4 GB RAM |
|
未使用 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 如何通过模拟用户负载获得要绘制的结果图形,从而简化性能测试周期。