XXX 节日大促稳定性保障
今天来一段性能测试知识总结,从去年接手性能测试以来,本年度某节日大促保障活动准备第三轮开启了。
压测资源
- 压测工具: Jemeter
- 压测环境: 压测机, 监控 (grafana)
压测指标
- Tps(avg/max)
- 请求总量/响应时间
- 虚拟用户数
系统资源
- 了解服务所在容器的 cpu,内存规格,主机的配置
- 了解数据库的当前配置和规格;
- 了解网络的当前最大进出流量;
- 了解中间件 nginx, mq,redis;
- 了解前端/后端服务的分布;
压测流程标准化 (老图)
压测需求:
- 大促压测立项
- 历年业务数据对比/同比
- 技术指标
- 压测场景更新
- 业务场景、系统和网络资源风险和预案
场景准备:
- 大促业务占比估算
- 压测脚本管理和更新
- 采用 idea+git 管理,管理所有的生产和测试脚本;
- 采用手工上传;
目前单接口脚本支持自动生成
- 压测数据管理:
- 生产假数据和数据文件准备;
- 数据的转加密;
- 业务数据有效性 check;
- 资源配置;
压测执行:
- 压测环境初始化;
- 在线启动压测机
- 手工 jmeter 服务,启动成功后发送消息通知;
- 业务配置检查;
- 压测定时执行;
- 预执行调试脚本,检测压测环境正常;
- 配置定时压测场景脚本;
- 执行完毕后,发送压测报告链接和消息通知;
压测报告:
大促压测频率
- 3-5 次核心场景大促压测;
- 针对部分特殊场景补充压测;
大促压测当天情况
- 项目 Owner, 技术、业务、运维 - 负责人到位;
- 前一天和当天同步注意事项和产线应急预案;
- 监控: 流量监控、报警监控、资源和数据库监控;
大促压测总结
糗事:
- 删除过生产压测脚本,幸亏 git 有备份;
- 预执行未 check,导致压测脚本执行失败;
- 生产压测数据清理脚本不严谨,导致数据库出现锁;
经过多次压测,发现有很多基础设施和工具不完善:
整个大促压测,不仅考验压测专业技能,还要压测活动事前事后跟进,必须成为一个多面手,不过想成为项目 Owner,还需继续加强锻炼!
以上为本次为一些工作笔记,有兴趣可以一起讨论:+wx: feidou1113