問題現象:
性能測試時,使用的服務器配置了雙網卡,windows客戶機配置了四網卡,坑爹的配置,內外網的隔離,導致在使用jmeter進行分布式測試的時候總是連接失敗。
原因分析:
Jmeter采用了rmi進行遠程調用,在開啟RMI服務時,如果服務端有多個網卡,它只是使用其中任意一個網卡,默認情況下,導致jmeter的controller機器和agent機器不在同一個網段內,無法互通,導致失敗
解決方法:
我們要在多網卡的服務器上開啟RMI服務的話必須指定IP,使他們能夠在同一個網段內。
需要以下幾步(假定所有機器都在10.120.11.*網段,agent服務器為linux,controller服務器為windows):
1、 修改agent服務器,指定agent機器的IP
修改jmeter-server文件
# vi 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% %PERM% %DDRAW% %rmi_host%
修改完成后,重新啟動即可