双十一LoanMarket压力测试报告
测试背景
评估服务器资源及几个重要接口的并发性能。
测试需求
由开发提供的5个重要接口:
| 
 业务场景  | 
 URL  | 
 访问量(万)  | 
 TPS  | 
 请求比例(%)  | 
| 
 随手借点-首页产品接口  | 
 /suishoujiedian-webservice/loanProduct/v3/terminal/listAllLoanProduct.do  | 
 
  | 
 73  | 
 19  | 
| 
 贷款超市-产品配置  | 
 /cardniuoperation-webservice/product/listProductTree.action  | 
 
  | 
 73  | 
 19  | 
| 
 贷款超市-banner位  | 
 /cardniuoperation-webservice/bannerConfig/getShow.action  | 
 
  | 
 26  | 
 6  | 
| 
 贷款超市-统计上报  | 
 /cardniuoperation-webservice/loanStatService/addLoanStat.action  | 
 
  | 
 149  | 
 37  | 
| 
 贷款超市-活动配置  | 
 /cardniuoperation-webservice/loanGiftWebService/getLoanGiftItemByActivity.action  | 
 
  | 
 68  | 
 19  | 
其中,访问量来自于线上服务器的一天访问量总和,涉及到五个负载机。前四个接口有四个负载机,最后一个接口有两个负载机。
TPS采用二八原则(即80%的访问是在20%的时间内完成),随后计算出每秒的访问量。
测试方案
通过线上监控的接口访问量以及网卡流量可知,一天中,系统用户活跃时间为24小时,根据二八原则(80%的请求是在20%的时间内完成的),可计算出TPS。如上图所示,得到每个接口要达到的TPS。按照各请求的占比设计脚本,然后执行压测,观察各接口响应时间以及服务器资源利用情况。
性能指标
| 
 指标  | 
 阈值  | 
 备注  | 
| 
 CPU  | 
 <70%  | 
 过高会导致系统服务不稳定  | 
| 
 内存使用率  | 
 <70%  | 
 同上  | 
| 
 磁盘使用率  | 
 <70%  | 
 同上  | 
| 
 网络带宽  | 
 <70%  | 
 过高会导致网络延迟,响应时间变长  | 
测试环境
负载机IP:
测试机IP:
数据库IP:
测试脚本
使用Jmeter测试工具,用Java编写测试变量处理过程,如用户ID随机获取及加密,循环发送请求,并且按照请求的比例来模拟线上用户并发访问系统。
测试数据
贷款超市-产品配置接口,userid由现网环境下导出100个。
贷款超市-统计上报接口,udid、userId由随机整数生成然后加密,loanBehavior范围为click, load_break, load_success, load_server_error, loanproduct_submit,loanproduct_refuse_contacts, loanproduct_refuse_location, home_click, load_product。 
测试结果
| 
 并发用户数  | 
 混合场景接口平均响应时间(ms)  | 
 总TPS  | 
 请求总数(10分钟)  | 
| 
 100  | 
 168  | 
 591  | 
 354655  | 
| 
 150  | 
 256  | 
 583  | 
 349867  | 
| 
 200  | 
 334  | 
 595  | 
 357477  | 
下面列举出100用户并发下的性能指标,从下图可以看出TPS(等同于Throughput)远远大于根据现网访问量计算出的TPS,平均响应时间很低。
- 响应时间和TPS
 
随手借点-首页产品接口返回数据较大,响应时间在751ms,其余接口响应时间在100ms以下,属于正常范围。
五个接口的测试环境下TPS均远大于线上TPS,性能良好。
- 服务器资源利用率
 
CPU利用率在70%以下,正常(测试时间从14:39到14:49)。
测试结论
从上面的结果来看,在单个服务器情况下,压测接口的TPS大于现网服务器TPS的总和,可以满足接口日常访问量三倍的需求。
                    
                
 
 
 
 
 
 
 
                
            
        
浙公网安备 33010602011771号