たんたんめん日記

ソシャゲ関連のなんでもやさん備忘録

【jmeter】複数のjmeterを連携させて負荷テストを行う

大量のスレッドを設定すると、java側のスレッド制限エラーが発生してしまうことがあります。
また、Webサーバーがハイスペック過ぎて、jmeterを動かすマシンの方が負荷が上がってしまうこともあります。

そんな時、複数のマシンでjmeterを分散起動させ連携させてテストさせるとイイカンジになるかもしれません。

仕組み

  • -rオプションを付けて起動したjmeterで、apache-jmeter/bin/jmeter.propertieseに記述されたホストのjmeterを連携させて起動します。

  • 連携されるjmeterホストでは、jmeter-serverを立ち上げておく必要があります。

  • jmeterホストの同じパスにjmx(設定ファイル)や出力ログのディレクトリが存在する必要があります。

  • -Jxxxによるシェルからの変数設定には対応していないようです。

jmeter動作ホストの設定(複数台それぞれで)

  • jmeter-serverの設定

      # vim /usr/local/apache-jmeter/bin/jmeter-server
    
          #RMI_HOST_DEF=-Djava.rmi.server.hostname=xxx.xxx.xxx.xxx  
          ↓コメントをはずして自サーバーのIPアドレスにする
          RMI_HOST_DEF=-Djava.rmi.server.hostname=192.168.0.110
    
  • jmeter-server立ちあげ

      # /usr/local/apache-jmeter/bin/jmeter-server
    

コントロール元設定

  • jmeter.propertieseの設定

      # vim /usr/local/apache-jmeter/bin/jmeter.propertiese
    
          #remote_hosts=localhost:1099,localhost:2010
          ↓コメントを外し、jmeter-serverを立ち上げているIPアドレスを列挙する
          remote_hosts=192.168.0.110,192.168.0.111,192.168.0.112
    
  • コントロール元でリモートモードでjmeterを連携起動

      $ /usr/local/apache-jmeter/bin/jmeter -n \
      -t /tmp/jmeter/hoge.jmx  -l /tmp/jmeter/log/2.log \
      -p /usr/local/apache-jmeter/bin/jmeter.properties -r  
    

上記の場合、連携される全ホストで/tmp/jmeter/hoge.jmxファイルと、/tmp/jmeter/log/ディレクトリが存在する必要があります。

結果は?

別々のターミナルでjmeter-serverを動作させておくと、連携されて起動した時にログが表示されます。
また、結果ログはコントロール元で一括して集計されます。