Jmeter負荷をかける考え方
Jmeterで負荷をかける際には、2つの考え方があると思います。
1.サーバが負荷に耐えられるか
2.同時接続に何人耐えられるのか
1つは、秒間○処理実行が可能というような評価になる。
もう一つは、同時接続・同時に○人操作が可能であるというような評価
この差は何?という感じですが、負荷テスト時のスレッドグループ、ランプアップ、ループなどの設定で差異が出てくるので注意が必要である。
負荷テストの評価視点
ステップ数・トランザクション数での評価
- ユーザの画面遷移数を評価として利用する。
- 秒間○画面処理できる。といった評価。
- 画像や静的コンテンツは排除したシナリオ。
- ログイン処理や検索などの処理の単位でサーバの処理能力を評価する。
同時接続数での評価
負荷テストの種類ごとのポイント
どんな設定でやるの?
ユーザ数600人が5分間ログインして検索する想定。
- スレッド数:600
- Ramp-Up:300(5分間)
- ループ回数:1
- 1シナリオ10秒の想定
- 上記の設定で秒間2スレッドのため、同時実行は20スレッド
同時接続数での評価
- システム同時接続ユーザを評価する。
- システムの特性による接続時間を考慮し、ユーザがどれくらいシステムにログインしているかを考慮したシナリオにする必要がある。
- 最終的にはサーバで設定しているコネクション数が上限になる。(はず)
- 同時接続数≠実行ステップ数
- ユーザ数600人がずっと接続している想定
- スレッド数:600
- Ramp-Up:300
- ループ:0(無限ループ)
- 無限ループなので止めるまで実行し続ける
- 実行し続けることで600人同時接続を実現する。
実行してみると・・・恐ろしいことになります。
600人が絶え間なく操作し続けるというシナリオに・・・。
じゃあ、どんな設定でやるの?
- タイマーを設定してやることで終了時間を指定
- スループットタイマで実行スレッド数の調整
- スループットシェーピングタイマ
設定方法
- スレッドグループ右クリック
- 追加
- タイマ
- jp@-Throughput Shaping Timer
どんな設定になったの?
- ユーザ数600人がずっと接続している想定
- スレッド数:600
- Ramp-Up:300
- ループ:0(無限ループ)
- 無限ループなので止めるまで実行し続ける
- 実行し続けることで600人同時接続を実現する。
- 接続しているが、操作しているのは秒間60人前後
まとめ
負荷テスト実施時には、負荷をどういう視点で捉えるかが重要になります。
負荷テストも実施しただけではなく、その後の分析も大変重要です。
ログの分析や、サーバのリソースの監視環境を構築した後に負荷テストの実施をおすすめします。
以上