zoukankan      html  css  js  c++  java
  • 生产全链路压测常态化方案

    前言

    前段时间有次大半夜熬夜写方案,顺带整理了在上家公司做性能基线和常态化压测的方案,仅供参考。

    前置条件

    全链路压测已在生产环境落地!

    流程机制

    准备阶段

    一、测试环境

    1、确认被测链路变更范围

    1. 每次版本发布或线上进行变更,都需要压测,第一步首先确认本次被测链路的变更范围,主要有如下几点:
    2. 被测链路变更范围涉及的业务场景;
    3. 被测链路对应的接口以及本次变更涉及的字段——评估需要重新准备的压测数据;

    2、表结构同步&服务发布

    1. 测试环境功能验证通过后,表结构变更到压测环境/预发环境/压测环境;
    2. 如果有多套环境,建议选择某个环境为基准环境,一切表结构变更从基准环境自动变更到其他测试环境;
    3. 被测链路对应的服务分支发布;

    3、脚本调试&数据准备

    1. 准备相关测试数据——最好能有自动化的数据准备机制,这样能节省很多时间;
    2. 复用已有压测脚本,更新本次被测链路设计的接口及脚本;
    3. 建议梳理出线上核心业务的P0-P2接口,提前准备脚本,基本是个一次性的工作;

    4、准备事项检查确认

    1. 检查测试数据准备情况,是否已完全准备好;
    2. 检查测试脚本调试结果,是否已调试通过;
    3. 建议:梳理一个checklist,形成一个长期的SOP机制;

    5、压测流量试跑验证

    1. 在测试环境/压测环境进行压测验证,确保相关变更和准备工作都已完成,避免遗漏;

    二、生产环境

    1、表结构同步&服务发布

    重复上述测试环境的步骤即可(形成机制,按照机制执行,分工明确);

    2、脚本调试&数据准备

    重复上述测试环境的步骤即可(形成机制,按照机制执行,分工明确);

    3、准备事项检查确认

    执行checklist,确保没有遗漏;

    4、压测流量试跑验证

    小范围小流量压测试跑验证,检查正确性;

    实施阶段

    1、设定SLA阈值

    压测任务正式开始前,设定并检查压测的SLA阈值,确保压测流量不会导致生产服务负载过高出现异常;

    2、执行压测任务

    按照制定好的压测任务,启动执行压测(可以设置为定时任务,避免通宵);

    3、报告汇总&过程复盘

    1. 收集压测相关数据,输出报告;
    2. review每次压测任务过程中出现的问题和不足,跟进落地后续行动;

    结束

    1、改进措施&后续Action

    确认后续Action的落地情况,不断优化过程,形成线上性能基线机制,为容量规划提供更好的决策;

    转载请注明出处,商用请征得作者本人同意,谢谢!!!
  • 相关阅读:
    磁盘挂载基本概念
    判断cache Line的作用
    map的用法
    java中关键字volatile的作用
    Java获取用户输入
    小白说编译原理lex和yacc环境配置-多图
    C++中对sprintf()函数的说明(转)
    解决VS编译DevExpress后Debug默认产生几个多余的语言包"de" "en" "es" "ja" "ru"的问题
    SqlServer发现不是默认端口1433该如何进行连接
    量化交易之接口篇 — 恒生UFX交易接口基本介绍说明
  • 原文地址:https://www.cnblogs.com/imyalost/p/15250491.html
Copyright © 2011-2022 走看看