JMeterで負荷テストした時のメモ
概要
Apache JMeterを使って、HTTPSのチャット書き込みの負荷テストをした時のメモ。
参考URL
JmeterでHTTPSをMITM Proxyとして使い暗号通信内容をぶっこ抜く - Qiita
HTTPSの通信をJMeterのProxyを使って、通信を記録して再生する手順。
SpotInstanceとJMeterを使って400万req/minの負荷試験を行う | Developers.IO
JMeterをAWS EC2上の複数のLinuxから分散して負荷アクセスをする手順。
JMeterでHTTPS通信を記録(レコーディング)
Windows7でやった。
JMeter設置
apache-jmeter 2.13 をダウンロードしてきて、
C:\jmeter
の下に配置。
C:\jmeter\apache-jmeter-2.13\bin\ApacheJMeter.jar
をクリックするとJMeterが起動する。
JMeterの設定ファイル作成(.jmx)
テスト計画
スレッドグループ ←作成
記録コントローラー ←作成
統計レポート ←作成
ワークベンチ
HTTPプロキシサーバー ←作成
HTTPプロキシサーバーの、 「対象となるコントローラー」で「記録コントローラー」を指定
Firefox(などブラウザ)のプロキシ設定をする。
localhost 8080
Firefoxの設定で、
認証局証明書
に
C:\jmeter\apache-jmeter-2.13\bin\ApacheJMeterTemporaryRootCA.crt
をインポート。
HTTPプロキシサーバー画面にある、
開始
ボタンで通信の記録を開始。
左メニューのツリーにある、記録コントローラーの下に通信記録のデータができるので、
必要な通信を残して要らないHTTPリクエストを消す。
※今回、実行した負荷テストは、通信方法がFlash Remotingだったので、
POSTの内容が、binディレクトリに
POST2249813149613323929.binary
というような名前で作成されていた。
複数サーバーで分散してJMeterを動かす時にこのファイルが各サーバーにないと、負荷テストの通信がエラーになる。
分散負荷テスト用のJMeter設定
EC2上のAmazon Linuxを3〜4台立ち上げて実施した(はず)。
EC2の立ち上げ
以前のメモと同じようにVPCを作成。
AWSのVPCを使ってWeb + DB サーバーの2台構成にするためのメモ - kubotti’s memo
その後、Management ConsoleからAmazon Linuxのインスタンスを適当な数(3台とか5台とか)立ち上げ。
VPCセキュリティグループの設定
ポートを開ける。
1099番ポートはJMeterの待ち受け用
30000-60000番はRMI通信用
らしい。
1099番と
30000-60000番のポートは、
送信元に自分自身のセキュリティグループIDを入れればいいっぽい。
ssh通信のために22番ポートも開ける。
※VPCを設定する時、新しくセキュリティグループを作っても、
デフォルトのセキュリティグループも適用される。
その場合は、デフォルトのセキュリティグループでもポートを開ける設定をしないといけない。
各サーバーにJMeterを設置
wget http://ftp.kddilabs.jp/infosystems/apache//jmeter/binaries/apache-jmeter-2.13.tgz tar xzf apache-jmeter-2.13.tgz
JMeter slaveサーバーの起動
VPC内のローカルIPを指定して、JMeterを起動。(自分のローカルIPを指定する)
/home/ec2-user/apache-jmeter-2.13/bin/jmeter-server -Djava.rmi.server.hostname=172.20.4.46 & /home/ec2-user/apache-jmeter-2.13/bin/jmeter-server -Djava.rmi.server.hostname=172.20.4.47 &
JMeter masterサーバーの設定
vi /home/ec2-user/apache-jmeter-2.13/bin/jmeter.properties
remote_hosts=172.20.4.46:1099, 172.20.4.47:1099
.jmxファイルのアップロード。
loadtest_sample1.jmxなど。
分散負荷テスト実施
/home/ec2-user/apache-jmeter-2.13/bin/jmeter -n -t loadtest_sample1.jmx -r