### 使用LoadRunner实现大负载测试的四部曲
#### 第一部曲:系统参数配置与优化
在进行大负载测试之前,系统环境的准备至关重要。针对高并发场景,LoadRunner(以下简称LR)用户可能会遇到诸如Socket状态异常、“WAIT”状态过多、连接失败、mmdrv句柄数激增以及缓冲区空间不足等问题。为解决这些问题,需进行以下系统参数的调整:
1. **减少Socket等待时间**:通过编辑注册表`HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\tcpip\Parameters\TcpTimedWaitDelay`,将其值设为30,从而缩短Socket从CLOSE_WAIT状态转换至TIME_WAIT的时间,有效减少等待状态的Socket数量。
2. **扩展用户端口范围**:同样通过注册表`HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\tcpip\Parameters\MaxUserPort`,将最大用户端口设为65534,以此增加可使用的端口数量,避免因端口不足导致的连接失败。
3. **增加共享内存区大小**:设置`HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\SessionManager\SubSystems\Windows`的SharedSection值为4096,增强系统的内存管理能力,应对高负载压力。
4. **脚本优化**:在脚本首行添加`web_set_sockets_option("SHUTDOWN_MODE","ABRUPT")`函数,强制改变关闭连接的方式,由默认的GRACEFUL模式改为ABRUPT模式,快速释放资源。
#### 第二部曲:LoadRunner配置优化
为了确保LR在大负载测试中的稳定性和效率,需要对其内部配置进行细致调整:
1. **脚本运行设置**:在消息处理时,仅在发生错误时发送消息,禁用错误快照功能,取消交易步骤定义,模拟新用户而非缓存浏览器行为。
2. **脚本执行模式**:将`web_url`函数的Mode属性从HTML改为HTTP,减少服务器解析负担,降低LR机器压力。
3. **性能监控调整**:在Controller中禁用WebPageBreakdown,减轻分析负担。
4. **虚拟用户初始化控制**:通过Controller限制同时在所有LR Generator上初始化的虚拟用户数量,避免初期资源过载。
5. **错误信息管理**:修改`wlrun7.ini`文件中`[output]`段的FlagLimitOutputMessages和MaxNumberOfOutputMessages,控制错误信息存储量。
6. **采样率调节**:在Controller中调整Monitor的采样率,减少CPU使用率。
7. **输出信息重定向**:将输出信息导出至文本文件,而非MDB数据库,提高效率。
8. **额外优化**:关闭防病毒、防间谍软件及不必要的Windows服务,避免在Controller上运行虚拟用户,减少Error/Output窗口的频繁开启,以减少额外的数据库连接数。
#### 第三部曲:脚本优化
脚本是大负载测试的核心,其优化直接关系到测试效果和效率:
1. **确保网络通信**:在大并发环境下,保持Controller和Generator之间的高效通信是关键。例如,限制错误和输出信息的传输频率,减少不必要的网络负担。
#### 结语
通过对系统参数的调整、LoadRunner配置的优化以及脚本的精炼,可以显著提升大负载测试的效果和稳定性。这些策略不仅适用于LoadRunner,也适用于其他高性能测试场景,为IT行业的软件质量和性能评估提供了有力支持。