負荷試験(JMeter)をやってみた。その1(環境構築編)

どうもはじめまして新人です!
新規構築サイトの負荷試験要望がありましたのでJMeterをAWS環境で構築してみました。
実は負荷試験自体は完了していないのですがBlogに書くネタが新人なのでストックが無いということで
今回の環境構築でつまった点などを投稿いたしますのでご参考になれば幸いです。

まず負荷を掛ける側のJMeterをセットアップします。
今回は負荷側(JMeter)をMaster/Slave3台というクラスター構成で作成しています。
1台構成で試験テストを行いましたが
負荷を上げていくとJMeter側の負荷が高くなってしまいまともな負荷が掛けられませんでしたので
3倍にして相手側(新規構築サイト)をギャフンといわしてやろうって魂胆です。

今回はMasterを別のSecurity Groupに作成してしまい相互のSecurity Groupで設定変更するという事をやってしまい苦労しました。

AWS以外の環境でも同じ手順でセットアップは可能です。
今回はJmeterのGUIを使用してログを見たかったのでAMIはWindows_Server-2008-R2_SP1-Japanese-64Bit-Base-2014.05.14 (ami-1f67261e)を使用しております。

最初はお試しという事でt1.microで作成してみましたがメモリ不足でJMeterが起動しませんでした。

Windowsの場合は最低でもm3.mediumは必要と思います。(OS自体でメモリを食うので)
今回は短期での使用ですのでm3.largeでアップしています。

インスタンスが立ち上がりましたらAdmin権限のアカウントでログインします。
JMeterはJAVAで動作しますのでJAVAのインストール確認を行ってください。
javaインストール自体はhttps://java.com/ja/download/からダウンロードしてウイザードに従うだけです。
今回はVer.7の最新版をインストールしていますがVer6以降が動作条件との事です。

次にJmeter本体のダウンロードです。
http://jmeter.apache.org/download_jmeter.cgiから"apache-jmeter-2.11.zip"をダウンロードしてください。

jmeter

ダウンロードしたZIPファイルを任意の場所に展開すればとりあえずインストール完了です。
猫の手を借りる必要もないですね。

Jmeterの起動になります展開したフォルダ(デフォルトはapache-jmeter-x.xx)内にbinフォルダがありますので
その中の「jmeter.bat」をクリックすれば起動します。
JAVAのパスが通っていない云々のエラーで起動出来なかった場合は「jmeter.bat」にjavaのパスを指定してみてください。
起動を確認したらSlaveServerを立ち上げます。

今回はAmazonLinuxでma.smallを3台作成し別のSecurity Groupに作成してしまい
Master側のSecurity Groupとの間にTCP 1099,30000~40000ポートを相互で開けるよう設定しています

AWS環境でJmeterをMaster/Slave構成で作成する場合の注意点としては
同じSecurity Groupで作成するのが良いとの事!!!

JMeterの設定はWindowsと同じでJavaが動作すればJmeter起動しますので割愛致します。

Slaveが立ち上がりましたらMaster側のbin配下にあります。「jmeter.properties」にSlave名を書いてあげます。
具体的にはremote_hostsを下記の用にAMI名で記載します。(IPで書くとうまく動作しないそうなのでAMI名で記載しています)
remote_hosts=ec2-AAA-AAA-AAA-AAA.compute-1.amazonaws.com:1099,ec2-BBB-BBB-BBB-BBB.compute-1.amazonaws.com:1099,ec2-CCC-CCC-CCC-CCC.compute-1.amazonaws.com:1099,......

これで準備が整いましたのでMaster側でjmeter.batからJMeterを起動します。
Slave側は今回/home/ec2-userに展開しましたのでそれぞれ
「/home/ec2-user/apache-jmeter-2.11/bin/jmeter-server &」という感じでスタートさせます。
これでMaster/Slave構成でのJMeterのセットアップは完了です。

適当な対象に動作確認の為、簡単なテストを実施すると良いと思います。
Master/Slave構成の場合はMaster側の「リモートで実行」にSlaveのAMIが表示されているはずですので
それを実行すればSlaveからMasterで設定したテストが実行されます。

という事で最後は適当になってきましたが環境構築は終了となります。

※JMeterは使用方法を誤ると大変危険ですので決して他人のサイトを対象にしないように致しましょうということで時間のようですので筆を置かせて頂きます。(次回に続く?)

feather-small

投稿者プロフィール

tsubo
2014年6月からスカイアーチに入社しました新入りのおっさんです。
雑食な性格ですのでその時の気分で記事を投稿していきたいと思います。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


Time limit is exhausted. Please reload CAPTCHA.

ABOUTこの記事をかいた人

2014年6月からスカイアーチに入社しました新入りのおっさんです。 雑食な性格ですのでその時の気分で記事を投稿していきたいと思います。