背景:公司为了满足大并发的情况,需要测试组配合,就需要分布式压测,这里我把我踩过坑都记录下来;
环境:Linux + jmeter-v.5.1.1;使用3台2核4G的压力机;
Q1: Server failed to start: java.rmi.server.ExportException: Listen failed on port: 0; nested exception is: java.io.FileNotFoundException: rmi_keystore.jks
A1:解决思路,先查看端口号是否被占用,jmeter的默认端口号是1099;使用netstat -lntp|grep 1099查看1099是否被占用,一般都不会被使用;最重要的排查就是jmeter的rmi配置,SLL默认注释,我们一般压测都是在局域网进行,所以,没必要校验;需要打开,vim打开/bin下jmeter配置文件(jmeter.properties)修改如下
然后重启jmeter-server,即可;
Q2: 在公司分布式压测,能够顺利进行,回到家本想调试下,一直报如下错误:
服务器名字和报错的时候显示的服务器名不一致(refuse to host:172.18.11.232,而我服务器名明明是192.168.0.103)
A2:这是服务器双网卡造成的问题,修改如下:
在linux上 修改jmeter-server文件
RMI_HOST_DEF=-Djava.rmi.server.hostname=slave机器名
修改主机名为自己的配置,然后重启jmeter-server就可以了
Q3:启动jmeter-server直接报错了,说未知服务
A3:这个问题很好解决,没有配置系统hosts文件;只需要加上本机IP 主机名的配置;vim /etc/hosts
Q4:分布式压测,进行Nginx域名转换后,忘了配置hosts文件;或者文件配错了,导致压测一直报错
A4:配置好 /etc/hosts 文件即可