Jmeter性能压测4000并发

性能测试的底层逻辑

  • 程序为什么会有性能问题

用户操作 客户端(web/app/小程序)触发网络请求,服务器处理大量网络请求代码运行需要大量服务器资源(CPU、内存、网络、磁盘等等)

资源不是无限,硬件配置不是随意变动。

大量请求带来资源消耗大于服务器资源,就出现性能问题(响应慢、报错、...)

  • 性能测试的目标是什么?

通过模拟出大量用户使用的情况,分析程序的反应(响应时间、吞吐量、是否报错...)

  • 如何模拟性能场景(这次目标

要性能测试,先做接口分析

        压测目标场景涉及的接口

        性能之前先测接口

借住工具去发起大量请求-Jmeter

         一人一双手,无法模拟大量请求。

如何模拟多个用户操作的场景

  • 借助工具 发起 海量的网络请求(jmeter、loadrunner、k6、Locust..)
  • 线程(虚拟人)-操作系统底层去执行一个任务的最小单位
  • 线程组配置:

                  线程数量: 申请多少线程来为你工作

                  Ramp-Up时间(秒):线程就绪的时间(多久时间让线程就绪)

                  循环次数:

                        输入数字: 线程执行的任务的次数

                        永远:一直干活不停,干完一次就下一次

                   调度器:持续时间-测试的时间长短

1.线程各干各的(单个线程的角度,干活的顺序就是你定义的先后顺序)
2.如果制定了循环次数: 线程执行完指定的次数后,线程结束
3.如果指定了持续时间: 时间一到,线程陆续停止干活

线程数量如何确定

考题1:每秒20个请求,持续至少30秒钟

方案1:20线程,持续30秒,循环次数:永久

b7287edc0c484092bac854a87c03dd4a.png

结果:30秒左右--请求了800 每秒27.8

1536c1fffae74c79af2b738bee17b47a.png

方案2:600线程,持续30秒,Ramp-Up:30秒,循环次数:1

2e753e22a59d4708be982a4653097a61.png

结果:正确

62c0ba622601437d9b328f1de336d638.png

  • 样本数: 压测过程中jmeter发起的总请求数
  • 响应时间: 系统在 指定的压力状态下,能否及时响应用户请求
  • 吞吐量: 每秒处理的请求数量

方案3:20线程,持续30秒,循环次数:永久+ 定时器

相比较方案2:不需要频繁的创建线程和销毁线程,节约jmeter所在服务器的压力

487fee24edae4197aef11264e89f09ca.png

44a2a93445fe47129f08a06ee93d0bb6.png

下面表示 每60秒采样60次

5de88fbadcf546ceb8d47f1bf31a4770.png

2b88b8d4b34e48a5ac5d5fc36fc58764.png

工作中经常碰到场景1:领导(架构师)直接说 测一下系统能不能支撑 4000/s 请求

方案2思路: 总共:172,800,000 个线程、分为43,200秒(12小时)启动(不建议)

弊端: 每秒都会有 4000个线程被创建和销毁,极度消耗jmeter所在机器的CPU资源。(可能导致运行jmetgr的机器就卡住了)

方案3思路:4000个线程,每秒种发起一次请求,持续指定的时间。

弊端:一个电脑上运行大量的线程,可能导致电脑卡顿,从而达不到想要的并发压力

Jmeter分布式集群压测

e92f4825701940e4930942e3caa54f05.png

通过 多台机器 同时执行 性能压测脚本,模拟更大的并发压力

1.多个独立环境,运行jmeter  c31c146fb7ad481fa5207e23debb3e72.png          

2.执行机 环境搭建与启动 

684370a7560f41a39524814bf89903ab.png

 3.控制机 修改配置文件重启jmeter

eebbf03a6b714534a1bc847e7280815c.png

 远程启动 

206d8167346c488e8dd18dc25b2b6c4b.png

 4000个线程 有2个服务器 每个服务器就运行2000个

学习可参考:jmeter分布式集群压测_jmeter集群压测-CSDN博客

 

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用Python发送PDD直播间弹幕(协议算法分析)

文章目录 1. 写在前面2. 接口分析3. 算法还原 【🏠作者主页】:吴秋霖 【💼作者介绍】:擅长爬虫与JS加密逆向分析!Python领域优质创作者、CSDN博客专家、阿里云博客专家、华为云享专家。一路走来长期坚守并致力于Python…

日撸Java三百行(day19:字符串匹配)

目录 一、字符串的一些基础知识 二、代码实现 1.字符类的创建 2.字符类的遍历 3.字符串匹配 4.字符串截取 5.数据测试 6.完整的程序代码 总结 一、字符串的一些基础知识 字符串(String)是用一对双引号括起来的零个或多个字符组成的有限序列&am…

简单的docker学习 第13章 CI/CD与Jenkins(上)

第13章 CI/CD 与 Jenkins 13.1 平台登录页面 13.1.1 GitLab-8098-root 13.1.2 Jenkins-8080-zhangsan 13.1.3 SonarQube-9000-admin 13.1.4 harbor-80-admin 13.2 CI/CD 与 DevOps 13.2.1 CI/CD 简介 CI > Continuous Integration,持续集成。即将持续不断更新…

如何在linux系统上部署nginx

1)首先去 nginx.org/download 官网下载你所需要的版本 我这里是下载的 nginx-1-23-3.tar.gz 2)然后执行 yum -y install lrzsz 安装文件上传软件 执行 rz 选择你下载nginx的位置进行上传 yum -y install lrzsz 3)执行 tar -zxvf nginx-1.23…

数据可视化(爬取豆瓣网站)

目录 1 绪论 1.1 研究背景 1.2 研究目的和意义 1.3 研究内容和方法 2. 需求分析 2.1 系统功能描述 2.2 数据采集与预处理 2.2.1 数据采集 2.2.2 数据清洗 2.2.3 数据处理 2.3 功能需求 2.3.1 登录模块 2.3.2 数据展示模块 3 系统设计 3.1 系统功能结构设计 3.2 …

Pycharm中重命名项目之后切换虚拟环境

Pycharm中重命名项目之后切换虚拟环境 场景 在Pycharm里面Rename Project/Directory之后,通常需要切换虚拟环境。 步骤 # 退出当前虚拟环境 deactivate # 删除旧的虚拟环境 .venv # 新建新的虚拟环境 python -m venv .venv # 切换到新的工程目录 cd E:\Bigdata\…

排序算法——插入排序

一、插入排序概念 直接插入排序(Insertion Sort)是一种简单的排序算法,它的工作原理类似于人们手动排序卡片的方式。该算法通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插…

二叉树相关的算法题

二叉树相关的算法题 单值二叉树 如果二叉树每个节点都具有相同的值,那么该二叉树就是单值二叉树。 只有给定的树是单值二叉树时,才返回 true;否则返回 false。 示例 1: 输入:[1,1,1,1,1,null,1] 输出:t…

初阶数据结构5 排序

排序 1. 排序概念及运用1.1 概念1.2运用1.3 常见排序算法 2. 实现常⻅排序算法2.1 插⼊排序2.1.1 直接插⼊排序2.1.2 希尔排序2.1.2.1 希尔排序的时间复杂度计算 2.2 选择排序2.2.1 直接选择排序2.2.2 堆排序 2.3 交换排序2.3.1冒泡排序2.3.2 快速排序2.3.2.1 hoare版本2.3.2.2…

【云服务器系列】基于华为云OBS实现Picgo和Typora的完美融合

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

STM32-IIC协议详解

一、IIC简介 IC(Inter-Integrated Circuit)协议由飞利浦公司于1980年代开发,是一种用于集成电路间短距离通信的串行协议。它设计用于连接低速外围设备,特别适合于需要简单数据交换的场景。IC协议使用两根信号线:SCL&am…

Python数值计算(23)——modified akima插值

1. 数学原理 在前面的Akima插值中,计算斜率使用如下公式: 如果记: 在出现分母分子同时为零的情况时,会出现NaN的计算结果,Akima他自己也意识到这种问题,因此,在原来的算法上做了修订&#xff0…

Python | Leetcode Python题解之第330题按要求补齐数组

题目&#xff1a; 题解&#xff1a; class Solution:def minPatches(self, nums: List[int], n: int) -> int:patches, x 0, 1length, index len(nums), 0while x < n:if index < length and nums[index] < x:x nums[index]index 1else:x << 1patches …

【线性代数】第2章 矩阵及其运算,矩阵的定义,矩阵的加法,矩阵的乘法(同济大学)

目录 1 矩阵 一、矩阵概念的引入 二、矩阵的定义 三、特殊的矩阵 同型矩阵与矩阵相等的概念 四、矩阵与线性变换 例 例 例 2 矩阵的运算 例 一、矩阵的加法 二、数与矩阵相乘 例&#xff08;续&#xff09; 三、矩阵与矩阵相乘 1 矩阵 一、矩阵概…

NVIDIA Triton系列11-模型类别与调度器-1

NVIDIA Triton系列11-模型类别与调度器-1 B站&#xff1a;肆十二-的个人空间-肆十二-个人主页-哔哩哔哩视频 (bilibili.com) 博客&#xff1a;肆十二-CSDN博客 问答&#xff1a;(10 封私信 / 72 条消息) 肆十二 - 知乎 (zhihu.com) 在 Triton 推理服务器的使用中&#xff0c;模…

数据科学 - 数据可视化(持续更新)

1. 前言​​​​​​​ 数据可视化能够将复杂的数据集转化为易于理解的图形、图表或图像。这种直观的表现形式使得人们能够更快地理解数据的分布、趋势、异常值以及数据之间的关系&#xff0c;从而更深入地洞察数据背后的信息。 数据可视化在数据分析和决策制定过程中具有不可…

C++的7种设计模式原则

一、设计模式前言 设计模式&#xff08;Design Patterns&#xff09;的“模式”指的是一种在软件设计中经过验证的、解决特定问题的方案。它们不是具体的代码&#xff0c;而是解决常见设计问题的抽象方案或模板。设计模式提供了一种标准的方式来组织代码&#xff0c;以提高代码…

为JetBrains IDE设置自定义TODO筛选器(筛选指定的关键字)和Live Templates

为JetBrains IDE设置自定义TODO筛选器&#xff08;筛选指定的关键字&#xff09;和Live Templates 以下内容以搜索关键字 // TODO Zzz 为例&#xff0c;不区分大小写&#xff0c;可以将模板中的 Zzz 换成其他内容。 设置自定义TODO筛选器 在IDE设置中找到TODO选项&#xff0…

AWS注册是否必须使用美元银行卡

亚马逊网络服务(AWS)作为全球领先的云计算平台,吸引了众多企业和个人用户。然而,不少人在注册AWS账户时会产生疑问:是否必须使用美元银行卡?实际上,这种说法并不准确。虽然AWS的主要结算货币是美元,但用户在注册和使用过程中有多种支付方式可供选择。我们结合九河云的分析来告…

程序员前端开发者的AI绘画副业之路:在裁员危机中寻找新机遇

正文&#xff1a; 在这个充满变数的时代&#xff0c;作为一名前端开发者&#xff0c;我经历了行业的起伏&#xff0c;见证了裁员危机和中年失业危机的残酷。在这样的背景下&#xff0c;我开始了利用AI绘画作为副业的探索&#xff0c;不仅为了寻求经济上的稳定&#xff0c;更是为…