大促压测保障提质增效实践
如果无法正常显示,请先停止浏览器的去广告插件。
1. 大促压测保障提质增效实践
周辰晨
2021.12.04
ECUG Meetup 第 3 期
2. 讲师简介
周辰晨
曾服务于京东、平安等互联网公司,曾负责亚洲一号性能测试
工作,目前在近百人测试团队担任测试委员会负责人,负责全
链路性能测试、测试效能以及测试团队职级管理工作。
拉勾教育app《说透性能测试》专栏作者,付费订阅人数10000+
ECUG Meetup 第 3 期
3. 01 压测的痛点问题
C
ECUG Meetup 第 3 期
目
录
02 解决之道
03 线上全链路压测体系
04 提质增效的核心
4. 压测有哪些痛点?
目 标 不 合 理
组
织
难
• 一句话需求 • 没有共同的价值目标
• 认知的不统一 • 部门墙
• 压测人员的组织
• 监控不健全
监 控
不 健 全
• 缺少系统性监控
结 果 不 真 实
• 代表当前环境的测试结果
• 不具备深入追踪能力 • 推导不靠谱
• 用户访问数据模型
ECUG Meetup 第 3 期
5. 性能测试有哪些痛点?
某宝之痛“2013年以前的双十一要花6个月准备战场,2个月打扫战场”
2012年 6月-10月
2012年 11月11日 零点高峰
用户被重复付款
近三百人
商品超卖
优惠券不生效
复盘
线下性能测试环境结论不靠谱
集合各个BU
集中式论证
集中式开发
5个月+
专项性能测试
ECUG Meetup 第 3 期
6. 性能测试有哪些痛点?
“某宝之痛”告诉我们什么?
真的痛
真的难
真组织
• 投入产出的极度不平衡 • 线下压测结论并不靠谱 • 由上而下的组织
• 客户不信任 • 线上压测行业空白 • 由下而上的驱动
• 行业茶余饭后的谈资 • 风险系数极高,内部不统一 • 调动各bu资源
ECUG Meetup 第 3 期
7. 解决之道
器:工具
器
如何快速发起压力
如何避免压测客户端瓶颈
如何进行压测协作
术
法
术:策略
测试分析
场景梳理
执行策略
法:组织和沟通
道
人和事
道:认知文化
开展有效压测的前提
本轮压测的目的是什么
ECUG Meetup 第 3 期
8. 解决之道:道和法
团队的认知以及担当
业务的必要性
• 故障导致品牌和经济损失
• 容量收缩带来成本收益
业务和技术的平衡
• 团队认知的高度 • 业务价值是公司使命
• 敢于承担风险的勇气 • 技术追求是个人使命
• 体验与营收存在关联
法->组织和沟通
角色和资源
• Owner的职责
• 协同的资源
ECUG Meetup 第 3 期
流程规划管理
• 项目阶段定义
• 项目时间定义
9. 解决之道:术
流量模型
数据分析
某些做法
套用模版
根据变更改接口描述
时间和人力安排
ECUG Meetup 第 3 期
部署
监控
10. 案例分析
为什么你做了线上全链路压测依然不能对结果负责?
小明经过数轮通宵压测以及团队调优,压
测的Tps达到了12000,而在实际大促过程中
Tps5000时网站就宕机了,你会从哪些角度进
行复盘?
ECUG Meetup 第 3 期
11. 术:流量模型演进
初期
成熟期
成长期
预期
300000000
250000000
首页
200000000
150000000
商品详情
100000000
接口M_A
50000000
marketing
服务
流程压测
二八原则
支付
支付结果
订单
详情
ECUG Meetup 第 3 期
•
•
• 流量复制
更真实
场景多元化
•
• 痛点
数据安全
• 数据加工
接口M_B
加购物车
0
shopcart
服务
接口S_A
gateway
order服务
接口A_B
search
服务
promotio
n服务
12. 术:数据分析
04
02
01
增量数据分析
增量数据的激增
基础数据分析
没有铺垫数据的影响?
冷热数据分析
03
参数化数据分析
数据的来源
以电商业务背景为例,数据还需要分析什么?
铺底会员数据如何分布?
购物车数量分布?
下单商品类型?
ECUG Meetup 第 3 期
对性能测试结果造成的实
际影响
13. 术:部署结构分析
为什么要做部署分析?这张图够了吗?
关键要素
服务器配置
部署在哪里
节点数量
ECUG Meetup 第 3 期
14. 术:监控策略
硬件监控
cpu、内存、磁盘、网络
APM 应用层监控
接口调用量、时延、
耗时链路分析
业务监控
业务报错信息,下单数、
支付数、履约率、GMV等
系统健康值
综合性指标,根据系统的报错,
如日志,状态码及结合时延
等给出的分数值,方便第一时间了解
系统运行情况。
ECUG Meetup 第 3 期
15. 术:微服务应用层监控演进
早期
JVM监控
发展期
接口链路聚合
成熟期
客户端到服务端
追踪到单请求
ECUG Meetup 第 3 期
16. 注意事项
ECUG Meetup 第 3 期
网关层 中间件
数据层
流量入口 极其危险的层面 性能问题的高频区
迭代慢,容易忽略 连接数,流量统计,可用性 结合业务寻找最优解
流量高,寻找相对损耗 注意弹性扩容的影响,牵一发动全身 理论要结合实践
17. 术:硬件资源监控分层
物理机层
A
ECUG Meetup 第 3 期
虚机层
B
容器层
C
18. 如何开展体系化压测
压测成熟度演进
!"#$%
!'()*
ECUG Meetup 第 3 期
!"()*
!"&$%
19. 线上压测技术实现思路
压力机
压测系统
1
压测流量
Agent
正式流量
网关
缓
存
写
入
正式key
业务应用
正式Topic
RocketM
Q
影子key
1
挡板
Agent
影子Topic
业务应用
4
2
第三方
系统
3
2
数据库
白名单
写
入
正式表 影子表
不做系统改造能进行线上压测吗?
非常熟悉业务
ECUG Meetup 第 3 期
用户组设置
标签能够穿透和记录 理清库表日志等
各类数据清理还原
20. 组织和技术双驱动
业务
测试
研发 促销规
则业务 基线达
标
运维 容量达
标灾备
演练 大促弹
性扩缩
容
15.5
ECUG Meetup 第 3 期
21. 新的问题
过份依赖线上全链路压测导致内耗过高,能效降低。
排查逻辑复杂度
ECUG Meetup 第 3 期
时间复杂度
流程复杂度
22. 压测的左移和右移
左移到什么阶段?
开发完成自测
业务阶段测试
右移:大促值班干什么?
ECUG Meetup 第 3 期
左
移
的
手
段
基 线 的 建 立
流 程 固 化
平 台 赋 能
右移:大促数据分析
实 时 监 控 业务数据沉淀
体 验 问 题 技术数据沉淀
内 部 报 错 群 测试模型优化
23. 平台化
固化
自动化
工 具 化
平 台化
价值体现
输出
稳定可靠
想清楚
ECUG Meetup 第 3 期
驱动力
技术栈
收集问题
(需求)
认同
人员
24. Q&A
个人微信
ECUG Meetup 第 3 期
公众号
25. 谢谢
ECUG Meetup 第 3 期