複数台でのJmeter試験
何番煎じかわからないが、Jmeterでの負荷試験を行う際の構成メモ。
OSはWindowsで構築。
構成
Jmeterクライアント:1台
Jmeterサーバ:2台
前準備
Jmeterの実行環境を整える
サーバ
AWSであれば、ネットワークがHigh以上のインスタンスで
メモリが7GB以上あるインスタンスをお勧めする。
Jmeterのクライアントは結果出力のため、メモリ最適化インスタンスでも問題ない。
Java
jdkの64bitをインストールすること。
32bitだとメモリ制限あり。
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
FW
邪魔なので無効。
ポートを指定して許可したい場合は、こちらのブログが参考になります。
http://d.hatena.ne.jp/terazzo/20130819/1376929377
AWS
ELBに向けて負荷をかける場合はPre-Warmingを忘れずに。(サポート加入必須)
http://www.slideshare.net/AmazonWebServicesJapan/20130612-aws-meisterregenerateelbpublic/47
Jmeter
公式から最新版をダウンロードして、お好きなフォルダに配置。
http://jmeter.apache.org/download_jmeter.cgi
ヒープサイズ調整
調整しないで実施した場合、高負荷で「OutOfMemoryError」が発生することがほとです。
Jmeterクライアント/サーバともに割り当てるメモリ量を調整して、Jmeterを起動するようにする。
apache-jmeter-2.13binjmeter.bat # サーバの性能によって調整 Xms初期 Xmx最大 set HEAP=-Xms1024m -Xmx4096m
リスナーの調整
長期的な負荷試験では、
詳細な情報のリスナーを取得しているとファイルに出力したとしてもメモリを食いつぶす事があります。
その際は統計レポート等などに絞るのが良い感じでした。
Jmeterクライアント設定
Jmeter-SeverのPrivateIPを指定する
apache-jmeter-2.13binjmeter.properties remote_hosts=xxx.xxx.xxx.xxx:1099,xxx.xxx.xxx.xxx:1099
JMX
負荷試験を実施するシナリオはWebの仕様に合わせて作成する。
ユーザの挙動の合わせ定数タイマを設定しないとDOS攻撃のようなシナリオになるので注意。
試験
サービスを起動する。
Jmeter-Server側で「jmeter-server.bat」
Jmeter-Clinet側で「jmeter.bat」
実行→開始(リモート) からRemote先のIPが閲覧できていれば問題ない。
jmxを開き、スレッド数、Ramp-UP、スケジューラを設定し、試験を実行する。