jmeter分布式压测在内网(外网)部署注意事项
分布式压测
分布式压测前提条件
-
控制机和压力机都在内网,使用内网通信
-
控制机和压力机都用公网ip,使用外网通信
-
不管是部署在本地还是虚拟机或者云服务器,开放所需端口,其中RMI通信存在附加端口,详见此文了解:https://blog.csdn.net/smooth00/article/details/115342555
-
如果使用非系统java环境,需要在java运行文件中增加设置
-
liunx:在jemter、jmeter.sh中增加:
JAVA_HOME=/opt/jdk-11.0.1/ JVM_ARGS="-Dnashorn.args=--no-deprecation-warning"
-
windows:在jmeter.bat中增加:
set JAVA_HOME=/opt/jdk-11.0.1/ set JVM_ARGS="-Dnashorn.args=--no-deprecation-warning"
-
-
压力机的jmeter的路径需要一致
-
如果使用到csv文件,需要每个压力机都有该文件,且路径与脚本中设置一致
windows为控制机,liunx为负载机
- master控制机配置 编辑jmeter.properties配置文
- slave负载机1与slave负载机2一样的配置 注意ip即可 两个负载机是linux的所以 vim jmeter.properties
- linux负载机启动jmeter-server时可能会报错 编辑文件 vim jmeter-server
控制机及负载机都是liunx
-
jmeter -n -t test.jmx -R ip1,ip2,ip3 -l testReport.jtl其中 -R 指定远程连接的slave机器的ip地址,多个ip之间用逗号隔开。
-
启动脚本,增加-r参数会读取配置文件中的ip,来启动远程服务。jmeter -n -t test.jmx -r -l test.jtl
-
当然还可以通过 上面说的-R 参数来覆盖jmeter.properties中的remote.hosts
jmeter -n -t test.jmx -R 192.168.3.156:1099 -l test.jtl 效果都是一样的。如果这里出现卡顿,可能是插件配置文件等,没有统一。或者端口没有开放,修复好以后,需要停掉slave的服务在进行启动,否则可能出现下列错误