一般に、パフォーマンス テスト実施者として同時ユーザ数またはスレッド数を設定するときは、ユーザの操作をより正確にシミュレートできるように、シナリオにタイマが設定されていることを確認してから、[Start]をクリックします。
適切な同時ユーザ数を選択することは、非常に簡単です。ただし、ヒット/秒(秒あたりのヒット数または RPS: requests per second)が特定の量に達する場合は、もう少し複雑になります。そのため、以下の質問を自問する必要があります。
最初は、何をどれぐらいに設定すればよいですか?
実際は非常にシンプルです。まず、ヒット/秒とは何でしょうか? 秒あたりのヒット数は、1 秒あたりに開始されるサンプルの平均数です。次に、BlazeMeter の[Timeline Report]タブを確認するときや、ヒット/秒の値を観察するとき、[Graph]オプション値を <1 minute> に設定すると、表示される値は、その 1 分間の平均ヒット/秒の値を表します。
単一スレッドの単純なテストを行うインスタンスでは、HTTP 要求が実行後に 1 秒間の待機を繰り返し行うように設定されています。つまり、スレッドごとに 1 ヒット/秒が発生します(すべて問題なく進んだ場合)。
ヒット/秒の計算式は以下のとおりです。
1 サンプル、1 スレッド、1 秒の遅延 + (前提として)ページ読み込みに 2 秒の応答時間 = 3 秒、要求間の遅延合計 = スレッドは 1 分あたり 20 回実行される = 0.33 ヒット/秒
*つまり、1 サンプル、1 スレッド、1 秒の遅延で、サーバの応答時間は非常に短い (0.25ms から 0ms)。
同時ユーザ数が 1,000 の場合、ヒット/秒はどうなりますか?
ヒット/秒の意味はわかりましたが、では、同時ユーザ数が 1,000 のテストでヒット/秒はどれぐらいの数になるでしょうか。それは試してみるまでわかりません。しかし、同時ユーザ数を低く設定して無料のテストを実行することができます(無料アカウントにサインアップ)。そして開始後のヒット/秒の数値を把握したうえで、目的のヒット/秒を達成できるように掛け算するだけです。
注: サーバの負荷を増やすと、1 秒あたりに処理する必要がある要求の数も増えます。それに伴い、ボトルネックが発生する可能性が上昇し、応答時間が増加します。結果: ヒット/秒の比率が減少します。
例: サンプル数 1、スレッド数 60、各サンプル間のタイマ 25 秒、応答時間 5 秒 = 各スレッドは 1 分あたり 2 回実行されます。したがって、ヒット/秒の値は (2X60X1)/60 = 2 となります。*上に示したヒット/秒の計算式を参照
ヒット/秒の数値を制御できますか?
さいわい、JMeter では 2 つのコントローラーを通じてスループットを制御できます。
1. Constant Throughput Timer - スループットの量(分あたりのサンプル数)を設定できます。そのためには、スループット値に適合するように、スクリプトの速度を落とす要求の後にタイマーを追加します。
2. Throughput Controller - サンプルを実行する最大回数を設定するか、または、サンプルを実行する割合(つまり、サンプルを 100 回実行するか、30% の時間だけ実行するか)を設定できます。さらに、わずかの追加設定を行うことで、テスト実行中の Constant Throughput Timer と Throughput Controller の値を制御できます。
その制御は、BlazeMeter の Real Time Test Control という優れた機能を使用して行います。
以上、ヒット/秒の意味と制御方法について説明しました。テストの成功をお祈りします!
0 コメント