双十一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。按照各请求的占比设计脚本,然后执行压测,观察各接口响应时间以及服务器资源利用情况。

性能指标

 响应时间,单个接口低于1秒 
 TPS是否达到预期值 
 事务成功率不能低于98% 
 服务器资源利用率 

指标

阈值

备注

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,平均响应时间很低。

  1. 响应时间和TPS

随手借点-首页产品接口返回数据较大,响应时间在751ms,其余接口响应时间在100ms以下,属于正常范围。
五个接口的测试环境下TPS均远大于线上TPS,性能良好。
 
TPS趋势图,稳定在600附近。
 

  1. 服务器资源利用率

CPU利用率在70%以下,正常(测试时间从14:39到14:49)。
 
IO使用率较低,正常。
 
网卡流量在120Mbps,正常。
 
MySQL连接数,正常。
 
慢速sql数量为0,正常。
 

测试结论

从上面的结果来看,在单个服务器情况下,压测接口的TPS大于现网服务器TPS的总和,可以满足接口日常访问量三倍的需求。

posted @ 2018-12-07 17:40  Lynne~  阅读(501)  评论(0编辑  收藏  举报