Jmeter分布式压测-controller报错: Engine is busy - please try later
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Jmeter分布式压测-controller报错: Engine is busy - please try later相关的知识,希望对你有一定的参考价值。
参考技术A 在使用jmeter进行分布式压测的时候,controller远程启动全部的时候会等待几分钟后,出现报错: Engine is busy - please try later ;slave出现的错误是"connection refused",拒绝请求;可以尝试的解决办法是:在slave的jmeter-server里配置指定本机地址;或者是关闭slave上的防火墙;可是我这么做之后,问题还是一样;
那么就就可以判断问题不是出在slave上,然后我就开始在controller里调试;然后我本机开启了jmeter-server.bat,然后对controller的jmeter-server.bat进行远程调用;发现脚本是可以正常运行的;最后发现 controller的防火墙没关闭 ;我也是醉了,没想到controller的防火墙也会影响到jmeter分布式请求;
以下是自己一些(不懂架构的不成熟的)猜想:
防火墙的目的是为了拦截一些不知道啥的请求,对外也会拦截,那么同理,对内也是要拦截的;挺反人类的;
以后要是遇到服务器与客户端之间的通信时,那么最好是关闭防火墙;保平安;
Jmeter分布式压测
一台机器支持的并发有限,如果并发数比较多时,就需要使用多台计算机同时进行压测。
这就需要Jmeter的分布式压测
1.在主控机上保存好脚本
2.在压力机上安装jdk和Jmeter,启动bin目录下的jmeter-server.bat
3.修改主控机bin目录下的 jmeter.properties,找到remote_hosts,后面加上压力机的ip地址:端口号(默认为1099)
4.重新启动Jmeter,运行-->远程启动或远程全部启动,就可以多台计算机同时进行压测
在命令行下运行Jmeter
1.现在Windows图形界面中设置好脚本、并发数、执行时间等
2.可以把脚本文件放到bin目录下(执行时可以不用加路径)也可以在其他目录下(执行时需要加绝对路径)
3.jmeter -n -t /usr/local/xxx.jmx -l /usr/local/xxx.jtl
-n的意思是没有图形化界面运行
-t的意思就是指定运行哪个脚本
-l的意思是运行结果保存哪个文件里面
4.查看结果:在图形化界面中运行Jmeter,添加聚合报告等,导入生成的.jtl文件即可
以上是关于Jmeter分布式压测-controller报错: Engine is busy - please try later的主要内容,如果未能解决你的问题,请参考以下文章