jmeter什么要做分布式部署?
jmeter是运行在JVM虚拟机上的,当模拟大量并发时,对运行机器的性能/网络负载会很大。
此时就需要使用jmeter的分布式部署功能,实现多台被控机器同时并发访问被测系统。
 
原理图:
 

准备工作:
1.在所有机器上,安装相同版本的jmeter和JDK。
2.所有机器连接同一个网络。
3.把所有机器的防火墙关闭,否则很可能会连接失败。
 
步骤1:
修改master控制端:
1.修改master控制端的jmeter的bin目录下的jmeter.properties文件。
如图,在remote_hosts处添加负载机的IP+端口。
在server_port处添加本机服务器IP端口(如果控制端不作为负载机,可不添加)。
 

2.找到server.rmi.ssl.disable,把注释去掉,把false改为true。

步骤2:
修改slave负载机端:
1.与控制端一样,修改remote_hosts与server_port的IP端口。
该IP+端口就是之前添加在控制端remote_hosts里面的值。

2.同样找到server.rmi.ssl.disable,把注释去掉,把false改为true。

 
步骤3:
负载机启动server
所有slave负载机,在jmeter的bin目录下,打开jmeter-server.bat文件;
 

步骤4:
启动控制端master,执行性能测试。
这里为了演示,直接启动控制端的GUI(实际测试时需要使用命令行执行,下一步会讲到)。
在Run的Remote Start中,可以看到之前在控制端配置的IP,代表可选择的负载机。
执行Remote Start All,则会执行之前在控制端jmeter.properties文件中配置的所有虚拟机。
 
 

执行成功后,负载机的命令行会显示执行成功信息。
 

执行成功后,在控制端GUI的聚合报告可查看到执行结果。
 
 

步骤5:
使用命令行执行压力测试;
这很多人使用jmeter进行并发测试时,容易忽略了的一点:
在双击jmeter.bat文件启动GUI时,命令行已经提示,GUI仅适用于调试,不可用于负载测试。
 

如提示语,打开CMD命令行,输入如下:
jmeter -n -t [脚本路径] -l [结果文件路径] -e -n [web报告路径]
例如,笔者输入:
 jmeter -n -t C:\Users\user\Desktop\jmeterPerf.jmx -R 192.168.1.128:2088,192.168.1.114:2099 -lC:\Users\user\Desktop\jmeter\
result.txt -e -o C:\Users\user\Desktop\jmeter\webreport
 

使用命令行执行完并发性能测试后,即可在填写的路径下打开报告查看。

 
 
可能存在的报错:
 
1. Connection refused:connect 可能是防火墙未关闭,把控制机和负载机的防火墙都关闭即可。

2. Connection timed out 连接超时,可能机器未在同一个局域网,或者填写的IP端口错误。
检查是否IP+端口是否正确,检查负载机的server_port是否设置,是否存在冲突被占用。
 

 
3.Engine is busy 可能是异常退出等,导致被控负载机一直执行之前的测试,未释放进程。
可以尝试关闭负载机的java.exe进程,如果还不行,建议直接重启机器。

 
 
 
 
 
 

jmeter性能测试-高并发分布式部署的更多相关文章

  1. Java互联网架构-直播互动平台高并发分布式架构应用设计

    概述 网页HTML 静态化: 其实大家都知道网页静态化,效率最高,消耗最小的就是纯静态化的 html 页面,所以我们尽可能使我们的网站上的页面采用静态页面来实现,这个最简单的方法其实也是最有效的方法, ...

  2. Redis实现高并发分布式锁

    分布式锁场景在分布式环境下多个操作需要以原子的方式执行首先启一个springboot项目,再引入redis依赖包: <!-- https://mvnrepository.com/artifa . ...

  3. Redis实现高并发分布式序列号

    使用Redis实现高并发分布式序列号生成服务 序列号的构成 为建立良好的数据治理方案,作数据掌握.分析.统计.商业智能等用途,业务数据的编码制定通常都会遵循一定的规则,一般来讲,都会有自己的编码规则和 ...

  4. 不懂这些高并发分布式架构、分布式系统的数据一致性解决方案,你如何能找到高新互联网工作呢?强势解析eBay BASE模式、去哪儿及蘑菇街分布式架构

    互联网行业是大势所趋,从招聘工资水平即可看出,那么如何提升自我技能,满足互联网行业技能要求?需要以目标为导向,进行技能提升,本文主要针对高并发分布式系统设计.架构(数据一致性)做了分析,祝各位早日走上 ...

  5. 服务端高并发分布式架构 ESB 企业服务总线

    服务端高并发分布式架构演进之路 - 个人文章 - SegmentFault 思否 https://segmentfault.com/a/1190000018626163 ESB 企业服务总线讲解 ht ...

  6. Java架构师系统培训高并发分布式电商实战activemq,netty,nginx,redis dubbo shiro jvm虚拟机视频教程下载

    15套java架构师.集群.高可用.高可扩 展.高性能.高并发.性能优化.Spring boot.Redis.ActiveMQ.Nginx.Mycat.Netty.Jvm大型分布 式项目实战视频教程 ...

  7. 高并发分布式环境中获取全局唯一ID[分布式数据库全局唯一主键生成]

    需求说明 在过去单机系统中,生成唯一ID比较简单,可以使用MySQL的自增主键或者Oracle中的sequence, 在现在的大型高并发分布式系统中,以上策略就会有问题了,因为不同的数据库会部署到不同 ...

  8. 资深P7架构师详解淘宝服务端高并发分布式架构演进之路

    1. 概述 本文以淘宝作为例子,介绍从一百个并发到千万级并发情况下服务端的架构的演进过程,同时列举出每个演进阶段会遇到的相关技术,让大家对架构的演进有一个整体的认知,文章最后汇总了一些架构设计的原则. ...

  9. 服务端高并发分布式架构演进之路 转载,原文地址:https://segmentfault.com/a/1190000018626163

    1. 概述 本文以淘宝作为例子,介绍从一百个到千万级并发情况下服务端的架构的演进过程,同时列举出每个演进阶段会遇到的相关技术,让大家对架构的演进有一个整体的认知,文章最后汇总了一些架构设计的原则. 特 ...

随机推荐

  1. 2020阿里,字节跳动,JAVA岗(一线企业校招、社招)面试题合集

    前言 以下面试题全属于一线大厂社招以及校招的面试真题,各位在做这些题目对照自己的时候请平凡心对待,不要信心受挫.其实 做为致力于一线企业校招或者社招的你来说,能把每个知识模块的一小部分问题去深入学习和 ...

  2. Guitar Pro 7教程之如何导入吉他谱

    在前面的章节小编为大家也讲解了不少关于Guitar Pro 的相关教程,譬如{cms_selflink page='index' text='Guitar Pro下载'},安装等等一系列的使用教程,前 ...

  3. MathType中如何输入正、余弦函数

    MathType是一款强大的数学公式编辑器,正.余弦函数也是中学中非常重要的一节知识点,今天我们介绍一下在MathType中怎么输入正.余弦函数. 具体步骤如下: 步骤一 打开专业的公式编辑软件Mat ...

  4. 关于ABBYY的常见问题与解答

    问:ABBYY的版本那么多,我不知道哪款是我需要的.可不可以帮助我选择? 答:您可在此查看不同版本的功能介绍与版本对比,选择适合自己的版本即可. 查看ABBYY FineReader 15功能:查看A ...

  5. Vegas让人物回眸更有韵味的方法分享

    "回眸一笑百媚生,六宫粉黛无颜色",是白居易在<长恨歌>中描述杨贵妃美貌的名句,这一句运用夸张的手法,反映了杨贵妃回眸时的娇媚横生,百般娇媚. 接下来,小编就教你用视频 ...

  6. jQuery 第一章 $()选择器

    jquery 是什么? jquery 其实就是一堆的js函数(js库),也是普通的js而已. 有点像我们封装一个函数,把他放到单独的js 文件,等待有需要的时候调用它. 那么使用它有啥好处呢? jqu ...

  7. yii2.0 ActiveForm 单选框与复选框使用

    yii2.0 中的ActiveForm 复选框的使用 默认的复选框选项为纵向的<?= $form->field($model, 'line')->checkboxList(Pictu ...

  8. C语言讲义——库函数排序qsort

    qsort函数在在stdlib.h中. 函数原型 void qsort(void *base, size_t nitems, size_t size, int (*compar)(const void ...

  9. 【Makefile】5-Makefile变量的基础

    目录 前言 概念 Chapter 5:变量的基础 5.1 变量的基础 * 空格的定义 ** 一些赋值 一些特殊的符号 5.2 变量中的变量 * 5.3 变量高级用法 变量值替换 把变量的值再当成变量 ...

  10. go特性-defer

    1:后定义的defer先执行(可以理解为栈的方式) // 222 // 111 func Test1(t *testing.T) { defer fmt.Println("111" ...