Heme:Juejin
原始:两个权利(微信公共帐户ID:CODEK_LEE),欢迎分享,请保留此声明,以供非公开帐户重印。
在过去的一年中,一个新项目参与了团队。该项目主要用于制定用户流量。它可以理解为AB检验的原则。我们根据AB测试进行扩展。支持策略配置,规则配置,特征性获取,战略性静态资源分配,特征动态,决策树等。流量决策系统执行业务交通决策,并将各种战略规则的配置结合到提高业务转换率。
因为它始终集中在需求发展上并忽略了稳定性,因此首先是标准化的稳定性结构。制定一些有效的规范可以允许开发避免许多凹点。压力测试是稳定性的更重要的联系,并且可以理解系统通过它的操作能力。
粗糙版本系统体系结构:
电压测试通常是指性能压力测试。通过压力测试,可以理解系统的稳定性和性能,并且系统通过压力测试结果调节。
例如,我现在完成的交通决策系统一直忙于需求开发。似乎在网上运行是一件好事,但是我的心中总是没有底部。这些是不合理的。
通过压力测量,我们可以清楚地理解系统的每个操作指标,例如机器负载,QPS/TPS,响应时间等。这可能知道系统的系统,以便进行。系统调整可以根据到压力测试结果。
从我的压力测试过程的角度来看,有几个角色参与:
离线压力计量是非生产压力测试,例如我们通常的局部接口压力测试,或选择预测试环境以确保线路的稳定性。这些是离线压力测试。可以通过Jmeter,Apache AB和其他工具进行。
离线压力测量环境(例如服务器配置,网络,节点的数量等)与在线完全不同,仿真不高。而且很难执行完整的链接压力测试,并且数据只能进行数据用作参考,这不是真实和可靠的。
在线压力测试规范是生产环境的压力测试。我们可以分为多种方法来施加压力测试,例如阅读压力测试,写作压力测试,混合压力测试,还可以使用隔离群集或单个机器压力测试。有些机器被删除,在线流量无法输入,然后压力测量流向拆卸机的压力流更安全。
在线压力测试应以完整的链接压力进行,因为可能会有一个非核心呼叫导致整个系统遇到问题,因此为了确保应通过完整的压力测试的真实性- 链接压力测试。
不能盲目按下压力测试,并且无法通过肉眼来感知系统的操作。因此,必须配置监视警报和运行市场的系统。监视警报可以帮助我们实时监视系统的某些指标。运行更广泛的系统可以帮助我们在系统压力测试期间了解运行能力。
因此,在开始压力测试之前,请务必检查系统中的基本监控是否完美,如果缺失,则应及时补充它。如果没有系统运行更广泛的市场(图表系统运行状态),在压力测试之前配置一个,以实时检查系统的工作能力和记录电压测量数据。
在上一个介绍中,我在压力测试过程中提到了几个角色。此外,应该通知系统的上游。最好将每个人都吸引到一个小组中以促进沟通和沟通。我们不会悄悄地为自己施加压力,然后没人知道当有问题时,每个人都充满外观。我们需要协调各方准备准备的资源。
通知系统的上游和下游是使其准备。
如果您不知道自己不知道压力测试,那么当您执行压力测试时,他们会致电您的接口超时并报告错误。系统加班是什么?看看
它会影响呼叫者对系统的信任。该系统是如此不稳定。有人敢在将来使用它吗?
如果未通知下游,并且您不知道压力测试,请参加我的压力测试,我们的主要压力测试是阅读请求。获得策略结果的接口可能会查询多个不同的功能,内部值将多次与功能系统进行交互。然后,当您使用100 QPS进行压力测试时,您的下游功能系统可能是1000 QP。为什么这是?因为这是通常称为“阅读和发布”的内容。系统中的一个请求可能会多次请求下游侧。在这里,您必须更加关注。最好评估在压力测试之前可以将界面扩大到下游的次数。这样,下游的准备和估计是可能的。不要测试您的系统以使系统故障,您将亏损。
我们必须在执行任何操作之前确定目标,而压力测试也是如此。我们需要确定目标并朝着目标迈进。时间不应超过太多等等,以使电压测试目标具有定量标准。这需要其自己的系统进行评估,这是根据下游的系统状态确定的。
准备测试同学的下一个场景。此场景指定接口的数据。例如,如果执行接口,则该接口将有所不同,并且内部会有不同的调用逻辑。在这里,我们需要通过输入参数来列出几个方案。
确定测试类型:
确定压力方法:
准备环境时有必要构建和配置系统。编写和调试测试脚本。我使用这次使用的内部压力测试平台,因此无需构建压力测量环境,只有已准备好的脚本供测试用。
在压力测试之前,您必须验证是否可用脚本,并且需要注意配置在线配置的压力测试数据是否正确。这次我遇到了它。测试脚本没问题,但是在线压力测试数据配置不正确。在压力测试过程中,有很多问题,而不是预期的结果,从而延迟了压力测试的进度。
压力测试的执行是指根据我们制定的压力测试方案的各种压力测量场景和压力测试任务的实施,并确定系统是否通过观察和监视系统资源,数据库,缓存和数据库,缓存和监视系统是否满足压力测试目标消息队列。在数据测试进行记录和分析的测试中,形成了压力测试报告。
以下几点摘要:
在系统压力测量之后,我们将找到一些系统瓶颈,在系统优化之后将得到改进。但是,仍然存在一些潜在的风险,例如网络抖动和机器功率。为了防止此类问题,紧急计划需要适用于某些情况。
紧急计划的制定可以根据级别对系统进行分配,每个级别都对应于负责人以制定某些紧急措施的人。例如,如果访问层,如果发生故障,我该怎么办,是否是切割,保险丝,降级或业务隔离。
这次,我们使用公司内部的压力测试工具Ultron压力测试平台,该平台支持接口级别的压力测试,全链路压力测试,仿真量化,容量估计等。如果公司内部没有压力测试工具,请请参阅操作工具。
Jmeter是Apache开发的基于Java的性能压力测试工具。它用于对Java开发的软件进行压力测试。它用于测试静态,动态资源,HTTP服务器等。
Jmeter可用于模拟服务器,网络或对象的巨大负载,测试其强度并分析不同类别下的整体性能。
AB是对HTTP进行性能压力测试的工具。用于测试所有一般HTTP服务器的性能。
欢迎大家一起交流
电子邮件:644968328@qq.com
微信:LX6688S
github:https://github.com/li-xiao-shuang
原始:https://juejin.cn/post/7096711953678073893