JMeterでWebサイトの負荷テスト
現在のサイトがどのくらいの負荷に耐えれるのか?
JMeterを使って実験をしてみました ( Windows環境です )
Apacheソフトウェア財団にて開発されているソフトウェア。
パフォーマンス測定および負荷テストを行うJavaアプリケーションです
JMeterをダウンロード
http://jmeter.apache.org/download_jmeter.cgi
上記からJMeterのzipをダウンロードし展開します。
Javaのインストール
https://www.java.com/ja/download/
上記からJavaをダウンロードしインストールします。( Windows版64ビットJava )
JMeterを日本語化する
- 解凍されたフォルダのなかに「bin」フォルダがあり、中にjmeter.batがあることを確認します。
- jmeterjp.batというファイルに下記の内容を記述して保存します。
SET JVM_ARGS=”-Duser.language=ja”
jmeter.bat
JMeterを起動
先ほど作成したjmeterjp.batを実行することでアプリケーションが起動します
1. 負荷テスト設定 ( スレッドグループ作成 )
- 「テスト計画」を右クリック
- 「追加」
- 「Threads(Users)」
- 「スレッドグループ」を選択
2. 負荷テストの設定 ( 負荷の内容を設定 )
スレッド数: 30
Ramp-Up期間(秒): 30
ループ回数: 1 (無限ループのチェックボックスはオフにしてください)
30秒間の間に30回アクセスが行われそのセットが1回実行されるという意味です
3. 負荷テストの設定 ( HTTPリクエスト設定 )
- 「スレッドグループ」を右クリック
- 「追加」
- 「サンプラー」
- 「HTTP リクエスト」を選択
4. 負荷テストの設定 ( ページ指定 )
プロトコル: https
サーバー名またはIP: 対象のホスト
ポート番号: 443
ここまで設定でしたらデータを保存します。
左上のフロッピーアイコンから保存してください。
実行結果を表示する統計レポートを設定
- 「テスト計画」を右クリック
- 「追加」
- 「リスナー」
- 「統計レポート」を選択
設定した内容でテストを実行
スレッド数: 30
Ramp-Up期間(秒): 30
ループ回数: 1
こちらの設定ではエラーは有りませんでした。
スレッド数: 1000
Ramp-Up期間(秒): 1
ループ回数: 60
次にこちらの結果
こちらの設定でもエラーは有りませんでした。
このくらいのアクセスでもエラーは確認できなかったので取り急ぎは問題なさそうです
一時的にアクセスが集中したりするとサーバーが503を返却しページが見れなくなったりするので事前にこういったテストで確認してみるのも良いかと思います。
エラーになる主な原因と注意事項
- 同時アクセス数の上限に達している
- DB接続数の上限に達している
- 重い画像を多用、wordpress等でプラグインを多用
あまりに極端な数値でテストを行うとレンタルサーバー側に迷惑になることもありますので使用の際はご注意ください。