美文网首页
分布式压测具体步骤

分布式压测具体步骤

作者: 小敢敢不憨a | 来源:发表于2021-07-01 14:22 被阅读0次

1、在master和slaves机器上分别按照相同版本的jdk和jmeter

2、在master机器上

1)修改配置文件,进入jmeter/bin目录下

vim jmeter.properties

remote_hosts=192.168.0.102:8899,192.168.0.101:8899(slaves机器的ip和端口,不同机器用逗号分割)

server.rmi.ssl.disable=true(禁用ssl)

如果master即作为master也作为slaves

remote_hosts=192.168.0.102:8899,192.168.0.101:8899,master的ip:8899

server_port=8899

server.rmi.ssl.disable=true(禁用ssl)

2)启动jmeter服务

./jmeter-server(linux)

jmeter-server.bat(windows)

3)检查是否启动成功

ps -ef|grep jmeter-server

3、在slaves机器上

1)修改配置文件,进入jmeter/bin目录下

vim jmeter.properties

remote_hosts=127.0.0.1(因为是slave节点,所以不用管)

server_port=8899

server.rmi.ssl.disable=true(禁用ssl)

2)启动jmeter服务

./jmeter-server(linux)

启动成功

jmeter-server.bat(windows)

3)检查是否启动成功

ps -ef|grep jmeter-server

4、分布式执行

GUI模式 :运行——》远程启动、远程启动全部

non-GUO模式:命令行增加-r参数

jmeter -n -t /Users/jack/Desktop/remote.jmx -r -l /Users/jack/Desktop/jtl/result.jtl -e -o /Users/jack/Desktop/result

四、常见问题

安装常见问题

1、问题

[root@iZwz95j86y235aroi85ht0Z bin]# ./jmeter-server

Created remote object: UnicastServerRef2 [liveRef: [endpoint::39308,objID:[24e78a63:16243c70661:-7fff, 7492480871343944173]]]

Server failed to start: java.rmi.RemoteException: Cannot start. Unable to get local host IP address.; nested exception is:

java.net.UnknownHostException: iZwz95j86y235aroi85ht0Z: iZwz95j86y235aroi85ht0Z: Name or service not known

An error occurred: Cannot start. Unable to get local host IP address.; nested exception is:

java.net.UnknownHostException: iZwz95j86y235aroi85ht0Z: iZwz95j86y235aroi85ht0Z: Name or service not known

解决:

hostname 命令获取机器名称,追加一个映射 iZwz95j86y235aroi85ht0Z

vim /etc/hosts

127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4

::1 localhost localhost.localdomain localhost6 localhost6.localdomain6

120.79.160.143 iZwz95j86y235aroi85ht0Z

windows用户 修改c:\windows\system32\drivers\etc\hosts文件,增加一条域名 与IP的映射

2、问题

[root@iZwz95j86y235aroi85ht0Z bin]# ./jmeter-server

Server failed to start: java.rmi.server.ExportException: Listen failed on port: 0; nested exception is:

java.io.FileNotFoundException: rmi_keystore.jks (No such file or directory)

An error occurred: Listen failed on port: 0; nested exception is:

java.io.FileNotFoundException: rmi_keystore.jks (No such file or directory)

解决:

拥有RMI over SSL的有效密钥库,或者禁用了SSL。

1、禁用SSL

jmeter.property里面 server.rmi.ssl.disable 改为 true,表示禁用

3、问题:

[root@userCenter bin]# ./jmeter-server

Created remote object: UnicastServerRef2 [liveRef: [endpoint:127.0.0.1:39687,objID:[-18db419a:167773db861:-7fff, -176377700206527642]]]

Server failed to start: java.rmi.RemoteException: Cannot start. userCenter is a loopback address.

An error occurred: Cannot start. userCenter is a loopback address.

解决:

执行时加上参数./jmeter-server -Djava.rmi.server.hostname=10.1.1.222

4、问题:

[root@iZ949uw2xehZ bin]# ./jmeter

Java HotSpot™ 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000c0000000, 1073741824, 0) failed; error=‘Cannot allocate memory’ (errno=12)

There is insufficient memory for the Java Runtime Environment to continue.

Native memory allocation (mmap) failed to map 1073741824 bytes for committing reserved memory.

An error report file with more information is saved as:

/usr/local/jmeter/apache-jmeter-4.0/bin/hs_err_pid5855.log

解决:

编辑jmeter

搜索 : “${HEAP:=”-Xms1g -Xmx1g -XX:MaxMetaspaceSize=256m"}"

改变初始堆内存和最大堆内存

5、仅修改 server_port 即可,下面两者一样

server.rmi.localport=8899 表示slave server启动显示的端口

server_port=8899 表示master机器要远程连接的端口 即 remote_hosts=xxxx:8899

6、

我们要在多网卡的服务器上开启RMI服务的话必须指定IP,使他们能够在同一个网段内。

需要以下几步(假定所有机器都在10.120.11.*网段,agent服务器为linux,controller服务器为windows):

1) 修改agent服务器,指定agent机器的IP

修改jmeter-server文件

vi jmeter-server

修改RMI_HOST_DEF=-Djava.rmi.server.hostname=xxx.xxx.xxx.xxx(需要连接的IP)

2)修改server服务器,指定server机器的IP

修改jmeter.bat文件

新增set rmi_host=-Djava.rmi.server.hostname=10.120.11.214

修改set ARGS=%DUMP% %HEAP% %NEW% %SURVIVOR% %TENURING% %PERM% %DDRAW% %rmi_host%

7、确定在controller机器上安装jdk,版本和jmeter一致,配置环境变量:Java_home等

在Agent机器上安装jdk,配置环境变量:Java_home和JMeter_home

安装目录不要带空格,最好都是简短的英文路径

8、master机器启动后会拷贝jmx文件到slave机器,所以不需要在每台slave机器上也上传一份jmx,只需要在master机器上上传一份jmx脚本即可。

如果使用csv进行参数化,则需要把参数文件在每台slave上拷一份且路径需要设置成一样的。

总样本数 = 线程数 * 循环次数 * 执行机总数

9、连接失败原因排查

以下步骤进行排查:

jmeter-server是否启动;

是否联网

ping 服务器IP是否畅通.

telnet 端口 192.168.3.10 1099

检查服务器的防火墙是否关闭。

阿里云安全策略是否正常

10、“could not find ApacheJmeter_core.jar”

解决:在Agent机器安装jdk,并设置环境变量

11、”Bad call to remote host"

解决:检查被控制机器上的jmeter-server有没有启动,或者remote_hosts的配置是否正确。

相关文章

  • 分布式压测具体步骤

    1、在master和slaves机器上分别按照相同版本的jdk和jmeter 2、在master机器上 1)修改配...

  • Jmeter分布式压测的配置及注意事项

    1、Jmeter分布式压测的目的: 避免单机压测的物理硬件限制,更加贴近真实情况 2、Jmerer分布式压测的原理...

  • jmeter 分布式压测配置Linux

    本文只讲jmeter分布式压测怎么在Linux环境下配置:使用分布式压测,是因为单个压测机并发到不到系统要求,所以...

  • Jmeter基于Docker的分布式压测

    Jmeter基于Docker的分布式压测 Jmeter基于docker分布式压测的测试环境搭建 在本机按照自己的习...

  • 使用boost::asio 模拟JMeter做分布式压测网络部分

    本例使用boost::asio模拟jmeter做分布式压测网络部分的原理,虽然比较简单,但基本可以实现分布式压测的...

  • jmeter分布式压测与no-GUi模式压测

    一、分布式压测 1.分布式压测总体结构 选择一台机器作为调度机(master),其他的机器作为测试执行的执行机(...

  • 分布式压测

    1.本地机器由于本身自己的配置低,只能压到1000个并发,此时就需要分布式压测 2.Jmeter压测原理 Mast...

  • go web压测工具实现

    这篇Go实现单机压测工具博客分以下几个模块进行讲解,为了更加清楚的知道一个分布式Web压测实现,我们从单机单用户 ...

  • Jmeter分布式压测

    进行性能测试时,由于单台机器模拟并发用户数量有限,希望用多台负载机进行负载模拟。我们可以在多台机器上分别部署Jme...

  • Jmeter分布式压测

    简单来说就是,多台机器同时安装jmeter,选择一台机器作为调度机,其他作为压力机。进行相应的配置后,就可以用调度...

网友评论

      本文标题:分布式压测具体步骤

      本文链接:https://www.haomeiwen.com/subject/gbubyltx.html