版权声明:本文为博主原创文章,转载请标明作者及出处。
Jmeter 是Java 应用,对于CPU和内存的消耗比较大,因此,当需要模拟数以千计的并发用户时,使用单台机器模拟所有的并发用户就有些力不从心,甚至会引起JAVA内存溢出错误。
其实,Jmeter的远程启动可以帮助我们解决此问题,通过单个 jmeter 客户端控制多个远程的jmeter服务器,使它们同步的对服务器进行压力测试。
【环境】
这里,把控制多个机器执行的机器称作Controller,把真正向服务器施加压力的机器成为Agent。
Controller机器:Win7 + Jmeter3.2 + jdk1.8 ,ip = *.*.*.48
Agent机器:Jmeter3.2 + jdk1.8 ,ip = *.*.*.95
注意:
①Controller与Agent的Jmeter版本要一致,否则会出现远程调用失败(JRMP);
【配置】
Controller机器:Jmeter安装路径的bin下,编辑jmeter.properties文件,追加如下内容:
# Jmeter远程启动:Controller机配置,格式为:“IP1:port1,IP2:port2”,如下只配置了一台Agent;
remote_hosts=*.*.*.95:1029
Agent机器:Jmeter安装路径的bin下,编辑jmeter.properties文件,追加如下内容:
# Jmeter远程启动:Agent机配置
server_port=1029
server.rmi.localport=1029
【启动】
①Controller机器:“运行”→“远程启动”,可以看到我们配置的Agent机器的IP及端口,如下所示,选择这台机器;
②Agent机器:
Jmeter安装在Windows平台上:cmd到dos中,进入Jmeter安装路径的bin目录下,执行“jmeter-server”
Jmeter安装在Linux平台上:进入Jmeter安装路径的bin目录下,执行“./jmeter-server”;
否则会报如下错误:“Java.net.ConnectionException: Connection refused:connect”
③Controller机器:点击“启动”按钮即可执行,此时可在Agent的机器上看到执行的情况(Windows);
至此,远程启动执行完毕。