公開日:2013/04/24、更新日:2013/10/29
JMeterでWeb負荷測定を行う際に、スレッドグループ設定の「スレッド数」と「Ramp-Up期間(秒)」、「ループ回数」を設定しますが、これらの意味と挙動について、実行例を交えて記載しています。
スレッド数
JMeterで負荷測定を行う際に、JMeterを実行する端末から発行するリクエストのスレッド数です。
別の言葉で表現すると、JMeterが生成するクライアント数であり、負荷試験におけるアクティブユーザ数(アクセスユーザ数)です。
動き方は以降に実行例を2パターン記載していますので、そこで確認してください。
Ramp-Up期間(秒)
指定したスレッド数を生成する時間(秒)で、全てのスレッドが起動するまでの時間(秒)を指定します。
スレッドの生成(ユーザのアクセス)を分散させる事が出来るわけです。
例えば、スレッド数が「10」、Ramp-Up期間(秒)が「1」の場合は、一気にドカンと10アクセスユーザがサイトにアクセスする事になります。
スレッド数が「10」、Ramp-Up期間(秒)が「10」の場合、10秒以内に10個のスレッドを生成するよ、という事になります。徐々にユーザーのアクセスが増えていく形にできます。シナリオの実行結果を見てみると、大体1秒毎にスレッドを生成しているみたいです。
ループ回数
各スレッドで実行シナリオをループする回数です。
スレッド数をループ回数で掛け算した値が「総テスト回数(総スレッド数)」となります。
例えば、1シナリオに10個のHTTPリクエストが含まれている場合で、スレッド数が「5」で、ループ回数が「6」の場合は、計300回のリクエストがWebサーバに出される事になります。
例えば、1シナリオに10個のHTTPリクエストが含まれている場合で、スレッド数が「5」、ループ回数が「6」、Ramp-Up期間(秒)が「60」の場合、計300回分のリクエスト(の発行開始)を60秒で生成するよ、という事になるかと思います。
JMeterでの実行結果①
HTTPリクエストが1つだけのスレッド数が「5」、ループ回数が「6」、Ramp-Up期間(秒)が「60」で実行してみました。
「結果を表で表示」で取得した実行結果は以下になります。
全30回のHTTPリクエストが発行されています。スレッド数「5」 x ループ回数「6」=30回、という計算です。
また、1回目のリクエスト発行から30回目のリクエスト発行までは、約51秒になっています。Ramp-Up期間(秒)が「60」ですので、ほぼ合っている、という事で。
なお、最初の「スレッドグループ 1-1」にてHTTPリクエストが計6回発行され、しばらくした後に、次は「スレッドグループ 1-2」でHTTPリクエストが計6回発行されています。その後も同じように、「スレッドグループ 1-5」まで計6回ずつリクエストが発行されています。
JMeterでの実行結果②
HTTPリクエストが1つだけのスレッド数が「10」、ループ回数が「2」、Ramp-Up期間(秒)が「100」で実行してみました。
「結果を表で表示」で取得した実行結果は以下になります。
全20回のHTTPリクエストが発行されています。スレッド数「10」 x ループ回数「2」=20回、という計算です。
また、1回目のリクエスト発行から20回目のリクエスト発行までは、約91秒になっています。Ramp-Up期間(秒)が「100」ですので、ほぼ合っています。
なお、最初の「スレッドグループ 1-1」にてHTTPリクエストが計2回発行され、しばらくした後に、次は「スレッドグループ 1-2」でHTTPリクエストが計2回発行されています。その後も同じように、「スレッドグループ 1-10」まで計2回ずつリクエストが発行されています。
相変わらず、「スレッド数」、「Ramp-Up期間(秒)」、「ループ回数」のうまい説明が難しいのですが、感覚的には分かった感があります。(どうでしょう?)
更新履歴
- 2013/10/29:ループ回数の箇所の記載を微修正しました。
- 2013/10/15:スレッド数、Ramp-Up期間(秒)、ループ回数の説明を修正しました。
- 2013/06/02:更新
- 2013/04/24:公開日
>例えば、1シナリオに10個のHTTPリクエストが含まれている場合で、スレッド数が「5」、ループ回数が「6」、Ramp-Up期間(秒)が「60」の場合、計300回分のリクエスト(の発行開始)を60秒で生成するよ、という事になるかと思います。
ならないです。
例も、1HTTPリクエストで行っているから、そうなっているように見えるだけです。
300回を60秒で投げるってすごいですよ。
Ramp-Up/スレッド数の時間毎に、スレッドが開始していますね。