京东618/双十一大促压测实践
马鑫 京东 测试开发工程师
京东大促压测实践之路
发展历程
• 压测的目的与意义
• 京东压测历史变迁
• 京东压测技术变革
压测实践
• 场景化压测实践
• 链路化压测实践
• 全链路压测实践
平台建设
• 压测平台的特性
• 压测平台工作原理
• 压测解决的问题与规划
压测的目的是什么?
验证软件系统是否能够达到用户提出的性能指标,同时发现软件系统中存在的性能瓶颈,优化软件,最后起到优化系统的目的
----百度百科
应用
数据库
中间件
服务
其它
我们关注什么?
WEB
服务
中间件
数据库
首页
支付
频道页
商品页
结算页
购物车
针对单一组件
针对调用链路
针对业务场景
压测评估的原因与意义
应
用
层
服
服
务
务
层
层
存
储
APP1
APP1
APP2
APP3
APPn
Service1
Service2
Service3
ServiceN
应用A
应用B
应用C
应用D
应用E
应用F
Cache
DB1
DB2
应用F
应用A
应用A
应用B
应用C
应用C
应用D
应用E
应用F
应
用
应用B
A
应用B
应
用
应用D
C
应用D
应用E
应用E
应用F
应用F
京东性能测试发展的四个阶段
线下测试
线上测试
场景化
链路化
• 瓶颈定位;
• 性能调优;
• 在线读流量;
• 服务的分层评估;
• 系统链路;
• 在线写流量;
• 单业务场景;
• 业务链路;
• 线上容量预估;
• 在线分组流量
• 混合业务场景;
• 全链路;
• 在线跨机房流量;
系统流量分析
生产流量
京东数据中心
首页 频道页 列表页 商品页 购物车 结算页 支付 仓储 配送 售后
订单前
生产流量
订单后
40000
20000
0
流量
憋洪演练
憋洪&泄洪
订单
管道
预分拣
憋洪&泄洪
任务分发
MQ消息
MQ消息
下游系统(系统、机房、分组)
流量?
意义?
风险?
生产环境摘机器引流评估
互联网
生产流量
100
80
60
40
20
0
70
10
9台
71
25
8台
Docker1
Docker4
Docker7
Docker
TPS
70
45
Docker2
Docker5
Docker8
Docker3
Docker6
Docker9
应用集群(线上集群)
72
60
85
70
6台
5台
4台