web-dev-qa-db-ja.com

リモートサーバーを備えたJMeter

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つの選択肢があると思います:

  1. マスターに外部IPを送信するように指示します
  2. マスターの外部IPに接続するようにサーバーに指示します。

しかし、これらのコマンドをどこに設定すればよいかわかりません。

どんな助けでも役に立ちます。

12
winna

これは機能しないようです 分散JMeterテスト 分散環境での負荷テストの要件を説明します。 2番目と3番目は、私が信じるあなたのユースケースに特有のものです。

  1. システムのファイアウォールがオフになっています。
  2. すべてのクライアントは同じサブネット上にあります。
  3. 192.x.x.xまたは10.x.x.xのIPアドレスが使用されている場合、サーバーは同じサブネット内にあります。
  4. JMeterがサーバーにアクセスできることを確認してください。
  5. すべてのシステムで同じバージョンのJMeterを使用していることを確認してください。バージョンの混合は正しく機能しない場合があります。
3
bwight

将来の読者の利益のために、答えを拒否しないでください。可能です!さらに、ファイアウォールを所定の位置に保つことができます。

この場合、私はポート4000を介してすべてを実行しました。

分散テストのためにJMeterクライアントとサーバーをAmazonEC2インスタンスと異なるネットワーク上のローカル開発マシンに接続する方法。

セットアップ:

  1. JMeter 2.13クライアント:ローカル開発コンピューター(異なるネットワーク)
  2. JMeter 2.13サーバー:AmazonEC2インスタンス

分散クライアント/サーバーJMeter接続を次のように構成しました。

1。ファイアウォール/ルーターにポート転送ルールを追加しました:

  • ポート:4000
  • 宛先:LAN上のJMeterクライアントのプライベートIPアドレス。

2。EC2インスタンスで「セキュリティグループ」設定を構成しました:

  • タイプ:許可:インバウンド
  • ポート:4000
  • ソース:JMeterクライアントのパブリックIPアドレス(私の開発コンピューター/ネットワークのパブリックIP)

更新:SSH接続がすでにある場合は、接続にSSHトンネルを使用できます。これにより、ファイアウォールルールを追加する必要がなくなります。

$ ssh -i ~/.ssh/54-179-XXX-XXX.pem ServerAliveInterval=60 -R 4000:localhost:4000 [email protected]

。構成済みクライアント$ JMETER_HOME/bin/jmeter.propertiesファイルのRMIセクション:

ここには、変更したデフォルト以外の値のみが含まれていることに注意してください。

#---------------------------------------------------------------------------
# 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

4。リモートサーバー$ JMETER_HOME/bin/jmeter.propertiesファイルのRMIセクションを次のように構成しました:

#---------------------------------------------------------------------------
# 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

5。JMeterサーバー/スレーブを次のコマンドで開始しました:

jmeter-server -Djava.rmi.server.hostname=54.179.XXX.XXX

ここで、54.179.XXX.XXXはEC2サーバーのパブリックIPアドレスです。

6。JMeterクライアント/マスターを次のコマンドで開始しました:

jmeter -Djava.rmi.server.hostname=121.73.XXX.XXX

ここで、121.73.XXX.XXXはクライアントコンピューターのパブリックIPアドレスです。

7。JMeterテストスイートを実行しました。

enter image description hereJMeter GUIログ出力

成功!

23
David Thomas

同様の問題が発生しました。JMeterサーバーがテスト結果を送信するために間違ったアドレスに接続しようとしました(ローカルホストに接続しようとしました)。

JMeterマスターを起動するときに次のパラメーターを設定することで、これを解決しました。

-Djava.rmi.server.hostname = xx.xx.xx.xx

6
Hugo