大麦pro动态压测介绍
大麦pro对于压测做了非常完善的处理,能够通过不同的参数,来进行动态的压测,来模拟生产中的实际业务场景。
包括延迟队列的延迟关单、节目详情的阶梯加压、生成订单的随机下单等。
又针对了不同的版本,来进行压测,来对比不同版本下的性能提升。
延迟关单的动态压测
对于大麦pro来说,其中重要的一个功能就是 延迟关单 了。针对此功能,通过延迟队列来实现,所以对于此队列分别调整了不同的参数,来进行压测:
-
消息的分区数:通过调整分区数,来压测不同分区数下的消息消费能力
-
消息消费的核心线程数:通过调整消费的核心线程数,来压测不同线程数下的消息消费能力
参数1:

参数2:

通过每次调整不同的参数,来进行压测,得出不同参数下的执行效率的提升指标
节目详情的动态压测
为了模拟生产中的实际业务特点,比如:从某个值开始不断增加压力,直至达到某个值,然后持续运行一段时间, 这就是属于 阶梯加压 的类型,而 Jmeter 中的线程组 Stepping Thread Group 就支持这种阶梯加压

参数解释:
-
this group will start:表示总共要启动的线程数;若设置为 100,表示总共会加载到 100 个线程
-
first,wait for:从运行之后多长时间开始启动线程;若设置为 0 秒,表示运行之后立即启动线程
-
then start:初次启动多少个线程;若设置为 0 个,表示初次不启动线程
-
next add:之后每次启动多少个线程;若设置为 10个,表示每个梯次启动 10 个线程
-
threads every:当前运行多长时间后再次启动线程,即每一次线程启动完成之后的持续时间;若设置为 10 秒,每梯次启动完线程之后再运行 10 秒
-
using ramp-up:启动线程的时间;若设置为 1 秒,表示每次启动线程都持续 1 秒(和基础线程组的ramp-up一样意思)
-
then hold load for:线程全部启动完之后持续运行多长时间,如图:设置为 30 秒,表示 100 个线程全部启动完之后再持续运行 60 秒
-
finally,stop/threads every:多长时间释放多少个线程;如图:设置为 10 个和 2 秒,表示持续负载结束之后每 2 秒钟释放 10 个线程
图中的整个梯度压测流程为:
-
从第0秒开始启动线程,每 1 秒内启动 10 个线程并且运行 10 秒,以此循环,直到一共启动了 100 个线程
-
当已启动 100 个线程后,持续运行 30 秒
-
持续运行 30 秒后,每 2 秒释放 10 个线程,一直到全部线程被释放
生成订单的动态压测
在真实的场景中,对于一场热门的演唱会来说,肯定是会高并发的购买不同的票档和座位,为了模拟这种真实的场景,特意开发了一个动态压测的功能
能够随机的通过 不同的票档、不同的座位,来进行下单购买
CSV Data Set Config 是 JMeter 提供的压测组件,可以读取 CSV 中的动态数据,来实现动态参数的压测
