jmeter分布式压测(及问题记录)

  需要使用jmeter模拟大并发的情况时,单台压测机不能满足需求,可进行分布式压测。

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

 

如何配置(以Windows为例):

1.压力机:

1)执行当前压力机下jmeter安装包bin目录下的jmeter-server的批处理文件,此时该机器上启动一个java进程,并随机分配端口,监听来自调度机的请求。

但是这里我们需要配置成固定端口方式,否则调度机远程启动压力机时,会报错。

配置固定端口:打开bin目录下的jmeter.properties文件,更改server_port、server.rmi.localport的端口为要配置的端口。

 

2.调度机:

打开jmeter安装包bin目录下的jmeter.properties文件,更改remote_hosts为,压力机ip及执行jmeter-server后启动的端口。

 

 开始测试:

  1.调度机正常配置好要测试的地址、参数、监听器等后,选择远程启动,就可以用刚刚配置好的压力机,进行压测了。

 

补充Linux上的配置:

1、启动slave server 命令:jmeter-server -Djava.rmi.sver.hostname=192.168.0.64

 

 遇到的问题及解决:

1、问题:jmeter4.0,启动slave报错 “java.io.FileNotFoundException: rmi_keystore.jks (没有那个文件或目录)

  解决:

  方法一:slave的jmeter.properties中,设置“server.rmi.ssl.disable=true”

  原因:jmeter4.0以上的版本,默认启用RMI连接的安全通信,需要创建密钥库。所以将SSL禁用即可。

  方法二:手动生成秘钥和证书。执行create-rmi-keystore.bat(Windows适用)或create-rmi-keystore.sh(Linux适用)

 

2、问题:调度机远程调用slave时,连接超时。查看slave上的jmeter-server.log,发现是与调度机的虚拟机网卡连接超时。

   解决:在调度机的jmeter.bat中修改配置指定客户端的网卡ip.

增加配置项:set rmi_host=-Djava.rmi.server.hostname=xxx.xxx.xxx.xxx
修改配置项:set ARGS=%DUMP% %HEAP% %NEW% %SURVIVOR% %TENURING% %PERM% %CLASS_UNLOAD% %DDRAW% %rmi_host%


注意事项:
1、master、slave的时间要同步,否则tps结果误差较大。

同步时间的命令:
Windows下:w32tm /config /manualpeerlist:"time.windows.com" /syncfromflags:manu
al /reliable:yes /update
Linux下:ntpdate time.windows.com

 

 

 

参考资料:

http://www.fblinux.com/?p=339

https://www.cnblogs.com/linbo3168/p/6042255.html

https://jmeter.apache.org/usermanual/jmeter_distributed_testing_step_by_step.html

https://stackoverflow.com/questions/50113061/jmeter-4-0-error-starting-remote-server?rq=1

https://www.cnblogs.com/suntingme/p/5995721.html

https://testerhome.com/topics/12474

https://blog.csdn.net/dev666/article/details/79776450

https://blog.51cto.com/ydhome/1862841?source=drt

posted @ 2018-07-17 17:06  M_Y敏兒  阅读(3689)  评论(0编辑  收藏  举报