Jmeter 分布式压测

为什么要分布式

  • jmeter是100%纯java开发的程序,虚拟用户是以线程实现的,在大量并发情况下,很容易出现CPU、内存消耗过大的问题,甚至会出现java内存溢出。
  • 一般一台电脑设置500-600线程数即可,如果超过1000线程,单机电脑就有点过高了,同时也还要关注本机电脑CPU、内存不能超过80%~90%的范围,否则会导致测试机本身的性能瓶颈,测试结果也会不准确。

分布式测试原理

  • 总控机器的节点Jmeter controller,其他产生压力的机器叫“肉鸡”(Jmeter server)
  • controller会把脚本发送到Jmeter server上,肉鸡不需要准备jmx文件
  • 执行的时候,server上只需要把jmeter-server打开就可以了,不用启动jmeter
  • 执行结束后,server会把压测数据回传给controller,然后controller汇总输出报告
  • 注意:必须保证主机和肉鸡安装相同的jdk和jmeter

在这里插入图片描述

环境部署

  1. 准备机器:
    在这里插入图片描述
  2. 安装示例:
# 所有机器都需要安装
apt-get update --fix-missing # 更新源
apt-get install openjdk-8-jdk # 安装jdk
cd /opt
tar -xvf apache-jmeter-5.6.2.tgz  # 假设已经下载了对应版本到该目录
vim /etc/profile  # 将jmeter追加到系统环境变量
    export JMETER_HOME=/opt/apache-jmeter-5.6.2
    export PATH=$JMETER_HOME/bin:$PATH
source /etc/profile # 生效
  1. 检查java环境
    在这里插入图片描述
  2. 检查jmeter环境
    在这里插入图片描述
  3. 更改配置文件
  • master机
    进入/opt/apache-jmeter-5.6.2/bin 目录,按以下配置修改jmeter.properties配置文件
    注:remote_hosts 为执行机的ip及端口,多个执行机可通过英文逗号 “,” 进行拼接
    在这里插入图片描述server.rmi.ssl.disable=true(关闭SSL传输)

  • slave机
    进入/opt/apache-jmeter-5.6.2/bin 目录,修改jmeter.properties配置文件, 只需将server.rmi.ssl.disable=true即可

  1. 运行
  • slave机
    进入/opt/apache-jmeter-5.6.2/bin运行jmeter-server
    在这里插入图片描述
  • master机
    jmeter -n -t ./sfs.jmx -l ./result.jtl -j ./result.log -r
    在这里插入图片描述

注意事项

  • 进行性能测试前,尽量对Jmeter进行减负,避免运行时间过长,导致Jmeter卡死:
    (1)并发线程不要设置太高,建议单机300以下
    (2)“察看结果树”勾选“仅日志错误”,尽可能减少jvm内存使用
    (3)在压测时,要禁用诸如View Result Tree这类的监听器,这类监听器非常耗内存
    (4)用jmeter测试时使用BeanShell脚本获取随机参数值,会导致请求时间过长,TPS过低。应改为使用csv读取参数值,记录的TPS会更加准确
  • Master与各Slave使用的Java、jmeter版本保持一致;
  • 若测试计划中引用了某插件,则Master与各Slave都要包含该插件
  • 测试计划只需要放在Master上,执行时会自动分发到各Slave,不需要每台Slave复制一份

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【UE5】组成部分

了解UE游戏的基本构成 资源(Asset): 在UE中,资源(Asset)是指游戏中使用到的各种素材,例如模型、纹理、材质、声音、动画、蓝图、数据表格、关卡等(通常以uasset结尾),他…

2022年全国英烈纪念设施数据,各区县均有!

中国是一个拥有悠久历史和灿烂文化的国家,其英烈纪念设施承载着中国人民对为国家独立、民族解放和民主进步而英勇斗争的先烈们的崇敬和缅怀之情。 这些设施不仅是中国革命历史和先烈精神的重要载体,也是传承红色文化、弘扬革命精神的重要场所。 今天分享…

nint和Pattern matching介绍(C#)

nint 最近看C# 9.0时,发现一个有意思的关键词,就是nint,第一次看到这个,于是好奇心爆棚,就去实际操作了一下。 nint i 1000; Console.WriteLine("i{0}", i);实际结果与int的结果是一样的,那为什…

智能配电室电力监控系统

智能配电室电力监控系统是一种专门针对配电室的电力设备进行实时监控和管理的系统。依托电易云-智慧电力物联网,它采用先进的技术手段,对配电室内的电气设备和环境进行全方位、实时的监测和控制,以确保配电室的安全、稳定运行。 该系统的主要…

戳穿人工智能的六个谎言:辨别真伪

目录 1. AI是智能的 2. 始终越大越好 3. AI毫无透明度和问责制可言 4. AI一贯正确 5. AI严重冲击就业市场 6. AI主宰人类 主要结论 相关拓展 人工智能(AI)无疑是我们这个时代的流行语。特别是随着ChatGPT等生成式AI应用程序的出现,A…

使用Pytorch从零开始构建Transformer

在本教程中,我们将使用 PyTorch 从头开始​​构建一个基本的 Transformer 模型。Vaswani 等人提出的 Transformer 模型。在论文“Attention is All You Need”中,是一种专为序列到序列任务(例如机器翻译和文本摘要)而设计的深度学…

Centos7 mysql8.2.0

一、下载 选择社区开源版 二、解压安装 解压 tar -xvf mysql.tar查看是否存在mariadb,如果存在卸载,可能会有冲突 //查看mariadb rpm -qa|grep mariadb //存在即卸载 rpm -e --nodeps mariadb-libs 开始安装 //需要安装解压后其中几个rpm,包有依赖关系…

python变量、常量、数据类型

一、变量 变量是存储在内存中的值,这就意味着在创建变量时会在内存中开辟一个空间。 基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中。 因此,变量可以指定不同的数据类型,这些变量可以…

C语言——利用函数递归,编写函数不允许创建临时变量,求字符串长度

#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>int my_strlen(char* str) {if(*str ! \0)return 1my_strlen(str1);elsereturn 0; }int main() {char arr[] "hello";int len my_strlen(arr); //arr是数组&#xff0c;数组传参&#xff0c;传过去的是第…

Android和iOS应用程序加固方法详解:混淆、加壳、数据加密、动态加载和数字签名实现

目录 Android和iOS应用程序加固方法详解&#xff1a;混淆、加壳、数据加密、动态加载和数字签名实现 APP 加固方式 iOS APP加固代码实现 打开要处理的IPA文件 设置签名使用的证书和描述文件 开始ios ipa重签名 APP 加固方式 iOSAPP 加固是优化 iOS安全性的一种方法&…

2020年09月 Scratch(三级)真题解析#中国电子学会#全国青少年软件编程等级考试

Scratch等级考试(1~4级)全部真题・点这里 一、单选题(共25题,每题2分,共50分) 第1题 执行下面程序,屏幕上最多会看到多少个苹果? A:10个 B:11个 C:1个 D:无法确定 答案:B 第2题 关于下面程序,说法正确的是 ? A:执行 后,马上执行

ChatGPT重磅升级!集简云支持GPT4 Turbo Vision, GPT4 Turbo, Dall.E 3,Whisper等最新模型

在11月7日凌晨&#xff0c;OpenAI全球开发者大会宣布了 GPT-4的一次大升级&#xff0c;推出了 GPT-4 Turbo号称为迄今为止最强的大模型。 此次GPT-4的更新和升级在多个方面显示出强大的优势和潜力。为了让集简云用户能快速体验新模型的能力&#xff0c;我们第一时间整理了大会发…

关于自学\跳槽\转行做网络安全行业的一些建议

很好&#xff0c;如果你是被题目吸引过来的&#xff0c;那请看完再走&#xff0c;还是有的~ 为什么写这篇文章 如何自学入行&#xff1f;如何小白跳槽&#xff0c;年纪大了如何转行等类似问题 &#xff0c;发现很多人都有这样的困惑。下面的文字其实是我以前的一个回答&#…

【EI会议投稿】第九届电子技术和信息科学国际学术会议(ICETIS 2024)

第九届电子技术和信息科学国际学术会议&#xff08;ICETIS 2024&#xff09; The 9th International Conference on Electronic Technology andInformation Science&#xff08;ICETIS 2024&#xff09; ICETIS会议始于2016年&#xff0c;先后吸引众多来自国内外高等院校、科…

浏览器没收到返回,后端也没报错,php的json_encode问题bug

今天网站遇到个问题&#xff0c;后端返回异常&#xff0c;但是浏览器状态码200&#xff0c;但是看不到结果。经过排查发现&#xff0c;我们在返回结果的时候使用了json_encode返回给前端&#xff0c;结果里面的字符编码异常&#xff0c;导致json_encode异常&#xff0c;但是php…

来聊聊JVM中的类加载过程以及双亲委派模型(学习Java必知内容)

文章目录 1. 类加载过程加载验证准备解析初始化 2. 双亲委派模型一个类的加载流程双亲委派模型的优点 总结 1. 类加载过程 在整个 JVM 执行过程中, 和我们程序员关系最密切的就是类加载的过程, 所以接下来我们来看下类加载的执行流程. 对于一个类来说, 它的生命周期是这样的:…

洛谷P1219 [USACO1.5] 八皇后【n皇后问题】【深搜+回溯 经典题】【附O(1)方法】

P1219 [USACO1.5] 八皇后 Checker Challenge 前言题目题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 提示题目分析注意事项 代码深搜回溯打表 后话额外测试用例样例输入 #2样例输出 #2 王婆卖瓜 题目来源 前言 也是说到做到&#xff0c;来做搜索的题&#xff08;虽…

外汇天眼:外汇市场中的点差是什么? 又该怎么计算呢?

今天为大家揭开外汇点差的神秘面纱&#xff0c;了解这一外汇交易的核心概念。 定义 外汇点差&#xff0c;简单来说&#xff0c;就是外汇市场上买卖双方报价的差异。 每一笔交易由买卖报价中高低不同的部分构成&#xff0c;高出的部分是买方的盈利&#xff0c;低出的部分则是卖…

一文掌握 Spring Boot 常用注解,保姆级整理,建议收藏!

亲兄弟篇&#xff1a; SpringBoot注解大全&#xff08;超详细&#xff09;_Maiko Star的博客-CSDN博客 一、SpringBoot常用注解 二、Bean处理注解 2.1 Resource 依赖注入&#xff0c;自动导入标注的对象到当前类中&#xff0c;比如我们的 Controller 类通常要导入 Service 类…

【Unity】EventSystem.current.IsPointerOverGameObject()对碰撞体起作用

本来我是用 EventSystem.current.IsPointerOverGameObject()来检测是否点击在UI上的&#xff0c;但是发现&#xff0c;他对我的碰撞体也是返回ture,研究半天。。。。找不出问题&#xff0c;然后发现我的相机上挂载了PhysicsRaycaster&#xff0c;去掉之后就好了&#xff0c;至于…