我在 ubuntu 机器上运行 jmeter 客户端。我尝试通过 RMI 启动远程测试。启动工作正常,但我没有得到结果。
启动 JMeter 服务器(rhel 6.5):
$HOME/jmeter/bin/jmeter-server -Djava.rmi.server.hostname=10.168.88.2
启动JMeter客户端(ubuntu 14.04):
$HOME/jmeter/bin/jmeter-java.rmi.server.hostname=192.168.88.2'
启动JMeter客户端(Windows 7):
c:\jmeter\bin\jmeter.bat -java.rmi.server.hostname=192.168.113.47'
当我从主机(ubuntu)运行测试并在我的客户虚拟机(windows7)上进行微小更改时,此错误出现在 jmeter-server.log 中
**Ubuntu**
ERROR - jmeter.samplers.RemoteListenerWrapper: testStarted(host)
java.rmi.ConnectException: Connection refused to host: 127.0.1.1;
**Windows7**
ERROR - jmeter.samplers.RemoteListenerWrapper: testStarted(host)
java.rmi.ConnectException: Connection refused to host: 192.168.113.47;
事实:我的客户虚拟机(win7)的IP会转移到jmeter服务器,但是我的ubuntu主机还没有达到这一点。
我的 Ubuntu 主机上的 IPTables 如下所示:
$ sudo iptables -S
-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
-N ufw-after-forward
-N ufw-after-input
-N ufw-after-logging-forward
-N ufw-after-logging-input
-N ufw-after-logging-output
-N ufw-after-output
-N ufw-before-forward
-N ufw-before-input
-N ufw-before-logging-forward
-N ufw-before-logging-input
-N ufw-before-logging-output
-N ufw-before-output
-N ufw-reject-forward
-N ufw-reject-input
-N ufw-reject-output
-N ufw-track-forward
-N ufw-track-input
-N ufw-track-output
-A INPUT -j ufw-before-logging-input
-A INPUT -j ufw-before-input
-A INPUT -j ufw-after-input
-A INPUT -j ufw-after-logging-input
-A INPUT -j ufw-reject-input
-A INPUT -j ufw-track-input
-A FORWARD -j ufw-before-logging-forward
-A FORWARD -j ufw-before-forward
-A FORWARD -j ufw-after-forward
-A FORWARD -j ufw-after-logging-forward
-A FORWARD -j ufw-reject-forward
-A FORWARD -j ufw-track-forward
-A OUTPUT -j ufw-before-logging-output
-A OUTPUT -j ufw-before-output
-A OUTPUT -j ufw-after-output
-A OUTPUT -j ufw-after-logging-output
-A OUTPUT -j ufw-reject-output
-A OUTPUT -j ufw-track-output
我猜测防火墙阻止了所有传入的 RMI 回调和一些(ubuntu 主机)传出信息。
有人能帮我解决这个问题吗?
答案1
我建议阅读这些文章 -https://cloud.google.com/compute/docs/tutorials/how-to-configure-ssh-port-forwarding-set-up-load-testing-on-compute-engine/和https://www.smartmeter.io/documentation#toc-controller---generators-communication为了更好地理解分布式模式下节点之间的通信。
您通过以下方式设置的主机名-Djava.rmi.服务器.主机名,它们是实例正在运行的机器的主机名吗?我的意思是 10.168.88.2 是服务器的主机名,而 192.168.88.2 是您的 Ubuntu 机器的主机名?
还要确保你可以平从服务器到客户端,因为服务器需要连接到客户端才能发送结果。
如果您无法从服务器直接访问客户端,请使用 SSH 隧道(在第一篇文章中有详细描述)。
希望这可以帮助。
答案2
好的,我能够停用所有防火墙规则。RMI 调用被防火墙阻止了。
现在我将调整防火墙,然后就可以开始测试了:)