JMeterを分散モードでセットアップしようとしています。 ec2インスタンスでサーバーを実行していて、マスターをローカルコンピューターで実行したいと考えています。サーバー上でRMIを正しく機能させるためにいくつかの希望を飛び越えなければなりませんでしたが、「Java.rmi.server.hostname」をec2インスタンスのIPに設定することで解決しました。
次の(そしてできれば最後の)問題は、サーバーがマスターと通信することです。
問題は、これを内部ネットワークから行っているため、マスターが外部接続のIP(92.XXX.XXX)を返送する必要があるときに、ローカル/内部IPアドレス(192.168.1.XXX)を送信していることです。 XXX)。
これはjmeter-server.logで確認できます。
エラー-jmeter.samplers.RemoteListenerWrapper:testStarted(Host)Java.rmi.ConnectException:接続がホストに拒否されました:192.168.1.50;ネストされた例外は次のとおりです。
そのホストIPは間違っています。 92.XXX.XXX.XXアドレスである必要があります。これは、マスターログに次のように表示されるためだと思います。
2012/07/29 20:45:25情報-jmeter.JMeter:IP:192.168.1.50名前:XXXXXX.local氏名:192.168.1.50
そして、このIPはRMIのセットアップ中にサーバーに送信されます。
だから私は2つの選択肢があると思います:
しかし、これらのコマンドをどこに設定すればよいかわかりません。
どんな助けでも役に立ちます。
これは機能しないようです 分散JMeterテスト 分散環境での負荷テストの要件を説明します。 2番目と3番目は、私が信じるあなたのユースケースに特有のものです。
将来の読者の利益のために、答えを拒否しないでください。可能です!さらに、ファイアウォールを所定の位置に保つことができます。
この場合、私はポート4000を介してすべてを実行しました。
分散クライアント/サーバーJMeter接続を次のように構成しました。
更新:SSH接続がすでにある場合は、接続にSSHトンネルを使用できます。これにより、ファイアウォールルールを追加する必要がなくなります。
$ ssh -i ~/.ssh/54-179-XXX-XXX.pem ServerAliveInterval=60 -R 4000:localhost:4000 [email protected]
ここには、変更したデフォルト以外の値のみが含まれていることに注意してください。
#---------------------------------------------------------------------------
# Remote hosts and RMI configuration
#---------------------------------------------------------------------------
# Remote Hosts - comma delimited
# Add EC2 JMeter server public IP address:Port combo
remote_hosts=127.0.0.1,54.179.XXX.XXX:4000
# RMI port to be used by the server (must start rmiregistry with same port)
server_port=4000
# Parameter that controls the RMI port used by the RemoteSampleListenerImpl (The Controler)
# Default value is 0 which means port is randomly assigned
# You may need to open Firewall port on the Controller machine
client.rmi.localport=4000
# To change the default port (1099) used to access the server:
server.rmi.port=4000
# To use a specific port for the JMeter server engine, define
# the following property before starting the server:
server.rmi.localport=4000
#---------------------------------------------------------------------------
# Remote hosts and RMI configuration
#---------------------------------------------------------------------------
# RMI port to be used by the server (must start rmiregistry with same port)
server_port=4000
# Parameter that controls the RMI port used by the RemoteSampleListenerImpl (The Controler)
# Default value is 0 which means port is randomly assigned
# You may need to open Firewall port on the Controller machine
client.rmi.localport=4000
# To use a specific port for the JMeter server engine, define
# the following property before starting the server:
server.rmi.localport=4000
jmeter-server -Djava.rmi.server.hostname=54.179.XXX.XXX
ここで、54.179.XXX.XXXはEC2サーバーのパブリックIPアドレスです。
jmeter -Djava.rmi.server.hostname=121.73.XXX.XXX
ここで、121.73.XXX.XXXはクライアントコンピューターのパブリックIPアドレスです。
JMeter GUIログ出力
成功!
同様の問題が発生しました。JMeterサーバーがテスト結果を送信するために間違ったアドレスに接続しようとしました(ローカルホストに接続しようとしました)。
JMeterマスターを起動するときに次のパラメーターを設定することで、これを解決しました。
-Djava.rmi.server.hostname = xx.xx.xx.xx