パフォーマンステストは、同時接続ユーザー数、RPS (秒間リクエスト数)、TPS (秒間トランザクション数) という 3 つのコアメトリックに基づいています。これらのメトリックの関係を理解することは、適切な負荷モデルの選択、キャパシティの推定、システムパフォーマンスの評価に役立ちます。
メトリックの定義
仮想ユーザー
Performance Testing (PTS) では、同時接続ユーザーとは、ご利用のシステムに対して操作をアクティブに実行するシミュレートされたユーザーである仮想ユーザー (VU) のことです。各 VU は、スクリプト化されたワークフロー (ログイン、閲覧、注文の送信など) に従い、サーバーに実際の負荷を生成します。
VU は、他の 2 つのユーザーカテゴリとは異なります。
| ユーザータイプ | 定義 | サーバー負荷を生成するか |
|---|---|---|
| 登録ユーザー | データベースに保存されているアカウント | いいえ |
| オンラインユーザー | システムに接続しているが、必ずしもアクティブではないユーザー | いいえ |
| 同時接続ユーザー (VU) | 操作をアクティブに実行しているユーザー | はい |
同時接続ユーザー数は、常にオンラインユーザー数の一部です。システムに 100,000 人のオンラインユーザーがいても、実際の負荷を生成しているのは 10,000 人だけという場合もあります。
TPS (秒間トランザクション数)
TPS は、ご利用のシステムが 1 秒あたりに完了するトランザクション数を測定します。TPS が高いほど、システムのスループットが高いことを示します。
RPS (秒間リクエスト数)
RPS は、受信リクエストのレートを測定します。RPS は、容量計画やスロットリングに使用します。
応答時間 (RT)
応答時間とは、リクエストが送信されてからクライアントが完全なレスポンスを受信するまでの時間です。
オープン負荷モデルとクローズド負荷モデル
PTS は、システムがトラフィックを処理する方法の基本的な違いに対応する 2 つの負荷モードをサポートしています。
| ロードモード | モデルタイプ | コントロール | 典型的なユースケース |
|---|---|---|---|
| 同時実行モード | クローズドモデル | 同時接続 VU 数 | ユーザーがセッションを維持する Web サイトや H5 ページ |
| RPS モード | オープンモデル | 受信リクエストのレート | ログインエンドポイントや注文送信などのステートレス API |
同時接続モードは、VU の数を固定し、クライアントの視点からパフォーマンスを測定します。VU が 1 つのトランザクションを完了すると、すぐに次のトランザクションを開始するため、リクエストレートはサーバーの応答時間に依存します。このモデルは、ご利用のシステムが超過トラフィックをキューに入れる場合 (セッションベースの Web アプリケーションなど) に適しています。
RPS モードは、リクエストの到着レートを固定し、サーバーの視点から TPS を測定します。リクエストレートは応答時間に関係なく一定に保たれます。このモデルは、ご利用のシステムが超過トラフィックをキューに入れることができない場合に使用します。ほとんどのステートレス API エンドポイントはこのように動作します。
VU と TPS の間の変換
VU と TPS の関係は次のとおりです。
TPS = VU / RTここで、RT の単位は秒です。
計算例:
| シナリオ | VU | RT | TPS |
|---|---|---|---|
| 高速なトランザクション | 1 | 1 ms (0.001 s) | 1,000 |
| 低速なトランザクション | 1,000 | 1 s | 1,000 |
| 単一ユーザー、単一トランザクション | 1 | 1 s | 1 |
RT が 1 ms の 1 VU と、RT が 1 s の 1,000 VU は、どちらも 1,000 TPS を生成しますが、ユーザーエクスペリエンスは大きく異なります。RT のコンテキストがない TPS 単体では、不完全な情報しか得られません。
VU と TPS の目標値の推定
VU の推定
既存のシステム:代表的なピーク期間を選択します。システムにアクティブに接続しているユーザー (オンラインユーザー) をカウントし、その 10% を同時接続ユーザー数とします。
例:30 分のピーク時間帯に 100,000 人のオンラインユーザーがいる場合、テスト用の同時接続ユーザー数は約 10,000 人となります。
新規システム:履歴データがないため、ビジネスチームと協力して、予想される同時接続負荷を推定します。
TPS の推定
既存のシステム:ピーク時間帯に 3〜10 分の時間枠を選択します。1 秒あたりの平均トランザクション数を計算し、それに 2〜5 を掛けてピーク TPS を推定します。
例:3 分間で 180,000 トランザクション = 平均 1,000 TPS → 負荷テストの目標ピーク TPS は 2,000〜5,000 となります。
新規システム:履歴データがないため、ビジネスチームと協力して、予想されるトランザクション量を推定します。
システムパフォーマンスの評価
TPS は、サーバー側のパフォーマンスの主要なメトリックです。同時接続ユーザー数は、RT と組み合わせた場合にのみ意味を持つ補助的なメトリックです。
同時接続ユーザー数だけでは信頼性が低い理由:
同時接続ユーザー数が必要な場合、RT を前提条件として考慮する必要があります。
システムの負荷が低く、思考時間 (RT に等しい) がビジネスセッションに考慮されている場合、同時接続ユーザー数は 2 倍になる可能性があり、VU 数だけでは誤解を招く可能性があります。
TPS 値が異なるシステムでは、必要な同時接続ユーザー数も異なります。
結論:パフォーマンス目標は TPS で定義してください。VU 数は、常に RT と併せて、副次的な参考情報として使用します。
PTS における負荷テスト戦略
パフォーマンステストは、標準化され、順序立てて実行する必要があります。PTS は、テスト効率を最大化するために、設定可能な開始負荷レベルと最大負荷レベルを持つ TPS ベースの目標を使用します。VU の実数を指定するのではなく、目的の TPS を定義し、PTS が開始レベルから最大レベルまで徐々に負荷を上げていくようにします。これにより、高い失敗率や応答時間の肥大化を引き起こす突然のトラフィックスパイクを回避し、より信頼性の高い結果を得ることができます。
思考時間を短く設定して、最悪のケースの条件をシミュレートしてください。これにより、実際のトラフィックスパイクをより正確に反映した、控えめなパフォーマンス推定値が得られます。
要点
| 原則 | 詳細 |
|---|---|
| TPS がパフォーマンスを決定する | システムパフォーマンスは、同時接続ユーザー数ではなく、TPS によって決まります |
| 最大 TPS には上限がある | 特定のシステムにおいて、ピーク TPS は一定の範囲内に収まります |
| 同時接続ユーザー数は調整可能 | 同じ TPS 目標は、VU と RT の異なる組み合わせで達成できます |
| 最悪のケースのテスト | 思考時間を短く設定して、最悪のケースのように負荷をかけます |
| 典型的な VU の範囲 | 大規模システム:10,000〜50,000 VU。中小規模システム:約 5,000 VU |