1、全链路全链路 真场景真场景 高敏捷高敏捷多协议混合压测实战多协议混合压测实战讲 师:朱金玲目录目录1行业背景与挑战行业背景与挑战2问题分析问题分析3三大技术突破点三大技术突破点4效果演示效果演示5落地成果落地成果6瓶颈案例分析瓶颈案例分析行业背景与挑战背景:每次流量峰值呈倍数增长挑战:实时通信服务在压测中的特殊性不定时瞬时突发性高定时持续高峰实时通信服务压测实时通信服务压测面对挑战,我们想做成什么?多课程数据并发“假增量”陷阱不能模拟Redis大Key等中间件、服务问题旧方案弊端期望1.灵活扩量2.压力聚焦在单课程用户激增VS固有流量真实流量模拟期望非影子库,而是替换成测试用户。经验拍定一个值
2、旧方案弊端期望需要单场景压测手段单场景降级阈值没有手段评估抗风险能力低,可能阈值之下就挂了流量回放耗时2小时/次,只能晚上压期望告别“灰姑娘式”压测,改成白天短时压面对挑战,我们想做成什么?三大技术突破点-核心引擎场景混合协议支持场景混合协议支持动态流量动态流量扩增扩增算法算法基于算法,实现还原大key真实场景智能数据构造智能数据构造无损隔离、零侵入采取用户数据重写,非影子库方式实现数据隔离。(数据重写:通过动态替换接口中的真实用户数据为预设测试用户数据来实现隔离的方式)评估单业务负载能力“协议破壁”、“数据无影”、“流量聚变”混合协议场景压测支持混合协议场景压测支持解决业务中的多场景、多协议
3、压测需求协议共存、有序依赖统一数据结构有序依赖混合协议场景混合协议场景图示图示httptcp多角色场景构造数据流场景构造数据流动态流量动态流量扩增扩增效果效果 配置扩增倍数,克隆出多个对象在同一时间做相同操作。多个对象在同一个班组关系里,即可保证信息存储在一个大key。时间相同、空间也相同。动态流量动态流量扩增扩增算法算法原始数据智能数据构造智能数据构造无损隔离、零侵入数据重写原则数据重写原则1.用户级ID:完全替换(血肉)2.关系型ID:类型保持(骨架)3.动作时序:绝对保留(灵魂)数据重写压测只是开始,排查才是关键压测只是开始,排查才是关键链路耗时节点分析图链路耗时节点分析图精确展示各环节
4、耗时,定位性能问题压测只是开始压测只是开始,排查才是关键排查才是关键资源热点热力图资源热点热力图直观展示系统资源使用情况,快速发现瓶颈日志初步定位日志初步定位日志中展示KO提示、问题定位、性能分析平台架构全景平台架构全景落地成果与技术亮点落地成果与技术亮点4 4倍倍压测效率提升压测效率提升两周内可完成20+场景测试手写代码3天/场景1212倍倍问题定位时效提升问题定位时效提升从2小时排查缩短至10分钟定位0 0高峰期高峰期性能问题性能问题有效预防系统风险典型瓶颈发现案例典型瓶颈发现案例案例案例1 1:KafkaKafka I/I/O O瓶颈瓶颈扩节点后,压测前后延时从10秒降至10毫秒案例案例
5、2 2:场景并发:场景并发QPSQPS未达预期就延时未达预期就延时Key中的value过大。把大Key拆小key,分散了压力。案例案例3 3:单场景热单场景热KeyKey引发引发RedisRedis内存溢出内存溢出从前端降低热key触发频率,从而缓解了内存溢出的问题。可复用压测方法论可复用压测方法论前置准备前置准备流量探底流量探底(流量回放流量回放)场景覆盖(场景压测)场景覆盖(场景压测)全链路验证(流量回放全链路验证(流量回放)环境隔离、数据准备、监控配置基准测试,确定系统初始承载能力两种类型数据:上一次高峰数据&临近上课的数据多维度压测,覆盖关键业务路径端到端验证,确保整体系统稳定性灵活多
6、变的多场景解决方案灵活多变的多场景解决方案1问题复现与排查某课程反馈卡顿严重,原因未知解决方案:流量回放昨天的课程,精准复现问题场景2单模块降级策略为某模块定降级方案,确定并发阈值解决方案:单模块场景压测可得出极限值,确定降级阈值3模拟高峰流量压测流量为上一次高峰的1.5倍,新增3个功能解决方案:(上次高峰数据+近期的数据)*放大系数=本次压测数据4大规模功能测试聊天功能测试,需要模拟上千人同时聊天解决方案:利用场景测试手段,设置聊天人数1000平台平台演进方向演进方向闭环是