本文将 IBM® Rational® Performance Tester 环境的准备工作组织为三个部分。在第一部分之中,您将会学到部署 Rational Performance Tester 负载生成环境的方法,以及部署模式避免的信息。在第二部分之中,您将会学到如何调试参数,这些参数会促进最优的性能测试负载生成以及操作系统性能。最后一部分包含为运行一次成功的性能测试,启动性能测试之前您可以执行操作的信息。
应采用和须避免的 Rational Performance Tester 部署操作
考虑以下的建议,以部署 Rational Performance Tester 负载生成环境:
- 使用多台低端配置(对于 CPU,内存而言)的代理机器,并让这些机器生成负荷。如果您使用高端配置的少量代理机器,那么操作系统会受到可用接口,处理并行以及多线程的限制。因此,使用低端配置的多台代理机器,可以并发用于性能测试,而不是垂直测试少量高端配置机器上的代理。
注意:
低端配置机器就是那些 CPU 数量少和内存容量较小的机器。但是,CPU 频率的高低不应该被看做低配置的参数。推荐 Rational Performance Tester 代理机器的 CPU 频率为 2.33 GHz 或者更高。
图 1. 不同拓扑结构在设计负载生成环境下的比较
- 如果测试代理位于虚拟环境之中,那么您要确保安装性能测试代理软件的机器上的逻辑性分区拥有固定的物理以太网控制器,以支持高容量的网络交通量。
重点:
不要将逻辑主机以太网适配器或者虚拟以太网设备用作网络界面,来在 Rational Performance Tester 代理逻辑性分区上运行性能测试代理服务。
- 确定与控制器和性能测试相同网络之中的所有代理都已经创建起来了。这样做可以确保有最小的网络潜伏期,并能更快地转移主机控制器和代理机器之间的统计,测试资源和数据。
图 2 和图 3 中演示了前两个拓扑。您可以采用最佳实践来部署 Rational Performance Test 环境
拓扑 1:性能测试解决方案的最佳机理
在性能测试期间,您必须要将负载生成环境安装到测试解决方案相同的网络之中,这样在负载生成环境与解决方案之间有较小的网络潜伏期。在将网络潜伏期最小化之后,就更容易分析性能瓶颈了,但是很难排除故障的网络错误和包丢失量也在下降,并且可能导致交易错误,尽管服务器能得到有效地操作。
图 2. 性能测试环境之下首个拓扑结构
拓扑 2:Rational Performance Tester 主机控制器位于解决方案网络的外面,但是性能测试代理却位于解决方案网络的里面
该拓扑与拓扑 1 几乎相同。这里,由于变化的网络问题,主机控制器及其代理之间可能存在交流问题,例如网络管网的带宽,以及 Rational Performance Tester 之中服务器的网络卡。有了它,这种机理的缺点在于阻止以下情况下性能测试的顺利执行:
- 性能测试的一般执行运行,或者性能测试的执行会在长持续期 / Endurance 性能测试中进行,它会一起运行数天,并快速取样。
- 载入生成有很多种测试机构,大约有 25 个测试机构或者更多。
如果主机控制器及其代理之间的网络连接性和带宽不统一,那么这 可能 会导致交流错误(网络包丢失),并进一步导致性能测试的不正常终结。以下的错误可能也会发生:
- “除了
xx事件之外工作台不能从其他的代理那里接受信息 ”
- “不能连接至代理。连接时间超出”
图 3. 性能测试第二个拓扑结构
当您在部署 Rational Performance Tester 环境时,图 4 和图 5 演示了避免的拓扑模式。
模式 1:Rational Performance Tester 代理部署在与解决方案构件相同的硬件之上
尽管这种性能测试的拓扑结构能够保证测试代理与解决方案之间最小的网络潜伏期,但是在解决方案与性能测试环境之间还可以共享操作系统资源。在这种情况之下,由于解决方案环境与性能测试环境之间相同操作系统资源使用情况不同带来的极大复杂性,资源使用分析就变得十分的困难了。而不精确的分析又将导致性能问题识别,分析和故障排除所用的数据也不精确。因此,对于性能测试环境部署来说,并不推荐使用该拓扑结构。
考虑以下的操作系统资源:
- 处理器使用
- 内存使用
- 解决方案构件和代理进程的 TCP/IP 接口
- 网络带宽,包括解决方案构件和代理进程中发送的比特数以及每秒所接受的比特数
注意:
对解决方案构建部署性能测试机器,除了对进程,内容和网络带宽使用有影响,对操作系统层次上 可用 TCP/IP 接口的使用 也有影响。
Rational Performance Tester 会为性能测试负载生成期间所作的请求创建连接。每个连接都会使用 TCP/IP 接口。该号码只限于 65,535(而 TCP/IP 协议只允许在操作系统平台之上有 65,535 个 TCP/IP 端口)。
如果性能测试代理使用了大量的 TCP/IP 接口,那么解决方案构件的接口连接就会不够用了,这会制造一个性能瓶颈,并导致性能低下。
图 4. 避免性能测试的首个模式
模式 2:整个负载生成环境(主机控制器和测试代理)不在解决方案网络之内
为测试解决方案避免这种拓扑结构,因为它会导致网络错误,包丢失,等等。因此该拓扑并不会导致性能测试期间的中断和错误,但是在驱动解决方案服务器上网络吞吐量及负载方面变得困难起来。
图 5. 避免性能测试的第二个模式
Rational Performance Tester 接下来的调试参数得到了试用,并成功地进行了测试,以生成 35,000 虚拟用户的大量用户负荷,带有使用 HTTP 协议 3 端基于网络程序多达 3,000 虚拟用户的的用户并发率。
当您在 1000 – 10,000 并发虚拟用户的用户负载上测试一个网络程序时,您可以应用这些参数。
声明:这些调试参数被注明为向操作系统的网络通过行为提供了 25 – 40% 的改进,并作为程序负荷特征。达到的性能改进在不同的平台上在 5 – 10% 之间进行变化。AIX 平台上的改进更为显著。
这些参数就是一个引用点。您可以根据测试的程序工作负荷及容量来进行映射,这样您就可以得到测试的适当值了。
表 1:负载生成最佳性能的操作系统调试
| 操作系统 | 参数 | 值 | 实施内容 |
|---|---|---|---|
| Windows | MaxUserPort | 65534 | 编辑 HKEY_LOCAL_MACHINE > System > CurrentControlSet > Services > TCPIP > Parameters 之下的注册表。所有的参数必须作为 DWORD 添加,并将值设置为 Decimal |
| TcpTimedWaitDelay | 30 | ||
| MaxFreeTcbs | 72000 | ||
| MaxHashTableSize | 65535 | ||
| TcpWindowSize | 65535 | ||
| EnableDynamicBacklog | 1 | ||
| MinimumDynamicBacklog | 20 | ||
| MaximumDynamicBacklog | 1000 | ||
| DynamicBacklogGrowthDelta | 10 | ||
| TcpAckFrequency | 1 | ||
| Linux | net.ipv4.ip_local_port_range | 2048 65000 | 使用以下的参数来编辑 /etc/sysctl.conf 并保存文件。运行以下的命令 – sysctl –p
|
| net.core.rmem_default | 262144 | ||
| net.core.wmem_default | 262144 | ||
| net.core.wmem_max | 33554432 | ||
| net.core.rmem_max | 33554432 | ||
| net.core.netdev_max_backlog | 5000 | ||
| net.ipv4.tcp_no_metrics_save | 1 | ||
| net.ipv4.tcp_rmem | 4096 16777216 33554432 | ||
| net.ipv4.tcp_wmem | 4096 16777216 33554432 | ||
| net.core.optmem_max | 40960 | ||
| AIX | sb_max | 6192000 | no –p –o <parameter> = <value>
|
| clean_partial_conns | 1 | ||
| tcp_timewait | 1 | ||
| tcp_keepidle | 600 | ||
| tcp_keepinit | 40 | ||
| tcp_nodelayack | 1 | ||
| tcp_keepintvl | 10 | ||
| Maxuproc | 8192 | ||
| tcp_sendspace | 4096000 | ||
| tcp_recvspace | 4096000 | ||
| tcp_ephemeral_low | 1024 | ||
| rfc1323 | 1 |
- 确保您在代理机器上启动了 Rational Performance Test 代理服务。
- 确保您在从代理上启动测试之前,在使用
netstat命令的 CLOSE_WAIT 或者 TIME_WAIT 上没有连接。
注意:
当服务器关闭它的连接时,TIME_WAIT 连接就会发生了,但是客户端会等待致谢的信号以关闭连接。在持续时间超出限额之后连接将会改为 CLOSE_WAIT,而操作系统必须关闭该连接。在您启动性能测试之前,拥有这两种状态的连接会阻止 Rational Performance Tester 在测试运行期间使用到该连接,这意味着测试之前不会发生这种类型的连接。启动之前这可以确保一个纯粹的网络状态。
- 对于 UNIX 操作系统上的代理机器,查找名为 rpt_runner 的进程,在您运行性能测试之前将其关闭掉。在 Windows 之中,查找 Task Manager 中 的 Java,并在开始测试之前关闭相同项目的运行。
注意:
停止 Linux,AIX 上的rpt_runner进程,或者 Windows 上的 Java 并不会停止 Rational Performance Tester 代理服务。代理进程会在所有测试启动时开始。因此,在下一次测试开始之前,关闭这些进程(测试运行完成之后如进程存在的话)可以确保与前面测试相联系的代理进程,可以避免在操作系统上运行。在测试完成之后,由于性能测试期间性能测试或者错误的意外终止,这些进程可能会继续存在。
- 在 Microsoft Windows 机器上,激活主机控制器上的状态选项显示:Windows > Preferences > General > Show heap status。您可以使用它来追踪测试运行期间 Rational Performance Tester 的内存使用情况。如果内存使用率上升的话,您可以点击累积状态栏上的废物收集图标,来手动强制收集废物。知道这一点,可以帮助您了解主机控制器的内容使用情况。
- 关闭主机控制器工作台,并再次将其启动,以在启动测试之前实现 JVM 累积内存的最小使用。您必须强制收集废物一次,以在开始测试之前清除 Rational Performance Tester JVM 累积内存之中未引用的对象。
- 删除以下目录之中的所有内容,并在运行测试之前重新启动代理服务器:
- 操作系统的临时目录。基于 Unix 操作系统的是 /tmp,Windows 平台上是 C:\Documents and Settings\<User>\temp 目录)
- 代理的 Deployment_root 目录
- C:\Documents and Settings\user name\Local Settings\Application Data\javasharedresources 中呈现的共享类资源
- 在特定的情况之下,您必须重启性能测试代理机器的操作系统。
- 操作系统的临时目录。基于 Unix 操作系统的是 /tmp,Windows 平台上是 C:\Documents and Settings\<User>\temp 目录)
- 确保在临时目录中有足够多的硬盘空间,而文件系统包含了 deployment_root 文件夹。临时目录的推荐最小值是 10 GB,对于部署目录来说则是 5 GB。
- 在生成高负荷并考虑同步点时,您可以使用多种小型配置代理机器,而不是少量的大型配置机器,以得到更好的结果。
- 如果测试持续时间过长,或者涉及到请求的高通过生成情况,那么就可以避免高速情况下的统计取样。对于性能测试工具来说,较高的统计取样率负担过重,所以必须设为一个最佳的数值。例如,在 2 个小时的测试运行期间,15 秒的取样间隔是最佳的统计取样率。
图 6. Rational Performance Tester 之中的统计取样率
- 将错误日志设置为小值登录。在运行大量测试以获得负载生成的最佳性能时,只有错误或者警告可以作为主测试操作记录。
图 7. Rational Performance Tester 中的登录层次选项
学习
- 查找更多在 Rational Performance Tester 产品页面 上的内容。查看 IBM® developerWorks® 上的 Rational Performance Tester 产品专题 的链接,了解技术文章,在 Rational Performance Tester 信息中心 中浏览用户帮助信息。
- 访问 developerWorks 上的 Rational 专区,了解有关 Rational 软件交付平台产品的技术资源和最佳实践。
- 时刻关注 developerWorks 技术事件和 Web 广播,包括各种 IBM 产品和 IT 行业主题。
- 参见 developerWorksLive! 技术讲座,快速了解 IBM 产品和工具,以及 IT 行业趋势。
- 观看 developerWorks 演示中心,从初学者的产品安装和配置演示,到面向有经验开发人员的高级功能。
- 参见 developerWorksLive! 技术讲座,快速了解 IBM 产品和工具,以及 IT 行业趋势。
- 改善您的技能。查看 Rational 培训和认证 目录,其包含了许多广泛议题的课程类型。您可以在任何地方,任何时间学习它们,许多“启动”课程是免费的。
获得产品和技术
- 下载 IBM Rational Performance Tester 免费试用版。
-
按照最适合您的方式IBM 产品评估试用版软件:下载进行试用,可以在线进行,在云环境中使用,或者在 IBM SOA 人员沙箱 中花一些时间了解如何有效实施面向服务架构。
讨论
- 加入 性能测试讨论区,在那里,您可以分享您的有关 IBM 性能测试产品的问题和知识。
- 通过 撰写一篇 developerWorks 文章 共享您的知识,并帮助那些使用 Rational 软件的人员。您将获得全球范围展示,RSS 企业联合组织,署名和建立,以及 developerWorks Rational web 网站专业编辑和出版的益处。
- 跟随 Facebook 和 Twitter (@ibmrational) 上的 Rational 软件,并添加您的注释和请求。
- 您可以加入 Rational 讨论区,cafés 和 wikis,询问并回答问题,增加您的专业技能。
- 通过加入 developerWorks 中文社区,与其他人员联系,分享您的兴趣爱好,并响应 开发人员驱动的博客。
