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.2export 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复制一份

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

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

相关文章

vue - - - - - vue-qr插件生成二维码

vue-qr插件生成二维码 1. 安装插件2. 组件使用示例图&#xff1a;扫码结果 1. 安装插件 【vue-qr 官网地址】 npm install vue-qr --save // or yarn add vue-qr --save2. 组件使用 <template><vue-qr :logo-src"logoSrc":size"237":margin&qu…

php一句话木马免杀

php一句话木马免杀 针对于php一句话木马做免杀&#xff1a; 利用php动态函数的特性&#xff0c;将危险函数拆分成字符&#xff0c;最终使用字符串拼接的方式&#xff0c;然后重新拼接&#xff0c;后加括号执行代码&#xff0c;并且可以使用花指令进行包装&#xff0c;如无限i…

Pol8891 规格书 ——图像处理芯片/RGB转MIPI支持图像 90°/270°旋转处理

一、芯片简介 1、系统 高性能 MIPS 32bit CPU 内核&#xff1b; 高性能 DSP 内核图像处理单元&#xff1b; 8KB 指令 Cache&#xff1b; 8KB 数据 Cache&#xff1b; 64KB OnChip SRAM&#xff1b; 内嵌 DDR3 控制器&#xff1b; 2、RGB 输入 支持 RGB666、RGB888 输入…

中电金信:《保险业监管研究及数字化转型方向探索白皮书》

纵观近二十年保险业从信息化向数字化的演进过程&#xff0c;我们感受到了数字化转型阶段性成果渐成的喜悦&#xff0c;同时也深深的体会到数字化转型在“痛并快乐着”的历程中的种种艰辛。当今世界正处于百年未有之大变局&#xff0c;随着我国保险市场的供需格局演变和外部环境…

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

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

Mapbox中点图层和面图层点击事件重叠,禁止点击穿透方案

使用mapbox的小伙伴们可能都遇到过这个问题,就是当地图上有两个图层,一个面图层一个点图层,二者相重合的时候。假设我们想点击点位弹窗展示一些内容,也想点击面图层的时候弹窗展示一些内容,这时候一个有意思的问题就产生了,就是点击点位弹窗的时候面图层对应的弹窗也会弹…

计算二叉树双分支节点的个数(可运行)

如果对您有用&#xff0c;点个赞&#xff0c;关注一下哦&#xff01;毕竟像我这种不用付monyY的博主不多了&#xff0c;且行且珍惜吧&#xff01;俺只想要数据【偷笑】 运行环境.cpp 如果没有输出结果一定是建树错误&#xff01;&#xff01;&#xff01;&#xff01;&#x…

libbz2 for Mac OS makefile

git地址&#xff1a;git://sourceware.org/git/bzip2.git a文件Makefile # ------------------------------------------------------------------ # This file is part of bzip2/libbzip2, a program and library for # lossless, block-sorting data compression. # # bzip…

MySQL-01-MySQL基础架构

1-MySQL逻辑结构 如果能在头脑中构建一幅MySQL各组件之间如何协同工作的架构图&#xff0c;有助于深入理解MySQL服务器。下图展示了MySQL的逻辑架构图。 MySQL逻辑架构整体分为三层&#xff0c;最上层为客户端层&#xff0c;并非MySQL所独有&#xff0c;诸如&#xff1a;连接处…

jar包打进本地仓库

jar包打进本地仓库 <dependency><groupId>com.test</groupId><artifactId>test-api</artifactId><version>1.0.0</version> </dependency>mvn install:install-file -Dfiletest.jar -DgroupIdcom.test -DartifactIdtest-api …

数据结构:链表

目录 一.为什么要使用链表存储数据&#xff1f; 二.链表的分类 单向或者双向链表&#xff1a; 带头或者不带头&#xff1a; 循环或者非循环&#xff1a; 三.链表的实现 3.1无头单向非循环链表的实现&#xff1a; 3.1.1单向无头非循环链表的声明 3.1.2动态申请一个节点 …

kmalloc

kmalloc(size(结构体)*n)就是申请n个大小为结构体的空间&#xff0c;然后返回一个指向这个空间的首地址的指针。这个指针可以看作是一个数组&#xff0c;它的每个元素都是结构体&#xff0c;所以可以使用索引来访问这个空间的不同部分。例如&#xff0c;如果你有一个指针p&…

python数据类型之字符串、字典、元组

一、数字类型 1、number类型 Python Number 数据类型用于存储数值。 数据类型是不允许改变的,这就意味着如果改变 Number 数据类型的值&#xff0c;将重新分配内存空间。 以下实例在变量赋值时 Number 对象将被创建&#xff1a; var1 1 var2 10也可以使用del语句删除一些…

亚马逊防关联要注意什么?看这一篇,防关联有技巧!

亚马逊账号关联的问题&#xff0c;对于跨境电商来说都不陌生&#xff0c;店铺的安全问题往往和账号关联有关&#xff0c;一旦亚马逊账号被关联就很可能导致我们的店铺被封&#xff0c;对于被亚马逊封店的卖家都会有申诉机会&#xff0c;如果无法成功申诉&#xff0c;那将永久被…

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;传过去的是第…

NB水表能承受最大的水压是多少?

NB水表&#xff0c;作为新一代智能水表&#xff0c;以小巧的体积、稳定的性能和强大的功能赢得了市场的认可。那么&#xff0c;它究竟能承受多大的水压呢&#xff1f;接下来&#xff0c;小编来为大家揭秘下&#xff0c;一起来看下吧&#xff01; 一、NB水表概述 NB水表&#xf…

安卓手机好用的清单软件有哪些?

生活中每个人都有丢三落四的习惯&#xff0c;伴随着生活节奏的加快&#xff0c;人们常忘事的情况会更加频繁的出现&#xff0c;这时候很多人就开始选择手机上记录清单类的软件&#xff0c;安卓手机在手机市场中占有很大的分量&#xff0c;在安卓手机上好用的记录清单的软件有哪…

在高斯DB数据库中,获取上个月的日期

个人网站 返回上个月的日期。ADD_MONTHS函数用于对日期进行加减操作&#xff0c;通过将当前日期减去1个月来获取上个月的日期。请注意&#xff0c;这里使用的是负数来表示减去一个月的时间间隔。 SELECT ADD_MONTHS(CURRENT_DATE, -1) AS last_month;

SiP封装、合封芯片和芯片合封是一种技术吗?都是合封芯片技术?

合封芯片、芯片合封和SiP系统级封装经常被提及的概念。但它们是三种不同的技术&#xff0c;还是同一种技术的不同称呼&#xff1f;本文将帮助我们更好地理解它们的差异。 一、合封芯片与SiP系统级封装的定义 首先合封芯片和芯片合封都是一个意思 合封芯片是一种将多个芯片&a…

力扣labuladong——一刷day49

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、力扣513. 找树左下角的值二、力扣666. 路径总和 IV三、力扣1261. 在受污染的二叉树中查找元素四、力扣572. 另一棵树的子树 前言 二叉树的递归分为「遍历」…