浅谈常态化压测 | 京东物流技术团队

浅谈,常态,京东,物流,技术,团队 · 浏览次数 : 527

小编点评

## 常态化压测介绍 **1. 常态化压测定义** 常态化压测是指在某个产品或系统上进行自定义周期(常态化)的、系统自动执行的、可验证结果的压测过程。目的是检测产品或系统的稳定性、可靠性和性能,确保它们能够在不同的场景下正常运行。 **2. 常态化压测实践** **2.1 准备阶段** * 获取基线值数据 * 压测脚本、场景、数据模型准备 * 准备压测环境 * 制定压测计划 **2.2 执行阶段** * 执行压测脚本 * 记录数据 **2.3 调优阶段** * 以7-10天为一个周期,记录数据 * 不考虑特殊节日、特殊活动的场景,验证基线数据的可信赖性 **2.4 复盘阶段** * 经过一段时间的常态化压测,需要对整个流程和结果进行复盘 **3. 常态化压测总结** * 建议覆盖场景 可以根据自己所负责的业务进行考量,如果不会出现很大流量的情况下,建议覆盖日常场景即可满足需求;如果需要考虑大流量并发的场景,建议覆盖日常的基础上,在覆盖极限的场景

正文

一、常态化压测介绍

1.什么是常态化压测

常态是指:“正常的状态”;“化”在这里是表示转变为某种性质或状态。

“常态化”的含义就是:趋向正常的状态。

那么常态化压测顾名思义就可以解释为,让压测趋于正常的状态,趋于合理;因此通过调研给了如下定义:常态化压测是指在某个产品或系统上进行自定义周期(常态化)的、系统自动执行的、可验证结果的压测过程。目的是检测产品或系统的稳定性、可靠性和性能,确保它们能够在不同的场景下正常运行。

2.为什么要进行常态化压测

随着业务的不断增长,支撑业务系统的压力也逐渐增加,会面临如系统越来越厚重、逻辑越来复杂、迭代节奏越来越快等繁杂的情况。我们当前并没有做到在每次变化时快速识别出性能风险,检测产品或系统的稳定性、可靠性,而且我们还在不断的投入人力成本在压测这件事情上也是不合理的,所以我们要将性能验证融入到我们日常的工作中,把压测做到常态化,做成平常的一件事。

3.常态化压测的价值

  • 快进快出,最小单位安排压测任务,减少人员投入
  • 尽早识别性能波动,避免风险后置
  • 可复用性高,压测模型、业务模型可复用
  • 业务可用性保障

二、常态化压测实践

1.常态化压测流程介绍

借助泰山平台中的Forcebot工具,进行常态化压测执行。设置常态化压测任务,配置压测执行计划,按照预设的数据模型、基线值等进行执行。在累积一段时间的压测结果后,可以对基线值、压测目标进行调整和调优,然后继续进行自动化周期性的压测。同时跟进结果,及时关注最近业务和系统的变化。

  • 明确压测目标

明确常态化压测的目标,可以区分日常和极限两个场景。根据不同的场景设置不同的压测目标,第一次实践以单接口的日常流量为主,观测日常流量下的性能波动,确定正常范围值。

  • 常态化计划

根据接口的优先级,接口服务的流量,日常迭代代码改动的频率,设置对应的计划。核心接口、流量较大、代码改动频繁的接口,常态化压测的周期建议短一些,可以一周1-2次,且放在每次上线后进行;如果是非核心、流量小的接口,可以每周或每双周进行一次。

  • 压测前期准备

确定测试场景根据实际场景,设计压测场景,包括用户数量、请求类型、请求频率、请求参数等,以尽可能模拟真实的业务场景。编写压测脚本,设置按照真实请求数据比例设置参数化,以便于进行自动化测试。

  • 压测中期关注

在压测过程中,主要是无人值守的状态,所以需要提前识别压测可能带来的风险,以及面对不同的风险需要采取的措施。

同时还要关注压测过程中如果出现性能波动,系统发出的预警方式是否及时、预警内容是否准确。

  • 压测后期跟进

每次常态化压测计划执行后,都需要关注本次的结果:① 结果符合预期,则要关注下指标的波动; ② 若结果并不符合预期,则要刨根问底,找到问题的所在; ③ 跟进问题直到解决,解决后重新验证。

  • 辅助功能-流量染色

流量染色指根据流量协议,设置对应的流量染色规则,对指定的流量进行染色标记,并在整个调用链中携带该标记。

通过流量染色,可以实现压测流量隔离,同时可以保证日常压测对生产流量无影响。但是对于常态化压测来讲,流量染色并非必须,而是锦上添花的功能,可以进一步保证我们的流量对生产无影响。

2.首次进行常态化压测实践

2.1 准备阶段

① 获取基线值数据

② 压测脚本、场景、数据模型准备

③ 压测环境准备

④ 压测计划制定

2.2 执行阶段

2.3 调优阶段

以7-10天为一个周期,记录数据。不考虑特殊节日、特殊活动的场景,验证基线数据的可信赖性。如发现高于30%的概率,每天的数据都不符合基线值,可调整基线值的浮动范围,以保结证结果在日常值的范围内。

调优的过程也要关注,在数据统计过程中代码的改动,如果确定是代码的改动影响了整体的性能,这就要根据实际的场景和影响范围进行评估。

2.4 复盘阶段

经过一段时间的常态化压测,需要对整个流程和结果进行复盘,好的复盘结果能够帮助我们避免后续的一些“坑”。参与常态化压测的所有人员一起,主要关注一下几个方面:

① 数据是否正确,是否达标,是否可信赖

② 常态化压测流程、计划相关问题

③ 压测过程中的性能问题总结

三、常态化压测总结

① 建议覆盖场景 可以根据自己所负责的业务进行考量,如果不会出现很大流量的情况下,建议覆盖日常场景即可满足需求;如果需要考虑大流量并发的场景,建议覆盖日常的基础上,在覆盖极限的场景。

② 关注风险控制 常态化压测要做到的是模拟生产真实场景,实现日常自动化压测,尽量做到无人值守,所以提前识别出可能的风险是非常必要的,同时要列出不同的风险项对应的举措。

③ 常态化压测只是辅助验证业务性能的一种手段 不是说我们进行常态化压测之后就不需要进行性能测试了,两者之间是没有冲突的。

寄语:每个人负责的工作是不同的,不同人会有不同诉求,对同一件事也会有不同看法,不过苏轼有句话:“犯其至难而图其至远”,意思是说“向最难之处攻坚,追求最远大的目标”。只希望我们能在工作中克服各种困难,去实现最长远的、可持续的目标。

作者:京东物流 冯海艳

来源:京东云开发者社区 自猿其说Tech

与浅谈常态化压测 | 京东物流技术团队相似的内容:

浅谈常态化压测 | 京东物流技术团队

随着业务的不断增长,支撑业务系统的压力也逐渐增加,会面临如系统越来越厚重、逻辑越来复杂、迭代节奏越来越快等繁杂的情况。我们当前并没有做到在每次变化时快速识别出性能风险,检测产品或系统的稳定性、可靠性,而且我们还在不断的投入人力成本在压测这件事情上也是不合理的,所以我们要将性能验证融入到我们日常的工作中,把压测做到常态化,做成平常的一件事。

低代码平台如何借助Nginx实现网关服务

摘要:本文由葡萄城技术团队于博客园原创并首发。转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。 前言 在典型的系统部署架构中,应用服务器是一种软件或硬件系统,它承载着应用程序的核心逻辑。它接收客户端的请求并处理相应的业务逻辑、数据操作等任务。应用服务器通常被

7个工程应用中数据库性能优化经验分享

摘要:此篇文章分别从sql执行过程、执行计划、索引数据结构、索引查询提速原理、聚焦索引、左前缀优化原则、自增主键索引这些角度谈一谈我们对数据库优化的理解。 本文分享自华为云社区《工程应用中数据库性能优化经验小结》,作者: 叶工 。 1、前言 现阶段交付的算法产品,绝大多数涉及到数据库的使用。它承载的

浅谈如何向上管理

最近听说了很多事,加之目前自己也处在被汇报以及需要向上汇报的状态中间,迫使我开始思考向上管理(managing up)这个话题。这是一个有争议的话题,很多人(包括曾经的自己)下意识的会将向上管理与徒有其表的讨好或者迎合这类负面词划上等号。借此契机在查阅了很多资料之后,才意识到它不过是一项职场软技能而已。

[转帖]浅谈系统稳定性与高可用保障的几种思路

https://segmentfault.com/u/dewujishu 一、前言 高并发、高可用、高性能被称为互联网三高架构,这三者都是工程师和架构师在系统架构设计中必须考虑的因素之一。今天我们就来聊一聊三H中的高可用,也是我们常说的系统稳定性。 本篇文章只聊思路,没有太多的深入细节。阅读全文大概

[转帖]浅谈RAID写惩罚(Write Penalty)与IOPS计算

介绍 通常在讨论不同RAID保护类型的性能的时候,结论都会是RAID-1提供比较好的读写性能,RAID-5读性能不错,但是写入性能就不如RAID-1,RAID-6保护级别更高,但写性能相对更加差,RAID10是提供最好的性能和数据保护,不过成本最高等等。其实决定这些性能考虑的因素很简单,它就是RAI

[转帖]浅谈RAID写惩罚(Write Penalty)与IOPS计算_文字版

https://www.cnblogs.com/IvanChen/p/4491984.html 介绍 通常在讨论不同RAID保护类型的性能的时候,结论都会是RAID-1提供比较好的读写性能,RAID-5读性能不错,但是写入性能就不如RAID-1,RAID-6保护级别更高,但写性能相对更加差,RAID

[转帖]张磊:浅谈容器网络

https://zhuanlan.zhihu.com/p/595014129 你好,我是张磊。今天我和你分享的主题是:浅谈容器网络。 在前面讲解容器基础时,我曾经提到过一个Linux容器能看见的“网络栈”,实际上是被隔离在它自己的Network Namespace当中的。 而所谓“网络栈”,就包括了

[转帖]浅谈Armv8-A处理器

https://www.elecfans.com/emb/dsp/202208291886182.html 众所周知,ARM是一家设计并授权处理器和相应IP(比如互连总线,中断处理器,图像处理器等等)的公司,目前其处理器产品分为三类: Cortex-A系列:这个系列主要是应用(Application

[转帖]浅谈Redis大Key与热Key

https://www.cnblogs.com/jelly12345/p/16424080.html 如何定义大 Key 和 热 Key 如何定义大 Key 如何定义热 Key 大 Key 和 热 Key 产生的原因 大 Key 和 热 Key 有哪些危害 大 Key 的危害 热 Key 的危害 如