高级性能测试系列《38.Arrivals Thread Group、ConcurrencyThread Group、终极线程组》

news2024/11/16 16:40:41

一、面向目标:Arrivals Thread Group

需求:要做一个秒杀, 能支持1000个人同时秒杀,我们的系统不能崩溃。

de9d869182b2bf4824de4e9bab4bf980.png
错误案例示范

1秒内的人数的运行是有先后的,1000个人在1秒钟内启动,运行完毕一次就停掉了。

cec62e45db6a61e7649dd4715fbf4abf.png

由图可以看到,有的response是几十毫秒或者几百毫秒都可以处理完毕。有时候几十毫秒处理完毕后就停掉了,所以没办法保证有一千个人的。

  • 可以理解为:1000个人访问我们系统,持续运行,系统不能崩溃,响应时间也不能过长。运行的时候,有些人运行得很慢,有些人运行得很快,但是不能出现报错。

  • 用户对秒杀的理解:我要在1秒钟内收到处理结果,也就是1000tps。只要服务器1秒钟能够处理1000个事务,不管有多少人。发过来1000个事务,就处理掉一千个事务。

1秒钟产生1000个线程数,导致服务器压力特别大,服务器出现异常,服务器出现异常是因为请求量特别大而出现的,并不是服务器的处理能力不行。

因为在做性能测试之前,并没有持续向服务器发起请求。

真实的情况,在秒杀之前,肯定有很多人已经登上了服务器了。

绝对不是服务器处于空闲的状态,突然来了1000个秒杀。

二、面向目标:Concurrency Thread Group

a16fe9a8326b3a0e9c3009a59e55857f.png
看系统能不能支持100个并发用户
eb6b2088ff9646711e51e9012f3ced7a.png
达到100了
3df9cb5c562999be8b1b502718c3d489.png
TPS值只有18-20左右
0fd926dfcd2a9ee6d4c1958797923b43.png
在一百个并发用户数的时候,每个接口的请求响应时间达到5秒多

你说这个系统能不能支持100个并发用户?

100个人登录系统,每个接口的请求响应时间要5秒多钟才给你返回回来,用户的角度来说,是不能被接受的。

说明这个系统不能支持100个并发用户数。

三、波浪型场景:Ultimate Thread Group(终极线程组)

  • 有时间规律:波浪型Ultimate Thread Group  终极线程组。

    • 第二行,起始时间  要 大于等于 前一行的所有时间之和(例如上班和下班,中间是有上班停顿的时间,这个时间是可以不操作的,那么就把“初始化延迟启动时间”设置的久一些)。

84d8808184ef77a56be309fe4dc7b960.png

阶梯线程组每次只能设置相同步长的,如果要设置不同步长,如何设置?

a1b7f143e702c7be0febd088c4502d65.png
增长的人数是不相等的。

这波浪型场景也是可以设计阶梯线程组的。

56ec509f0094303e197e019784c6d595.png

补充

不同的企业追求的性能指标不一样,有的企业的项目追求tps值,有的企业的项目追求最大并发用户数,不同的企业的项目求的不一样。

Arrivals Thread  :达到多少率,tps。

Concurrency Thread:达到多少人,并发数。

ngrinder只能设置固定人数,因为它是自动分配的。

脚本链接:

链接:https://pan.baidu.com/s/1wROVT9dNH-Y-Bm2xTYVPYA?pwd=1234 提取码:1234


文章中的图片,皆为小编本人所画所截图,计算机知识都一样,如有雷同,纯属巧合。「文章是清菡编写的,如有转载,请标明出处!」

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/175036.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Cadence PCB仿真使用Allegro PCB SI查看仿真波形的方法图文教程

🏡《Cadence 开发合集目录》   🏡《Cadence PCB 仿真宝典目录》 目录 1,概述2,拓扑提取阶段仿真方法3,图纸设计阶段仿真方法4,总结1,概述 本文简单介绍使用Alegro PCB SI执行仿真查看仿真波形的两种方法。 2,拓扑提取阶段仿真方法 如下图在拓扑提取阶段,添加完激励…

走进后端开发流程 | 青训营笔记

目录 一、走进后端开发流程 1、传统流程 2、敏捷开发 3、SAFe简介 4、字节团队的开发流程 二、开发流程详解 1、需求阶段 2、开发阶段 云原生开发 团队的分支策略 自测 3、测试阶段 4、发布阶段 简单发布 金丝雀发布 滚动发布(推荐) 蓝…

记录每日LeetCode 160.相交链表 Java实现

题目描述: 给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null 。 图示两个链表在节点 c1 开始相交: 题目数据 保证 整个链式结构中不存在环。 注意&…

进程和线程

1.关于进程进程基本概念进程(process)也叫任务(task)。进程是操作系统对一个正在运行的程序的一种抽象。也就是说,可以把进程看作程序的一次运行过程。 (一个正在运行的程序——>进程。没有跑起来就不算…

CSS语法与CSS选择器

目录 CSS 语法 实例 例子解释 CSS 选择器 CSS 元素选择器 实例 CSS id 选择器 实例 CSS 类选择器 实例 实例 实例 CSS 通用选择器 实例 CSS 分组选择器 实例 所有简单的 CSS 选择器 延伸阅读 CSS 语法 CSS 规则集(rule-set)由选择器和…

java spring IOC外部Bean注入

外部Bean注入也是一种Bean操作的属性注入 但这次我们要注入的是一个类对象 我们先创建spring项目 引入基本依赖 然后在src下创建两个包 gettingStarted 和 generate 这个名字可以随便取 但和我同名 可以让你们不会出现 名称不一样导致资源找不到的问题 然后在 gettingStarte…

【寒假每日一题】AcWing 4729. 解密(补)

文章目录一、题目1、原题链接2、题目描述二、解题报告1、思路分析2、时间复杂度3、代码详解三、知识风暴韦达定理及其逆定理一、题目 1、原题链接 4729. 解密 2、题目描述 给定一个正整数 k,有 k次询问,每次给定三个正整数 ni,ei,di,求两个正…

腾讯云GPU服务器环境部署与连接配置

先前博主购买了腾讯云的GPU服务器后,发现上面预装的环境存在一些问题,因此便来重新部署一下。 为了操作方便,博主这里使用了一个远程控制端软件:Xshell 博主在初始化时已经安装过pytorch了,我们首先看看安装的路径 测…

python winio的驱动级按键模拟

一,环境准备 电脑进入BIOS中关闭安全启动项菜单 电脑需要配备PS2接口的鼠标和键盘 二,安装rabird.winio环境 1、终端下执行pip install rabird.winio 然后重启电脑进入高级启动(禁止驱动程序强制签名),这个方法网上…

探索SpringMVC-DispatcherServlet

前言 在《探索SpringMVC-web上下文》中,我们介绍了DispatcherServlet的上下文的初始化。然后为了让大家对DispatcherServlet的各个组件有所了解,我们花了很多的时间来介绍各大组件。现在我们来看看DispatcherServlet是如何使用这些组件完成功能的。 Di…

【前端杂货铺】一个普通人在CSDN创作的一周年

个人简介 👀个人主页: 前端杂货铺 🙋‍♂️学习方向: 主攻前端方向,也会涉及到服务端 📃个人状态: 在校大学生一枚,已拿多个前端 offer(秋招) 🚀未…

Python---列表和元组

专栏:python 个人主页:HaiFan. 专栏简介:本专栏主要更新一些python的基础知识,也会实现一些小游戏和通讯录,学时管理系统之类的,有兴趣的朋友可以关注一下。 列表和元组前言列表的的概念列表的创建访问下标…

【微服务】Eureka注册中心

本系列介绍的是Spring Cloud中涉及的知识点,如有错误欢迎指出~ 一.引子 假如我们的服务提供者user-service部署了多个实例,如图: 大家思考几个问题: 问题一:order-service在发起远程调用的时候,该如何得知…

Linux——一文彻底了解进程id和线程id的关系(什么是pid、tgid、lwp、pthread_t)

目录 一.内核层面:pid & tgid 二.函数调用层面:getpid & gettid & pthread_self 三.用户层面:PID & LWP(TID) 四.总结 一.内核层面:pid & tgid 首先,我们要清楚&#…

【运筹优化】凸多面体重叠判断算法:GJK 算法详解 C++代码实现二维情形的凸多边形重叠判断

文章目录一、GJK 算法简介二、前置知识2.1 二维向量的点乘和叉乘2.2 三维向量叉乘2.3 凸多边形2.4 闵可夫斯基差2.5 单纯形2.6 Support 函数三、GJK 算法讲解3.1 熟悉 GJK 算法流程3.1.1 多边形重叠的情形3.1.2 多边形不重叠的情形3.2 总结 GJK 算法步骤3.3 讲解 GJK 算法细节3…

HTML5(下)

目录 表格标签 表格的主要作用 表头单元格标签 表格结构标签 合并单元格 列表标签 无序列表 有序列表 自定义列表 表单 表单域 表单控件(表单元素) 表单元素 label标签 select下拉列表 textarea文本域元素 案例-注册页面 表格标签 表格的主…

面试官: 你们生产环境的JVM怎么设置的?

前言 这篇文章,给大家聊一个生产环境的实践经验:线上系统部署的时候,JVM堆内存大小是越大越好吗? 先说明白一个前提,本文主要讨论的是Kafka和Elasticsearch两种分布式系统的线上部署情况,不是普通的Java应…

【附代码】十大经典排序算法

常见的内部排序算法有:插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。用一张图概括:名词解释:n:数据规模。k:“桶”的个数。In-place:占用常数内存,不占用…

TryHackMe-Docker_Rodeo

The Docker Rodeo 在此引导式展示中了解各种 Docker 漏洞。 以下内容均来自TryHackMe 前提设置 /etc/docker/daemon.json {"insecure-registries" : ["docker-rodeo.thm:5000","docker-rodeo.thm:7000"] }Docker注册表 在我们开始利用 Docke…

【Java开发】Spring Cloud 05 :远程服务调用Openfeign 替代 WebClient

在前边章节中,我们借助 Nacos 的服务发现能力,使用 WebClient 实现了服务间调用。从功能层面上来讲,我们已经完美地实现了微服务架构下的远程服务调用,但是从易用性的角度来看,这种实现方式似乎对开发人员并不怎么友好…