frps server端配置_[工具]Jmeter分布式并发配置及常见问题,超详细

本文会完整讲解环境搭建+配置+启动常见问题,适合新手查看,一步步操作,百分百能成功!

一、使用场景

单台的JMeter压测能力有限,最大并发压测在1k内的,单机基本满足日常需求了。但对于有项目来说,需要上万并发的压测,那就需要采用JMeter的分布式压测。

二、Jmeter分布式执行原理

1、Jmeter分布式测试时,选择其中一台作为调度机(master),其它机器做为执行机(slave)。

2、执行时,master会把脚本发送到每台slave上,slave 拿到脚本后就开始执行,slave执行时不需要启动GUI,个人理解它是通过命令行模式执行的。

3、执行完成后,slave会把结果回传给master,master会收集所有slave的信息并汇总(也就是说聚合报告会在你的master上面统一展示,但是仅显示结果是否成功,不会显示Response Body返回数据)。

b56d87ce05709d17e3c56e5dcfd96822.png

Linux虚拟机安装Jmeter

说明:这个是我自己在Linux虚拟机上安装slave的过程,master是在win上已经安装好的。如果可以连接其他服务器的Jmeter,可以忽略此安装步骤。

重点:master和slave上的jdk+jmeter版本最好一致,否则有可能导致无法远程启动

1、安装jdk

JDK是JAVA的软件开发工具包,如果要使用JAVA来进行开发,或者部署基于其开发的应用,那么就需要安装JDK,JDK包分win和Linux版本。

环境:CentOS 6.8 64位

下载的JDK 1.8.0 版本:jdk-linux-x64.tar.gz

直接通过win下载好,然后通过Xftp传到Linux(路径: /usr/java),解压到该目录

19091b54b898b6cb757b519c3137e03b.png

be251589f2a9ba71b3bb8bd85f79aa8d.png

解压完成之后,我们要配置下环境变量,通过 vim 命令修改配置文件 /etc/profile 来设置环境变量。

vim /etc/profile

在文件最后一行,输入i进入编辑模式,添加以下内容,然后按Esc退出编辑模式,再输入:wq保存并退出。

6e6ee22480129a9b9a8b1c38f8487103.png
export JAVA_HOME=/usr/java/jdk1.8.0_131
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$PATH

设置完之后,如果要使环境变量立即生效,需要通过命令:source /etc/profile,重新加载配置文件。

验证是否安装成功:java -version

不会出现报错并且显示出jdk版本,代表安装成功

0ae426f226bfaeb3fea5e5b0750dcafa.png

2、安装Jmeter

JMeter安装包不区分win和Linux版本,可以直接使用win中的版本

安装版本:Jmeter5.0

最新版本下载地址: https://jmeter.apache.org/download_jmeter.cgi
历史版本下载地址: https://archive.apache.org/dist/jmeter/binaries/

下载后解压即可,目录:/usr/jmeter

61062da8072b3c73dcc3267ea1314a5b.png

同JDK一样,要配置下环境变量,通过 vim 命令修改配置文件 /etc/profile 来设置环境变量。

vim /etc/profile

在文件最后一行,输入i进入编辑模式,添加以下内容,然后按Esc退出编辑模式,再输入:wq保存并退出。

06e8c8a22d06d2bc30d1124cbfda82e5.png
export JMETER_HOME=/usr/jmeter/apache-jmeter-5.0/apache-jmeter-5.0
export CLASSPATH=$JMETER_HOME/lib/ext/ApacheJMeter_core.jar:$JMETER_HOME/lib/jorphan.jar:$CLASSPATH
export PATH=$JMETER_HOME/bin:$PATH

设置完之后,如果要使环境变量立即生效,需要通过输入命令:source /etc/profile,重新加载配置文件。最后,通过jmeter --version查看安装的Jmeter版本,验证安装成功。

066c1b419d9133a06e8a833bf0307421.png

启动JMeter命令:jmeter.sh

d1f930e5f8091e1dac24e33d2be21309.png

到这里Jmeter安装完成了,下面就是配置master和slave的过程

三、JMeter实现分布式并发

配置步骤:

34c7456a223fbabcf057c44e895ea7bd.png

1、master端配置

路径:bin/jmeter.properties,搜索到remote,修改如下图

其中ip地址是我虚拟机自己设置的固定ip(强烈建议配置固定ip,防止后期连接不上报错,固定ip不会配置的见CC是谁:Linux虚拟机配置静态ip),端口也是在虚拟机配置文件中自己配置的,后面会讲

需要将remote_hosts中的127.0.0.1删除,否则“远程启动所有”时启动不起来

572d470bddc84bd31116dcd253af756b.png

设置成功后在master端看到远程启动中包含了刚才配置的slave,如果看不到可以重启下JMeter

60bdb72107993cf6d50c5f67ef096aa6.png

2、slave端配置

路径:bin/jmeter.properties,搜索到1099,启用端口,保存

530358a69f8e57ea9f66aaff4e5fcd3b.png

3、slave端启动Jmeter-server(bin目录下)

c8750c39e24fcd04681e345914441b33.png

注意:命令jmeter-server报错

114251e913d2aa11339fc27ddb05bb59.png

修改命令为,后面ip是本机的ip,再次启动,成功:

./jmeter-server -Djava.rmi.server.hostname=192.168.8.14

cad4d566e7ac9f5be5a4b18b86cc2828.png

4、master执行

配置了多台slave时,直接“远程启动所有”,所有远程服务器会同时启动

注意:若需要压测100,在10台机器,则线程设置10即可,jmeter执行中不会自动负载均衡,每一台服务器都会完整地运行测试计划。

0d9448ef27f5cae3e0e5a1e2ce8291dc.png

执行时常见问题汇总

4.1下图代表拒绝连接,slave需要关闭防火墙

e51ca51f8c980b63c22c9fcc43967a1f.png

命令:

1) Linux操作系统中永久性生效,重启后不会复原
开启: chkconfig iptables on
关闭: chkconfig iptables off
2) 即时生效,重启后复原
开启: service iptables start
关闭: service iptables stop

4.2

bb850c228da76a7aee12d5813837333c.png

解决办法是配置master端的jmeter.properties 文件里的下面配置为true

dd887582fb6477063cb387b1a8e264f1.png

4.3

4a5ef6aeb9187fd464dc9e3498384cab.png

RROR - jmeter.gui.action.RemoteStart: Failed to initialise remote engine java.rmi.ConnectException: Connection refused to host: 127.0.0.1; nested exception is:
java.net.ConnectException: Connection refused: connect
at sun.rmi.transport.tcp.TCPEndpoint.newSocket(Unknown Source)
at sun.rmi.transport.tcp.TCPChannel.createConnection(Unknown Source)
at sun.rmi.transport.tcp.TCPChannel.newConnection(Unknown Source)
at sun.rmi.server.UnicastRef.newCall(Unknown Source)
at sun.rmi.registry.RegistryImpl_Stub.lookup(Unknown Source)
at java.rmi.Naming.lookup(Unknown Source)
at org.apache.jmeter.engine.ClientJMeterEngine.getEngine(ClientJMeterEngine.java:54)
at org.apache.jmeter.engine.ClientJMeterEngine.<init>(ClientJMeterEngine.java:67)
at org.apache.jmeter.gui.action.RemoteStart.doRemoteInit(RemoteStart.java:180)
at org.apache.jmeter.gui.action.RemoteStart.doAction(RemoteStart.java:80)
at org.apache.jmeter.gui.action.ActionRouter.performAction(ActionRouter.java:81)

解决方法:只要将本机的jmter-server.bat执行即可。master要是在jmeter.properties配置的地方写了127.0.0.1 的话 就要开本机的 jmeter-sever.bat. 不写的话,就不用开了

参考:

Fresh.Qin:Jmeter--分布式测试配置​zhuanlan.zhihu.com
0c6d7feba06126ead152f9bc96b625eb.png
Jmeter进行性能测试时多台负载机的配置方法 - 呆瓜小贼66 - 博客园​www.cnblogs.com
d4dfa025aba2fbd2341c8c88a4c9a095.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值