Apidog

オールインワン協働API開発プラットフォーム

API設計

APIドキュメント

APIデバッグ

APIモック

API自動テスト

パフォーマンステストにおけるスループットとは?明確に解説します

@apidog

@apidog

Updated on 3月 29, 2025

パフォーマンステストの世界では、スループットは最も重要でありながら、しばしば誤解されがちな指標の一つです。パフォーマンスエンジニアやQAの専門家として、スループットを明確に理解することは、アプリケーションのパフォーマンスを正確に測定し、潜在的なボトルネックを特定するために不可欠です。この包括的な技術記事では、スループットが何であるか、どのように測定されるか、そしてパフォーマンステストのシナリオにおいてなぜ重要であるかを探ります。

スループット指標に飛び込む前に、効果的なパフォーマンステストは頑丈なAPIテスト機能から始まることが多いことに注意する価値があります。

APIdogは、APIの開発、テスト、文書化を1つの統合プラットフォームで合理化する包括的なPostmanの代替品として登場しました。

ボタン

自動テスト、パフォーマンス監視、共同作業フローなどの機能により、APIdogはAPIが負荷のもとでどのように動作するかを理解するための重要な基盤を提供し、この記事で探るスループットテストを行う際の貴重な補助ツールとなります。

APIdogのようなツールを使用してAPIの基本的な機能を確立することで、より広範なパフォーマンステスト戦略におけるスループットボトルネックを効果的に分析できます。

ボタン

パフォーマンステストにおけるスループットの定義

パフォーマンステストにおけるスループットは、3つの主要な方法で定義できます:

  1. 時間当たりのトランザクション数: 基本的に、スループットはテスト中に特定の期間に生成されたトランザクションの数です。これは、システムが指定された時間枠内で処理できるリクエストや操作の数を測定します。
  2. 必要なキャパシティ測定: スループットは、ウェブサイトまたはアプリケーションが処理できるキャパシティの量を表し、さまざまな負荷条件下での処理能力を示します。
  3. パフォーマンス目標指標: パフォーマンステストを開始する前に、組織は通常、アプリケーションが正常に処理しなければならない時間あたりの特定のリクエスト数であるスループット目標を設定します。

技術的な用語で言えば、スループットは一般的に 秒あたりのトランザクション数 (TPS) または 秒あたりのリクエスト数 (RPS) として表現され、これはパフォーマンステストにおける基本的な測定単位です。

現実世界の文脈におけるスループット:アナロジー

実用的な観点からスループットを理解するために、次のアナロジーを考えてみてください:

「ジョーのガス」という名前のガソリンスタンドがあり、3つのポンプがあります。各係員は、タンクのサイズに関係なく、任意の車を満タンにするのに正確に1分かかります。この制約の下で、ジョーのガスの最大スループットは1分間に3台です。いくら車が到着しても、スタンドは1分間に3台までしかサービスできません。

これは重要なパフォーマンス概念を表しています: 最大スループットは固定の上限制約です。処理できない台数、すなわち1分間に3台以上の車が到着すると、それらは待機列を形成し、待つ必要があります。

この原則はWebアプリケーションにも適用されます。アプリケーションが1秒間に50のリクエストを受け取りますが、1秒間に30のトランザクションしか処理できない場合、追加の20リクエストは待機列に並び、遅延やユーザー体験の悪化を引き起こす可能性があります。

パフォーマンステストにおけるスループットの測定

LoadRunner、JMeter、k6のようなパフォーマンステストツールには、テスト中にこの指標を視覚化し分析するのを助けるスループットモニターが装備されています。一般的なスループット測定プロセスは、次のパターンに従います:

  1. ランプアップフェーズ: 仮想ユーザーがリクエストを出し始めると、スループットが比例して増加します。
  2. 安定状態: すべてのユーザーがアクティブで一貫したパターンで作業しているとき、スループットは通常、一定の水準で安定します。
  3. 上限発見: 環境の最大スループットを特定するために、テスターはユーザーの負荷を徐々に増加させ、スループットが増加を止めるか、減少し始めるまで続けます。
  4. ボトルネックの特定: スループットがプラトーに達するか、ユーザーの負荷を増やしても減少する場合、それは通常アプリケーション内のボトルネックを示します。

スループット結果の分析:3つのテストシナリオ

3つの異なるスループットテストシナリオとそれが明らかにするものを見てみましょう:

テストシナリオ #1: 健全なスループット

25人の同時ユーザーを持つ健全なスループットパターンでは、すべてのユーザーがログインしアクティブになると、スループットは比較的一貫しています。この安定したスループットは、システムが効率的に負荷を処理していることを示しています。

テストシナリオ #2: 悪化するスループット

この懸念すべきシナリオでは、ユーザーがログインするにつれてスループットが最初に増加しますが、すべてのユーザーがアクティブになった後は、スループットが安定せずに予想外に急落します。このパターンは通常、深刻なパフォーマンスボトルネックを示しています。

テストシナリオ #3: データベースボトルネックの特定

スループットデータを診断指標(たとえば、HP Diagnosticsの「J2EE – トランザクションが要素で費やした時間」チャート)と重ねることで、スループットの問題の根本原因を特定できます。この例では、データベース層が過剰な処理時間を消費しており、リクエストのキューを作成し、応答時間を増加させています。

ネットワークスループットとレイテンシに影響を与える要因

いくつかの技術的要因がスループットの低下やレイテンシの増加に寄与する可能性があります:

ハードウェアの問題

  • 古くなったまたは故障した機器: 古いルーターや故障したデバイスは、データの流れの効率を大幅に制限する可能性があります
  • ネットワークインフラの制限: 帯域幅を制限するネットワークアーキテクチャの物理的制限

ネットワークに関連する要因

  • 過剰なトラフィック: 過剰な同時リクエストがパケットロスを引き起こす
  • 伝播遅延: パケットが光速でポイント間を移動するのにかかる時間
  • 伝送媒体: 光ファイバー、無線、銅などの異なる媒体が異なるスループット能力を持つ
  • パケットサイズ: 大きなパケットは、送信と受信により多くの時間がかかる

処理遅延

  • ルーター処理時間: ゲートウェイノードはパケットヘッダーをチェックし、潜在的に変更する必要があります
  • コンピュータおよびストレージの遅延: スイッチなどの中間デバイスは、ストレージおよびディスクアクセス中に遅延を引き起こす可能性があります
  • 信号増幅: 信号を増幅するために使用されるリピーターは、追加のレイテンシをもたらすことがあります

スループットを測定および監視するためのツール

効果的なパフォーマンステストには、スループットを測定するための適切なツールが必要です。一般的なオプションには次のものが含まれます:

  1. シンプルネットワーク管理プロトコル (SNMP): ネットワークデバイスを管理および監視するためのアプリケーション層プロトコルで、単一および複数ベンダーの環境におけるデバイス間の普遍的な通信方法を提供します。SNMP v3は高度なセキュリティ機能を提供します。
  2. Windows管理インスツルメンテーション (WMI): Windows搭載デバイスおよびアプリケーションの集中管理のためのマイクロソフトの仕様セットで、システムの状態、構成、およびセキュリティ設定へのアクセスを提供します。
  3. tcpdump: ネットワークトラフィックを監視およびキャプチャするためのオープンソースのコマンドラインツールで、パケットヘッダーを表示し、フィルタリングのためのブール検索演算子をサポートします。
  4. Wireshark: 伝送時間、プロトコル、ヘッダー、送信元/宛先情報に関する洞察を提供する包括的なオープンソースのネットワークトラフィック分析ツールです。
  5. パフォーマンステストツール: LoadRunner、JMeter、k6のような専用のパフォーマンステストツールのほとんどは、組み込みのスループット監視を含んでいますが、これを「秒あたりのリクエスト」と呼ぶことがあります。

スループットと他のパフォーマンス指標との関係

スループットは孤立して存在するわけではなく、他の重要なパフォーマンス指標と相互に関連しています:

スループット対応答時間

スループットが高くなるほど、システムがより多くのリクエストを処理する際に応答時間が増加することがよくあります。最適化の目標は、受け入れ可能な応答時間を維持しながらスループットを最大化することです。

スループット対同時ユーザー

通常、ユーザーの負荷とスループットの間には特定の点まで相関があります。最大キャパシティに達した後は、追加のユーザーに関係なくスループットがプラトーまたは減少することがあります。

スループット対リソース利用率

システムリソース(CPU、メモリ、ディスクI/O、ネットワーク)は、スループット容量に直接影響を与えます。スループットと同時にリソース利用率を監視することで、ハードウェア関連のボトルネックを特定するのに役立ちます。

パフォーマンステストにおけるスループットの最適化

スループット分析に基づいて、いくつかの最適化戦略を実施できます:

  1. 水平スケーリング: 負荷を分散し、全体のスループット容量を増加させるために追加のサーバーを導入すること
  2. 垂直スケーリング: 既存のハードウェアをアップグレードする(CPUコアの増加、RAMの増加、ディスクの高速化)ことで、処理能力を向上させること
  3. コード最適化: スループットを制限する非効率なアルゴリズムやデータベースクエリをリファクタリングすること
  4. コネクションプーリング: オーバーヘッドを削減するためにデータベース接続を事前に確立し再利用すること
  5. キャッシング戦略: 繰り返しのリクエストの計算負荷を減らすために適切なキャッシングを実施すること
  6. 負荷分散: 複数のサーバーにリクエストを分散させ、リソース利用を最適化すること

結論:パフォーマンステストにおけるスループットの重要性

スループットはパフォーマンステストにおける最も重要な指標の一つであり、さまざまな負荷条件下でのアプリケーションの処理能力への直接的な洞察を提供します。スループットパターンと他のパフォーマンス指標との関係を理解することで、テスターは次のことができます:

  1. ビジネス要件に基づいた現実的なパフォーマンス目標を設定する
  2. プロダクション環境に影響を与える前にシステムのボトルネックを特定する
  3. インフラストラクチャのスケーリングおよび最適化に関するデータ駆動型の意思決定を行う
  4. パフォーマンスの向上が実際に容量の増加をもたらしているかどうかを検証する

包括的なパフォーマンステストのために、スループットは応答時間、エラーレート、リソース利用率などの関連指標とともに常に分析され、アプリケーションのパフォーマンスの全体像を提供します。スループット分析をマスターすることで、パフォーマンスエンジニアはアプリケーションがピーク負荷条件下でも一貫した信頼性のあるパフォーマンスを発揮できるようにすることができます。

パフォーマンステストにおけるスループットの重要な役割を探求してきた今、APIdogのようなツールが全体的なテスト戦略をどのように補完するかを再確認する価値があります。

ボタン

APIdogを使用して、完全なパフォーマンステストの前に予備的なAPI検証と負荷シミュレーションを行うことで、チームは開発サイクルの早い段階でAPIレベルでの潜在的なスループットボトルネックを特定できます。APIdogの直感的なインターフェースを使用すると、チームはAPIエンドポイントを迅速に作成、検証、文書化でき、そのパフォーマンス監視機能が応答時間とスループットの制限についての初期の洞察を提供します。

APIdogを使用したこの準備作業は、包括的なスループットテストへのスムーズな移行を実現し、より対象を絞ったパフォーマンス最適化の努力を可能にします。包括的なパフォーマンステストがスループットの問題を明らかにする際に、APIdogのよく文書化されたAPI構造を持っていることで、ボトルネックに寄与する特定のエンドポイントを特定し、対処することが容易になり、より効率的なパフォーマンステストのワークフローを作成します。

ボタン