Pocket

JMeter でWeb負荷測定を行う際のスレッドグループ設定に関する実行例

  • add this entry to hatena bookmark

公開日: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」で実行してみました。

jmeter-threadgroup

「結果を表で表示」で取得した実行結果は以下になります。

jmeter-table

全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」で実行してみました。

「結果を表で表示」で取得した実行結果は以下になります。

jmeter-table2

全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:公開日

RSS配信中です。

Pocket

2 thoughts on “JMeter でWeb負荷測定を行う際のスレッドグループ設定に関する実行例

  1. >例えば、1シナリオに10個のHTTPリクエストが含まれている場合で、スレッド数が「5」、ループ回数が「6」、Ramp-Up期間(秒)が「60」の場合、計300回分のリクエスト(の発行開始)を60秒で生成するよ、という事になるかと思います。
    ならないです。
    例も、1HTTPリクエストで行っているから、そうなっているように見えるだけです。
    300回を60秒で投げるってすごいですよ。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です


*

チェックサイト RSS Feed読者登録はいかがでしょうか?RSS配信中です。