我的环境为:controller在windows上,agent在linux上
注意:
1.安装相同版本的jmeter
2.安装相同版本的java sdk
3.关闭防火墙
① 在linux上解压jdk到/soft/jdk1.7.0_79
配置#vi /etc/profile 在里面添加如下内容
export JAVA_HOME=/soft/jdk1.7.0_79
export JAVA_BIN=/soft/jdk1.7.0_79/bin
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME JAVA_BIN PATH CLASSPATH
让/etc/profile文件修改后立即生效 ,可以使用如下命令:. /etc/profile
,注意: . 和 /etc/profile 有空格.
ln -s -f /soft/jdk1.7.0_79/jre/bin/java
ln -s -f /soft/jdk1.7.0_79/bin/javac
重启测试 java -version 屏幕输出:
java version "jdk1.6.0_02" Java(TM) 2 Runtime Environment, Standard Edition (build jdk1.6.0_02) Java HotSpot(TM) Client VM (build jdk1.6.0_02, mixed mode)
② 进入jmter安装目录bin/ ,修改jmter-server文件
去掉注释:
RMI_HOST_DEF=-Djava.rmi.server.hostname=192.168.114.128
192.168.114.128 为本地ip地址
③ 启动jmter-server服务
./jmter-server
显示如下:
[root@chengeng bin]# ./jmeter-server
Created remote object: UnicastServerRef [liveRef: [endpoint:[192.168.114.128:33440](local),objID:[-7075e6c4:152f1cdb400:-7fff, -2770469111811856936]]]
如果出现启动错误:
1).尝试修改hostname为不带域名的 例如,www.baid.com,修改为baidu
hostname baidu
2).修改/etc/hosts文件
192.168.114.128 baidu
④ 在windows上修改jmter controller端配置文件:jmeter.properties ,在bin目录下
添加远程服务器,支持添加多个remot_host:
remote_hosts=127.0.0.1:1099,10.2.81.114,112.74.115.60,192.168.114.128
⑤ 启动jmter GUI
选择运行-》远程启动-》192.168.114.128
问题:出现连接refused ,尝试将server端防火墙关闭
service iptables stop
其他可能的问题:
问题现象:
性能测试时,使用的服务器配置了双网卡,windows客户机配置了四网卡,坑爹的配置,内外网的隔离,导致在使用jmeter进行分布式测试的时候总是连接失败。
原因分析:
Jmeter采用了rmi进行远程调用,在开启RMI服务时,如果服务端有多个网卡,它只是使用其中任意一个网卡,默认情况下,导致jmeter的controller机器和agent机器不在同一个网段内,无法互通,导致失败
解决方法:
我们要在多网卡的服务器上开启RMI服务的话必须指定IP,使他们能够在同一个网段内。
需要以下几步(假定所有机器都在10.120.11.*网段,agent服务器为linux,controller服务器为windows):
1、 修改agent服务器,指定agent机器的IP
修改jmeter-server文件
vim jmeter-server
修改
RMI_HOST_DEF=-Djava.rmi.server.hostname=10.120.11.82
2、 修改server服务器,指定server机器的IP
修改jmeter.bat文件
新增
set rmi_host=-Djava.rmi.server.hostname=10.120.11.214
修改
set ARGS=%DUMP% %HEAP% %NEW% %SURVIVOR% %TENURING% %RMIGC% %PERM% �RAW% %LOCALE%
修改完成后,重新启动即可。