【jmeter】複数のjmeterを連携させて負荷テストを行う
大量のスレッドを設定すると、java側のスレッド制限エラーが発生してしまうことがあります。
また、Webサーバーがハイスペック過ぎて、jmeterを動かすマシンの方が負荷が上がってしまうこともあります。
そんな時、複数のマシンでjmeterを分散起動させ連携させてテストさせるとイイカンジになるかもしれません。
仕組み
-rオプションを付けて起動したjmeterで、apache-jmeter/bin/jmeter.propertieseに記述されたホストのjmeterを連携させて起動します。
-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を動作させておくと、連携されて起動した時にログが表示されます。
また、結果ログはコントロール元で一括して集計されます。