
针对某公司办公自动化(OA)系统的负载压力测试,采用专业的负载压力测试工具来执行测试。系统采用Browse/Server架构,服务器是一台PC Server (4路2.7GHz 处理器,4GB内存),安装的平台软件包括 Microsoft Internet Information Server 5.0,ASP.NET,SQLServer 2000。使用2台笔记本电脑安装测试工具模拟客户端执行“登录”业务操作。
测试需求分别为以下两个:
第一,测试系统分别在2M、4M网络带宽下,能够支持用户登录的最大并发用户数;
第二,测试服务器的吞吐量(即:每秒可以处理的交易数),主要包括服务器CPU平均使用率达到85%时系统能够支持的最大吞吐量和服务器CPU平均使用率达到100%时系统能够支持的最大吞吐量。
本次性能测试的测试目标是:
1)指标“响应时间”合理范围为0~5秒,可支持的最大并发用户数;
2)评测系统的服务器资源是否合理,是否需要进行改进。
3)网络带宽是否使用合理。
经过测试需求分析,我们设计出两种场景2M网络和4M网络环境下进行模拟测试,其中选定登录业务进行测试,加压策略采取逐步加压的方式,测试工具采用LoadRunner。
测试结果如下:
Case 1
网络环境:2M带宽
客户端性能测试结果:
| 测试指标 | 平均值 |
| 登录响应时间 | 3.391秒 |
| 虚拟用户数 | N/A |
| 每秒处理完成登录的个数 | 11.7交易/秒 |
注:图中登录响应时间的纵坐标单位是0.1秒
服务器资源使用结果:
| 测试指标 | 平均值 |
| CPU使用率 | 78% |
Case 2
网络环境:4M带宽
客户端性能测试结果:
| 测试指标 | 平均值 |
| 登录响应时间 | 4.795秒 |
| 虚拟用户数 | N/A |
| 每秒处理完成登录的个数 | 13.447交易/秒 |
注:图中登录响应时间的纵坐标单位是0.1秒
服务器资源使用结果:
| 测试指标 | 平均值 |
| CPU使用率 | 98% |
结果分析:
1)通过Case 1中的并发用户数和响应时间的监控图,发现登录响应时间随虚拟并发用户的增加而增长。在50个虚拟并发用户的负载下,登录响应时间达到5秒(注:图形中响应时间指标的比例为10:1),当负载超过50个虚拟用户时,响应时间超过5秒或与5秒持平。因此可推断当系统满足性能指标需求时,系统能够承受的并发用户登录的最大数量是50。
2)在Case 1中的服务器资源监控图中分析,得出服务器的CPU资源使用是合理的。
3)将Case 1和Case 2结合起来比较,发现4M带宽下,系统每秒处理完成的登录个数固定在13.5个左右,登录响应时间随虚拟用户增加而增长。在60个虚拟用户的压力下,登录响应时间在4.2秒左右。在80个虚拟用户的压力下,登录响应时间在5.8秒左右,所以在合理登录响应时间5秒内预计同时登录用户数是70左右。服务器CPU使用已成为新的瓶颈。这说明随着带宽的提高,系统的处理能力进一步提高,充分说明了2M网络会成为系统的瓶颈,但是增加网络带宽又会造成CPU资源利用紧张,造成新的瓶颈带来更严重的后果。
初步建议:
1)增加CPU的个数或提高CPU的主频
2)将web服务器与数据库服务器分开部署
3)调整软件的设计与开发
4)增加带宽或压缩传输数据
2、工作流引擎的案例分析
系统性能调优的关键是首先做好性能故障定位,面对系统运行在不同平台上的多个服务器、多种应用、大量工作站以及局域网、广域网和其他类型的分布式网络体系结构,故障点交错,故障定位工作非常复杂。下述是《工作流平台系统》的性能测试案例和结果数据:
)测试案例描述:模拟多用户登录《工作流平台系统》,针对工作流A、B、C分别连续创建20个实例。在单机和集群测试环境分别进行负载压力性能测试,单机环境下测试用机与一台应用服务器连接在同一交换机上,压力直接加在一台应用服务器上。集群环境下测试用机与服务器连接在同一交换机上,压力由负载均衡模块分摊到两台应用服务器上,数据库服务器不作集群处理。
)测试目标:
●随着负载的增加,采用集群方案是否对此应用系统有效
●服务器资源是否使用合理
)客户端交易并发执行测试数据:
●单机测试环境
| 测试案例 | 并发用户数 | 响应时间 | ||
| 平均值(s) | 最小值(s) | 最大值(s) | ||
| 创建工作流A | 120 | 1.686 | 1.03 | 1.773 |
| 240 | 3.479 | 3.034 | 3.756 | |
| 测试案例 | 并发用户数 | 响应时间 | ||
| 平均值(s) | 最小值(s) | 最大值(s) | ||
| 创建工作流A | 120 | 0.088 | 0.01 | 0.113 |
| 240 | 1.117 | 1.01 | 1.153 | |
●单机测试环境
应用服务器资源占用情况
| 测试案例 | 并发用户数及资源占用指标 | 最大值 | 平均值 | 最小值 | |
| 创建工作流实例A | 120 | CPU Utilization% | 33.8 | 10.054 | 2.9 |
| Paging Rate | 2.5 | 0.082 | 0 | ||
| Disk Traffic | 9.75 | 0.813 | 0 | ||
| 240 | CPU Utilization% | 38.1 | 15.713 | 0.875 | |
| Paging Rate | 0.25 | 0.015 | 0 | ||
| Disk Traffic | 2.6 | 0.336 | 0 | ||
| 测试案例 | 并发用户数及资源占用指标 | 最大值 | 平均值 | 最小值 | |
| 创建工作流实例A | 120 | CPU Utilization% | 44.875 | 5.085 | 0.5 |
| Paging Rate | 4.75 | 0.274 | 0 | ||
| Disk Traffic | 8.8 | 1.824 | 0.6 | ||
| 240 | CPU Utilization% | 12.2 | 8.766 | 0.5 | |
| Paging Rate | 5.4 | 0.244 | 0 | ||
| Disk Traffic | 7.2 | 1.584 | 0.6 | ||
| 创建工作流实例B和工作流实例C | 60 | CPU Utilization% | 100 | 87.082 | 0.875 |
| Paging Rate | 268.992 | 158.865 | 0 | ||
| Disk Traffic | 193.319 | 110.948 | 2.25 | ||
| 120 | CPU Utilization% | 99.3 | 88.419 | 1.15 | |
| Paging Rate | 751.358 | 1.785 | 1.8 | ||
| Disk Traffic | 217.775 | 146.304 | 2 | ||
| 240 | CPU Utilization% | 100 | 88.909 | 0.6 | |
| Paging Rate | 521.447 | 191.829 | 0 | ||
| Disk Traffic | 197.725 | 156.285 | 0.6 | ||
两台应用服务器资源占用情况
| 测试案例 | 并发用户数及资源占用指标 | 应用服务器1 | 应用服务器2 | |||||
| 最大值 | 平均值 | 最小值 | 最大值 | 平均值 | 最小值 | |||
| 创建工作流实例A | 120 | CPU Utilization% | 46 | 21.005 | 14 | 46.25 | 14.025 | 7.667 |
| Paging Rate | 3.5 | 0.392 | 0 | 2.167 | 0.206 | 0 | ||
| Disk Traffic | 65.334 | 6.7 | 0 | 73.833 | 7.588 | 0 | ||
| 240 | CPU Utilization% | 52 | 27.163 | 1.583 | 37.333 | 17.856 | 0.75 | |
| Paging Rate | 5 | 0.506 | 0 | 4.667 | 1.045 | 0 | ||
| Disk Traffic | 70 | 7.849 | 0 | 86 | 8.674 | 0 | ||
| 测试案例 | 并发用户数及资源占用指标 | 最大值 | 平均值 | 最小值 | |
| 创建工作流实例A | 120 | CPU Utilization% | 13 | 5.868 | 0.333 |
| Paging Rate | 0 | 0 | 0 | ||
| Disk Traffic | 6.667 | 1.767 | 0.6 | ||
| 240 | CPU Utilization% | 34.5 | 7.4 | 0.25 | |
| Paging Rate | 10.667 | 0.508 | 0 | ||
| Disk Traffic | 5.6 | 1.596 | 0.75 | ||
1)从单机环境和集群环境的响应时间中,可以看出集群下创建工作流实例A的响应时间比单机环境下的响应时间快。说明集群的效率要优于单机环境下系统性能,即集群环境下系统能够提供的客户端并发性能服务等级要优于单机环境。
2)从单机测试环境下应用服务器和数据库服务器的资源利用率监控数据分析,可以看出应用和数据库服务器的资源使用合理,不存在瓶颈。
3)随着系统的负载的增加,集群方案肯定是有效的,但是在单机环境下发现在创建工作流实例B和C时,数据库服务器的CPU利用率都已达到了85%左右。应用服务器的集群策略使系统能够承受更多的并发负载,这样就给数据库服务器带来更大的压力,CPU占用率会成为瓶颈。
