亿级流量背后的可靠性保障方案

如果无法正常显示,请先停止浏览器的去广告插件。
分享至:
1. 亿级流量背后的可靠性保障方案 分享人:王紫薇
2. 个人简介 • 姓名:王紫薇 • 所在组织:搜索事业部 • 专业领域:主要负责一级引擎测试
3. 目录 01 02 • 背景介绍 • 线上稳定性保障——容量测试 03 • 线下性能测试实施
4. 搜索特点 架构复杂 业务复杂 分布式、集群化、机器多、 整条服务链路长,涉及服务多,服务相互 在线部分数十个服务部署在两地四中心的上 依赖,服务内部自适应动态调整策略多 万台机器上 流量高 性能和稳定性 要求高 性能敏感 单日pv高、需求广泛、高时效性,百亿网页 服务性能p99毫秒级别,明显影响用户体 百万级别的日志数据 验,用户容忍度低,要求服务高可用
5. 保障场景 01 日常更新 02 计划变动 03 突发事件 服务版本日常迭代更新上 机器更新: 线上故障: 线:模型、策略 系统更新,硬件更新 机器故障、服务异常、异常告警 新服务上线, 架构变动: 流量突增: 当前服务资源与上下游服务 服务链路发生变动对资源消 紧急响应,紧急扩容 是否能承载 耗的影响
6. 线上稳定性问题 整体服务的容量是多 少 每个服务的容量和余 量 哪些服务成为链路的 瓶颈 紧急情况下的预案 服务是否需要扩容, 扩容多少,怎么扩容
7. 线上稳定性保障 容量 余量 方案制定 组织团队、确认预期、准备数据 测试过程 压测执行、观察监控、验证预期、 记录问题 预案 预案 测试结论 复盘异常、推进优化、优化验证
8. 线上稳定性保障——容量测试
9. 整体流程 准备 测试执行 测试结论
10. 准备阶段 目标确立 1 压测目标:从哪里验证?何时验证? 重点验证点:对重点改动事项做预估 期望达到的容量 异常处理方案 2 目标:尽量不要让非主流程服务影响整 体压测 单点问题:发现问题时下掉 资源不够,可动态扩容:影响整体指标 后,记录,并扩容 压测数据 3 目标和要求:模拟线上用户行为模型 方式:线上日志解析+动态数据集补充 熔断、降级、扩容
11. 压测数据 线上流量回放 01 来源线上真实用户行为 根据压测目标确定获取线上数据服务 动态数据集 02 强时效性 泛时效性 时效性 意图识别 Query特征 Query改写 分类 QUERY 筛选 染色 常规流量 特殊逻辑 特殊字符 异常累积 异常 QUERY 命中各种策略逻 辑 策略 QUERY
12. 终止条件 对比目标 指标维度 对比目标 超预期很高时终止 服务器指标:coredump, error… 服务指标:p99, p90, p50, avg 指标维度 业务指标:坏结果率,重试qps, 策略 服务层面 触发率… 进程指标:cpu,内存等资源消耗 服务层面 主流程服务:严重影响性能、效果 非主流程服务:无法实施降级、停止,并且影响了 整体的性能时终止
13. 监控指标
14. 整体流程 准备 测试执行 测试结论
15. 压测执行 环境准备 01 观测监控 05 告警屏蔽、 异常情况解决方案、定位、目 外部服务调用:关闭广告、收费方案 标验证 执行阶段 集群环境:日常资源消耗任务保留、保 证服务正常上线、 环境验证 试探线上余量,加压保持时间 压测预热 填充基础cache 增量加压 04 02 03 增量加压到线上水平, 保持稳定运行 梯度发压:每次增加压力梯度 不要太高,避免流量的陡增 间隔
16. 压测平台
17. 压测平台 • 参数配置: 预制basic.jmx+插件.jmx通过模板语 法来动态组合 • Jmeter指标收集: 通过InfluxdbBackendListener来实现 • 压力机和服务器指标收集: 通过Telegraf(数据采集工具)
18. 压测执行 环境准备 01 观测监控 05 告警屏蔽 异常情况解决方案、定位、目 外部服务调用:关闭广告、收费方案 标验证 执行阶段 集群环境:日常资源消耗任务保留 环境验证 试探线上余量,加压保持时间 压测预热 填充基础cache 增量加压 04 02 03 稳定运行 梯度发压:每次增加压力梯度 不要太高,避免流量的陡增 间隔
19. 整体流程 准备 测试执行 测试结论
20. 效果 数据支撑 摸清线上容量情 况,对后续的产品 策略提供了数据支 撑 隐患暴露 性能问题、机器资 源问题、服务代码 问题、环境问题等 流量空间 推动资源扩容、代 码优化、资源合理 分配,提高了整理 流量空间 异常机制 推进服务优化、建 立分级降级方案、 熔断机制等
21. 线下性能测试实施
22. 线下性能测试 环境准备 环境治理 性能目标 Mock的应用 压测数据 压测执行 构造数据集 多种执行方式 线上流量录制 灵活的机器配置 测试报告 自动化报告
23. 压测平台 多种执行方式 支持通用压测文件执行外,可以根据不同服务的特殊需求,使用自定义jmx文件,或者直 接使用录制文件进行流量回放。 自定义jmx 倒流压测
24. 压测平台 多种执行方式 支持通用压测文件执行外,可以根据不同服务的特殊需求,使用自定义jmx文件,或者直 接使用录制文件进行流量回放。 灵活的机器配置 一键添加压力机,压力机动态化,上下线更灵活,支持私有压力机
25. 自动化测试报告 自动化: 人工分析过程形成一套可自动化执行的流程,压测完成之后直接生 成报告,给出性能结论,性能问题直接定位 可配置: 自动化测试报告可自由配置重点关注指标、指标阈值,根据服务 灵活 配置 可用性: 提供整体测试结论、详细指标在各个维度上的具体结果; 展示服务端、压测端、部署机器的指标信息; 支持压测结果在绝对阈值上的结果、new/base环境的性能diff结果; 可视化统一图表展示,结果便于观察
26. THANK YOU

首页 - Wiki
Copyright © 2011-2024 iteam. Current version is 2.134.0. UTC+08:00, 2024-10-06 09:39
浙ICP备14020137号-1 $访客地图$