双十一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,平均响应时间很低。
- 响应时间和TPS
随手借点-首页产品接口返回数据较大,响应时间在751ms,其余接口响应时间在100ms以下,属于正常范围。
五个接口的测试环境下TPS均远大于线上TPS,性能良好。
TPS趋势图,稳定在600附近。
- 服务器资源利用率
CPU利用率在70%以下,正常(测试时间从14:39到14:49)。
IO使用率较低,正常。
网卡流量在120Mbps,正常。
MySQL连接数,正常。
慢速sql数量为0,正常。
测试结论
从上面的结果来看,在单个服务器情况下,压测接口的TPS大于现网服务器TPS的总和,可以满足接口日常访问量三倍的需求。
双十一LoanMarket压力测试报告的更多相关文章
- “双十一”购物狂欢节,电商运营和商业智能(BI)才是绝配
百年前,人们获取信息的方式是通过报纸.书籍:十年前,人们获取信息的方式是通过传统PC互联网:而如今,在4G网络高速发展的浪潮下,伴随着移动智能终端的普及,人们获取信息的方式已经逐渐转向了移动 ...
- 备战双十一,腾讯WeTest有高招——小程序质量优化必读
WeTest 导读 2018年双十一战场小程序购物通道表现不俗,已逐渐成为各大品牌方角逐的新战场.数据显示,截止目前95%的电商平台都已经上线了小程序.除了电商企业外,许多传统线下商家也开始重视小程序 ...
- 双十一 VS 火车票(12306)
火车票开售了,又是一年,code了一年,咱们也该回顾回顾了. 还记得12306上线之初各种技术大牛给人家出方案,吐槽人家外包费用?我们来回顾回顾. 就园子里都过千篇文章来侃这事儿,请问有多少主题的文章 ...
- jmeter压力测试报告 - DEMO
XXX压力测试报告 时间:2015-08-04 测试人员:xxx 目录 XXX压力测试报告... 1 一 测试 ...
- String的用法------程序猿的双十一
小感慨:我就静静的写着代码玩,度过一年一度的双十一,今晚就更新进度,整理笔记. package com.mon11.day10; import static org.junit.Assert.*; i ...
- 双十一前4小时,CentOS 6.5server启动错误排查
11月10日晚上8点多.眼看要到双十一了... 但我要说的这段经历却和双十一毫无关系.哈哈. 这天准备向CentOS6.5server的svn上传一些文件,结果开机启动时,却出现了以下的界面: 这是肿 ...
- jmeter压力测试报告
XXX压力测试报告 时间:2015-08-04 测试人员:xxx 目录 XXX压力测试报告... 1 一 测试 ...
- ABBYY FineReader去他的光棍节,我要我的双十一
今天就是双十一,全民剁手的双十一,一年仅一次的双十一,不只是半价的双十一.....此时此刻,多少钱拿起手机在疯狂购物,又有多少人死守着电脑,不敢怠慢一丁点机会,买着买着购物车就空了,然后才发现,咦!超 ...
- 双十一DIY装机记
一.装机背景 最近发现古董笔记本太卡了,用了近6年,尽管自己不打游戏,但是业余时间写写代码,同时开两个编辑器,打开个大一点的软件都卡的不行,据说更换固态硬盘可以提高速度,于是乎,京东买了一个500 ...
随机推荐
- Rhino学习教程——1.2
实战——创建个性化工具栏: 因为我们的制图习惯不同,所以可以吧自己常用的工具放在一起.我上次说的自定义界面就是这个和调整工具栏位置. 1.打开常用>设置 2.选择工具列>编辑>新增工 ...
- 执行git命令时出现fatal: 'origin' does not appear to be a git repository错误
在执行git pull origin master时出现: fatal: 'origin' does not appear to be a git repository fatal: Could no ...
- 所有不同的序列串-----LCS算法的变种
今天遇到LEETCODE的第115题: Distinct Subsequences Given a string S and a string T, count the number of disti ...
- dva,清除模块数据
前言: 在项目中,模块过多,dva使用namespace分离模块后,若没有在模块卸载后清除对应的数据,下次进入时,有可能会有上一次数据的残留. 比如详情页,从A商品的详情页离开后,返回选择B商品进入, ...
- centos7初上手1-安装mysql数据库
随着云服务器的普及,购入云服务器的门槛越来越低,对一个程序员来说,很多人会购买一款云服务器.以前买过两年windows服务器(没有什么实际用途,就是为了玩),最近有机会接触一下linux服务器,选择了 ...
- 第一周嵌入式程序设计(linux环境下)的学习总结
2014025641 <嵌入式程序设计>第1周学习总结 本周学习内容 首先我们先复习下之前学习过的内容,什么是linux? Linux 就是一个操作系统,就像你多少已经了解的 Window ...
- 从0到1用eclipse用maven搭建web项目
1,默认已经搭建了JDK1.5以上,以及eclipseEE版本,和maven. 2,修改maven的本地仓库和镜像,修改本地仓库是为了方便我们管理,maven的默认仓库是在C盘的USER文件夹下,我一 ...
- 作为新手在学习SSM+Easyui过程中遇到一系列问题
对于初学SSM来说,如果不熟悉SSM中SpringMVC对数据处理,会造成很大的困扰, SSM中对前台页面放在WEB-INF下,对于读取外部信息,例如导入easyui的js文件.以及不能直接进行跳转. ...
- Windows上SQLPLUS的设置
sqlplus启动的时候会调用login.sql,首先在当前路径下查找login.sql,如果没有找到,则在SQLPATH中查找该文件 另外sqlplus执行命令的时候也会首先在当前目录查找脚本,如果 ...
- python基础 字典练习
练习1:info = [ {'wangming': { 'money':1111, 'car':['bmo','bsj'], 'info':{ 'phone':1511111, 'age':18} } ...