🔖
JmeterとEc2を使ったお手軽負荷診断
初めに
この記事では、業務で負荷診断をしないといけなくなった人向け簡単ツールの紹介です。
特に難しいことはしてません。※AWSを使ってる案件のみ有効
gitはこちら:https://github.com/yuyu1023/qiita_jmeter
ツール構成
まず始めに今回紹介するツール構成はこちらです。
.
├── Makefile
├── hoge.pem
├── init.sh
├── log
└── tests
├── hoge_live.jmx
├── hoge_preview.jmx
└── hoge_staging.jmx
- ./Makefile
必要なコマンド類をまとめ、簡単に実行できるようにしてます。 - ./home.pem
指定サーバーに接続する為に必要な鍵です。それぞれの環境に合わせて名前は変わると思うので、良きようにしてください。 - ./init.sh
jmeterを実行する上で必要な設定を諸々まとめてます。このファイルは指定サーバー内で実行されます。 - ./log
指定サーバー内にあるlogを格納する場所です。 - ./test
シナリオを格納する場所。予めローカルでも挙動確認はしておいた方がいいです。
事前準備
- EC2でCentOSを立ち上げる。(ぽちぽちで行けます)
- 接続に必要な鍵を生成して保管。(./hoge.pemとの入れ替え想定)
- jmeterシナリオを./test/に格納。
- ./Makefile内の下記項目に今回利用するhost名と鍵名を設定。
# 構築対象のIPセット
HOSTNAME1 = ec2-xxx-xxx-xxx-xxx
# 鍵設定
KEY = hoge.pem
利用方法(基本的にコマンドぽちぽちしていくだけです)
-
初期構築 make all/setup
指定サーバーにjmeterを動かすために必要な諸々をインストールして、jmeterのシナリオをコピーしています。 -
負荷診断実行 make jmx-exe time=
date +%Y%m%d-%H%M%S
指定サーバー内に予めコピーしたシナリオをjmeterで実行します。実行結果は指定サーバー内 "/home/centos/log"配下に格納されます。 -
ログデータ取得 make jmx-get
指定サーバー内の"/home/centos/log"をローカルの"./log"にコピーする。 -
シナリオ再アップ make jmx-up
条件を変えたシナリオを指定サーバーにコピーします。またこの時コピーするシナリオはMakefile内で指定してるので良きようにして下さい。
基本的には①〜④をグルグル回すだけの作業になります。
まとめ
今回はサーバー1台想定でやりましたが、複数台でもこの構成使えます!(私は3台構成で実施しました)
Makefile周りを変更すれば実現可能ですので、是非触ってみて下さい。
※もし動かないよー!って人がいたらコメントください
参考リンク集
Discussion