すべてのプロダクト
Search
ドキュメントセンター

Platform For AI:サービスのストレステスト

最終更新日:Feb 04, 2026

Elastic Algorithm Service (EAS) は、大規模言語モデル (LLM) サービスと汎用サービスの両方に対応したストレステスト手法を提供します。ストレステストタスクを簡単に作成し、ワンクリックでストレステストを実行することで、ご利用の EAS サービスのパフォーマンスを完全に把握できます。このトピックでは、ストレステストタスクの作成方法と管理方法について説明します。

機能比較

EAS は、LLM サービスストレステストと汎用サービスストレステストの 2 種類のストレステストを提供します。サービスの種類とテストの目的に基づいて、適切なストレステストソリューションを選択してください。

機能

LLM サービスストレステスト

汎用サービスストレステスト

シナリオ

大規模言語モデル (LLM) に最適化されており、モデルの応答と生成速度を評価します。

HTTP/HTTPS インターフェイスを使用するすべてのサービスに適しています。

作成方法

PAI コンソールのみをサポート

PAI コンソール (auto モードのみサポート)
EASCMD クライアント (autoscanmanual モードをサポート)

主要メトリック

汎用サービスストレステストのメトリックに加え、LLM 固有のメトリックが含まれます:最初のトークンまでの時間 (TTFT)、出力トークンあたりの時間 (TPOT)、1 秒あたりのトークン数 (TPS)

1 秒あたりのリクエスト数 (QPS)、応答時間 (RT) など。

前提条件

  • デプロイ済みで利用可能な EAS サービス

    • EAS を使用して、ターゲットリージョンとワークスペースに少なくとも 1 つのオンラインサービスを作成済みであること。

    • サービスが実行中状態であり、呼び出し可能であること。

  • LLM サービスストレステストの特定の要件

    • サービスが vLLM、SGLang、LMDeploy、BladeLLM など、OpenAI API 操作と互換性のある推論エンジンでデプロイされていること。

    • サービスが /v1/completions または /v1/chat/completions インターフェイスを公開していること。

    • TTFT や TPOT などのトークン関連メトリックを収集するために、ストレステストデータに "stream": true フィールドを含めてストリーミングリクエストを構築する必要があること。

クイックスタート

このセクションでは、LLM サービスと汎用シナリオの両方で Qwen3-8B LLM サービスに対してストレステストを実行する方法を示します。詳細については、「大規模言語モデルのデプロイ」をご参照ください。

説明

これはクイックスタートガイドです。LLM サービスに対して汎用サービスのストレステストを実行しないでください。

ステップ 1:ストレステストタスクの作成

  1. PAI コンソールにログインし、ページ上部でターゲットリージョンを選択します。

  2. 左側のナビゲーションウィンドウでElastic Algorithm Service (EAS)をクリックして対象のワークスペースを選択し、EAS ページに移動します。

  3. Benchmark Task タブに移動し、Create Stress Testing Task をクリックします。

  4. 以下のパラメーターを設定し、その他はデフォルト値のままにします。パラメーターの詳細については、「LLM の構成詳細」および「汎用シナリオの構成詳細」をご参照ください。

    LLM サービスストレステスト

    パラメーター

    説明

    Basic Information

    Service

    テストするサービスには LLM Service を選択します。

    Service Endpoint

    Chat を選択します。

    Stress Testing URL

    サービスインターフェイスを選択すると、システムが自動的にサービス呼び出し URL を設定します。

    Model ID

    ModelScope または Hugging Face のモデル ID です。Qwen/Qwen3-8B を入力してください。

    Stress Testing Configurations

    Data Type

    Public Dataset

    Dataset

    ShareGPT。

    Test Mode

    [Fixed Concurrency Test] を選択します。

    Number of Request Samples

    200。

    汎用サービスストレステスト

    説明

    ストレステストコンソールでは、リクエストタイムアウトが 20 秒に制限されています。ストレステストレポートに 512 リターンコードが表示される場合、リクエストタイムアウトが原因である可能性が高いです。EAS ストレステストコンソールは現在、カスタムタイムアウト設定をサポートしていません。

    パラメーター

    説明

    Basic Information

    Service

    テスト対象のサービスを選択します。

    Stress Testing URL

    サービス呼び出し URL です。 /api/predict/<service_name>/v1/chat/comletions のように、完全なインターフェイスパスを指定する必要があります。

    Stress Testing Configurations

    Data Source

    Single Data Entry を選択します。

    Single Data Entry

    echo -n '{"model": "Qwen3-8B", "messages": [{"role": "user", "content": "Hello!"}], "max_tokens": 1024}' | base64 を実行して Base64 エンコーディングを取得します:

    eyJtb2RlbCI6ICJRd2VuMy04QiIsICJtZXNzYWdlcyI6IFt7InJvbGUiOiAidXNlciIsICJjb250ZW50IjogIkhlbGxvISJ9XSwgIm1heF90b2tlbnMiOiAxMDI0fQ==

ステップ 2:ストレステスト詳細の表示

  1. リアルタイムモニタリングデータの表示。タスクの [ステータス][実行中] の場合、タスク名をクリックしてリアルタイムモニタリングデータを表示します。image

  2. ストレステストレポートの表示。 タスクの [ステータス][完了] の場合、タスク名をクリックしてストレステストレポートを表示します。

    ストレステストレポートには、Basic InformationStress Testing ConfigurationsTest Result、およびTest Monitoringが含まれます。モニターメトリックの詳細については、「ストレステストタスクのモニターメトリック」をご参照ください。

ステップ 3:ストレステストタスクの管理

コンソールでのストレステストタスクの管理

Benchmark Task タブでは、作成済みタスクのリストを表示し、EnableCloneCopy ReportDelete などの操作を実行できます。

image

EASCMD クライアントを使用したストレステストタスクの管理

  • ストレステストタスクのリストの表示

    bench list コマンドを使用して、現在のユーザーが作成したストレステストタスクのリストを表示します。以下の例は、Windows 64 ビットのコマンド形式を示しています。

    eascmdwin64.exe bench ls

    以下は出力例です。

    [RequestId]: 7F953F8E-8897-5785-808A-CA648302****
    +-------------------------+--------------------------+-------------+----------------+---------+---------------------+
    |        TASKNAME         |          TASKID          |   REGION    | AVAILABLEAGENT | STATUS  |     CREATETIME      |
    +-------------------------+--------------------------+-------------+----------------+---------+---------------------+
    | benchmark-***-test-**** | eas-b-ql470xog6qeh25**** | cn-shanghai |              0 | Stopped | 2022-06-17 17:58:01 |
    | benchmark-***-test-**** | eas-b-bdnzvwq0z0h3xq**** | cn-shanghai |              2 | Running | 2022-06-20 12:18:54 |
    +-------------------------+--------------------------+-------------+----------------+---------+---------------------+
  • ストレステストタスク詳細の表示

    bench desc コマンドを使用して、特定のストレステストタスクの詳細を表示します。以下の例は、Windows 64 ビットのコマンド形式を示しています。

    eascmdwin64.exe bench desc [benchmark_task_name]

    [benchmark_task_name] をストレステストタスクの名前に置き換えます。

    以下は出力例です。

    +----------------+------------------------------------------------------------------------------+
    |     TaskName   | benchmark-***-test-b514                                                      |
    |     TaskId     | eas-b-bdnzvwq0z0h3xq****                                                     |
    |    ServiceName | xgb_test                                                                     |
    |         Region | cn-shanghai                                                                  |
    |   DesiredAgent | 2                                                                            |
    | AvailableAgent | 2                                                                            |
    |         Status | Running                                                                      |
    |        Message | Benchmark task is running                                                    |
    |     CreateTime | 2021-10-20 12:38:35                                                          |
    |     UpdateTime | 2021-10-20 12:38:45                                                          |
    |         Config | {                                                                            |
    |                |   "base": {                                                                  |
    |                |     "agentCount": 2,                                                         |
    |                |     "concurrency": 40,                                                       |
    |                |     "duration": 1200,                                                        |
    |                |     "requestCount":                                                          |
    |                | 922337203685477****,                                                         |
    |                |   },                                                                         |
    |                |  ...                                                                         |
    |                | }                                                                            |
    +----------------+------------------------------------------------------------------------------+
  • ストレステストタスクのリアルタイム可視化の有効化

    bench visualize コマンドを使用して、ストレステストタスクのリアルタイム可視化を有効にします。このコマンドを実行すると、Web サーバーが提供するリアルタイムモニタリングページが 127.0.0.1 で起動します。以下の例は、Windows 64 ビットのコマンド形式を示しています。

    eascmdwin64.exe bench visualize [benchmark_task_name]

    [benchmark_task_name] をストレステストタスクの名前に置き換えます。

    以下は出力例です。

    [OK] Click the link http://127.0.0.1:18734/eas-benchmark/statsview to observe realtime visualization details, you can turn it off with CTRL+C.
    Turning off will not interrupt the benchmark test task, and you can reopen it by the visualize command:
    eascmd -c [config_file] bench visualize benchmark-xgb-test-b514

    ブラウザでリンク http://127.0.0.1:18734/eas-benchmark/statsview を開いて、リアルタイムデータを表示します。

  • ストレステストレポートの取得

    ストレステストタスクのステータスが Stopped になると、タスクは完了です。ストレステストレポートは OSS に保存されます。bench report コマンドを使用してレポートを取得できます。以下の例は、Windows 64 ビットのコマンド形式を示しています。

    eascmdwin64.exe  bench report [benchmark_task_name]

    [benchmark_task_name] をストレステストタスクの名前に置き換えます。

    以下は出力例です。

    [OK] ベンチマークタスク benchmark-demo-test-c7eb レポート URL: http://eas-benchmark.oss-cn-chengdu.aliyuncs.com/summary/benchmark-demo-test-c7eb-10004.html

    ブラウザで url の後のリンクを開くと、次の図に示すように、ストレステストレポートが表示されます。image.png

  • クライアントレプリカ数と同時実行数の動的な変更

    ストレステストモードが manual の場合、bench update コマンドを使用してクライアントレプリカ数と同時実行数を動的に変更する必要があります。以下の例は、Windows 64 ビットのコマンド形式を示しています。

    eascmdwin64.exe bench update [benchmark_task_name] -Doptional.concurrency=<attr_value> -Doptional.agentCount=<attr_value>

    <attr_value> は特定の値です。以下はコマンドの例です:

    eascmdwin64.exe bench update benchmark-demo-b99c -Doptional.concurrency=2 -Doptional.agentCount=1

    以下は出力例です。

    [RequestId]: 9920C672-4D41-5CC4-8EC0-C690F76EB2BA
    [OK] Running [TaskName: benchmark-demo-b99c, DesiredAgent:1, AvailableAgent: 1, Message: Benchmark task is Updating]
    [OK] Benchmark task benchmark-demo-b99c was updated successfully
  • ストレステストタスクの停止

    bench stop コマンドを使用して、実行中のストレステストタスクを停止します。以下の例は、Windows 64 ビットのコマンド形式を示しています。

    eascmdwin64.exe bench stop [benchmark_task_name]

    [benchmark_task_name] をストレステストタスクの名前に置き換えます。

    以下は出力例です。

    Are you sure to stop the benchmark task [benchmark-***-test-b514] in [cn-shanghai]? [Y/n]
    [OK] Task [benchmark-***-test-b514] is stopping
    [OK] [Agnet: 0/1]: Benchmark task is Running
    [OK] [Agnet: 0/1]: Benchmark task is Stopped
    [OK] Benchmark task is stopped

    タスクを停止したときにリアルタイム可視化機能が実行されている場合、システムは可視化コマンドが実行されたターミナルにストレステストレポートを出力します。また、bench report コマンドを使用して、グラフ付きのより詳細な HTML レポートを取得することもできます。

  • ストレステストタスクの開始

    bench start コマンドを使用して、停止したストレステストタスクを開始します。以下の例は、Windows 64 ビットのコマンド形式を示しています。

    eascmdwin64.exe bench start [benchmark_task_name]
    説明

    このコマンドと bench create コマンドの違いは、このコマンドでストレステストタスクを再開すると、タスクの最後に更新された構成に基づいて新しいラウンドのストレステストが開始される点です。

    [benchmark_task_name] をストレステストタスクの名前に置き換えます。

    以下はシステム出力の例です。

    Are you sure to start the benchmark task [benchmark-***-test-b514] in [cn-shanghai]? [Y/n]
    [OK] Task [benchmark-***-test-b514] is starting
    [OK] [Agnet: 0/1]: Succeed to start benchmark master
    [OK] [Agnet: 1/1]: Benchmark task is Running
    [OK] Benchmark task is Running
    [OK] Click the link http://127.0.0.1:18947/eas-benchmark/statsview to observe realtime visualization details, you can turn it off with CTRL+C.
    Turning off will not interrupt the benchmark test task, and you can reopen it by the visualize command:
    eascmd -c [config_file] bench visualize benchmark-xgb-test-b514
  • ストレステストタスクの削除

    ストレステストタスクが完了すると、VPC コントローラーは終了ステータスに基づいてタスクレコードを保持します。保持ルールは次の表に記載されています。

    終了ステータス

    保持期間

    Stopped

    48 時間。

    CreateFailedUpdateFailedTerminated、または Error

    10 分。

    システムは保持期間が過ぎると、ストレステストタスクを自動的に削除します。

    また、bench delete コマンドを使用して、ストレステストタスクを手動で削除することもできます。コマンドの形式は次のとおりです。

    eascmdwin64.exe bench delete [benchmark_task_name]

    [benchmark_task_name] をストレステストタスクの名前に置き換えます。

    以下は出力例です。

    Are you sure to delete the benchmark task [benchmark-***-test-b514] in [cn-shanghai]? [Y/n]
    [OK] Benchmark task benchmark-***-test-b514 is Deleting
    [OK] Benchmark task was deleted successfully

LLM の構成詳細

基本情報

パラメーター

説明

Service

テスト対象のサービス名を選択し、LLM Service を選択します。

Service Endpoint

以下の 2 つの OpenAI インターフェイスのみがサポートされています:

  • Completions:シングルターン補完。リクエストインターフェイスは /v1/completions です。

  • Chat:マルチターン対話。リクエストインターフェイスは /v1/chat/completions です。

Stress Testing URL

サービスインターフェイスを選択すると、システムが自動的にサービス呼び出し URL を設定します。

Model ID

ModelScope または Hugging Face のモデル ID を入力します (必須)。これは、ストレステスト中にトークン数を正確に計算するために、対応するトークナイザーをロードするために使用されます。

Model Name

リクエストのモデルパラメーターを構築するために使用されます (任意)。これはモデル ID よりも優先度が高いです。空のままにすると、モデル ID がリクエストパラメーターとして使用されます。

データの型の選択

Data Type

説明

Public Dataset

パブリックの ShareGPT データセット を使用してストレステストを行います。

  • Dataset: 現在、ShareGPT のみがサポートされています。

  • Output Length: 生成されるテキストの長さを制御します。空のままにした場合、出力は切り捨てられません。出力長を設定することで、さまざまな負荷における LLM サービスの安定性とパフォーマンスをテストできます。

Custom Dataset

特定のシナリオに基づいてカスタムデータセットを設定します:

重要

LLM ストレステストのリクエストデータには、TTFT や TPOT などのトークン関連メトリックを収集するためにストリーミングリクエストを構築するための "stream": true パラメーターを含める必要があります。

  • Data Source:ストレステスト用のカスタムデータファイルを以下のソースからアップロードできます。

    • Single Data Entry[単一データ] テキストボックスに、単一のストレステストリクエストデータを入力します。 形式は Base64 でエンコードされた文字列である必要があります。

    • Data Address[データアドレス] テキストボックスに、テストデータソースの HTTP パスを入力します。 単一ファイルまたは ZIP ファイルがサポートされています。 ZIP ファイルは、ダウンロード後に自動的に解凍されます。

    • OSS Object: Object Storage Service (OSS) のパスを設定して、ストレステストファイルを取得します。

    • Upload Local File: コンソールの指示に従って、ローカルのストレステストファイルを OSS パスにアップロードし、OSS からファイルを取得します。

  • Split File Data by Line: このパラメーターは、[データソース][データアドレス][OSS ファイル]、または [ローカルからアップロード] に設定した場合に利用できます。 このオプションを有効にすると、アップロードされたストレステストファイルは行ごとに分割され、各行がテストのデータ入力として使用されます。 そうでない場合は、ファイル全体の内容が 1 つのデータ入力として使用されます。

    説明

    ストレステストファイルの設定例については、「benchmark_demo.json」をご参照ください。ファイル内の各データ入力は、JSON 形式の実際のユーザーリクエストです。まず、オンラインデバッグ機能を使用して、単一リクエストデータの形式が正しいことを確認することを推奨します。

Simulation Data

  • Data Generation Mode一様分布のみがサポートされています。

  • Input Tokens:入力トークンの長さの範囲。最小値は 10、最大値は 10000 で、デフォルト値は 1024 です。

  • Output Tokens:出力トークンの長さの範囲です。最小値は 10、最大値は 10000 で、デフォルト値は 128 です。

テストモードの選択

以下の 3 つのテストモードがサポートされています:

  • Fixed Concurrency Test: 固定の同時接続ユーザ数を設定します。特定の同時接続レベルでのシステムパフォーマンスのテストに適しています。

  • Fixed Request Rate Test: 固定のリクエストレートを設定します。特定のリクエストレートにおけるシステムパフォーマンスのテストに適しています。

  • Extreme Throughput Test: すべてのリクエストを一度に送信し、推論サービスが処理できる最大リクエストレート (QPS) を特定します。システムの限界をテストするのに適しています。

Fixed Concurrency TestFixed Request Rate Test モードでは、Continuous Test を有効にできます。

  • Continuous Test を有効にすると、Number of Request Samples にかかわらず、タスクはストレステスト期間が終了するまで実行されます。

  • Continuous Test]を無効にすると、指定された[Number of Request Samples]を完了するか、[Maximum Duration (s)]に到達した後にタスクが停止します。

さまざまなテストモードのパラメーター設定は次のとおりです:

テストモード

パラメーター設定

Fixed Concurrency Test

  • Concurrency: 同時接続ユーザ数をシミュレートします。有効値は [1, 200] です。

  • Maximum Duration (s): ストレステストの期間 (秒) を示します。デフォルト値は 300、最小値は 30 です。

  • Number of Request Samples: Continuous Test が有効な場合は設定不要です。テスト中に送信されるリクエスト数を表します。値は [100, 1000] の範囲内である必要があります。

Fixed Request Rate Test

固定されたリクエストレートを設定します。これは、特定のリクエストレートでのシステムパフォーマンスをテストするのに適しています。

  • Request Rate: 1 秒あたりに送信されるリクエスト数。

  • Maximum Concurrency: 同時接続ユーザ数をシミュレートします。

  • Maximum Duration (s): ストレステストの実行時間 (秒) です。デフォルト値は 300、最小値は 30 です。

  • Number of Request SamplesContinuous Test が有効な場合は、設定する必要はありません。 テスト中に送信されるリクエスト数を表します。 有効値は [100, 1000] です。

Extreme Throughput Test

  • Maximum Duration (s): 負荷テストの時間を秒単位で指定します。デフォルト値は 300、最小値は 30 です。

  • Number of Request Samples:テスト中に送信されるリクエストの数です。有効値は [100, 1000] です。

その他の構成

パラメーター

説明

HTTP ヘッダー

キーと値のペア。例:

  • 認証情報を渡す:Authorization: EAS_TOKEN

  • リクエストボディのデータ形式を設定する:Content-Type: application/json

Burstiness

  • デフォルト値は 1 です。有効範囲は 0.1 から 200 で、粒度は 0.1 です。

  • バースティネスはリクエスト生成の時間分布パターンを制御し、固定リクエストレートモードでのみ有効です。デフォルト値は 1 で、ポアソン分布に従います。その他の値はガンマ分布に従います。値が小さいほどリクエストストリームはよりバースト的になり、大きいほどより均一になります。

Random Seed

デフォルト値:0。データの型:整数。値の範囲:0-4294967295 (2**32-1)。

Ignore EOS

Ignore EOS を有効にすると、モデルはテキスト生成時にシーケンス終了 (EOS) トークンを無視し、あらかじめ設定された最大生成長に達するまで強制的に生成を続けます。

汎用シナリオの構成詳細

コンソールパラメーター

パラメーター

説明

Basic Information

Service

テスト対象のサービスの名前を選択します。

Stress Testing URL

サービス呼び出し URL。

Stress Testing Configurations

Data Source

ストレステストデータは、Single Data EntryData AddressOSS Object、または Upload Local File を使用して設定できます。

  • ストレステストデータの形式:モデルの定義とプロセッサの実装に依存します。

    説明

    単一データは Base64 エンコードされた文字列である必要があります。

    • 音声、画像、テキストなどの非構造化データの場合、ファイルを直接アップロードしてストレステストリクエストデータとします。

    • TFRequest などの構造化データの場合、EAS SDK (詳細については、「モデルサービスのウォームアップ」をご参照ください) を使用してリクエストデータを構築し、生成されたバイナリデータをファイルとしてアップロードする必要があります。

  • ストレステストファイル:

    • 単一ファイルまたは ZIP ファイルがサポートされています。ZIP ファイルはダウンロード後に自動的に解凍されます。

    • ファイルタイプ:サービスのビジネス要件に応じて、.txt.jpg.bin.zip などの形式をサポートします。

Split File Data by Line

このパラメーターは、Data SourceData AddressOSS Object、または Upload Local File に設定した場合に使用できます。

このオプションを有効にすると、アップロードされたストレステストファイルは改行で分割され、各行がテストのデータ入力として使用されます。それ以外の場合、ファイル全体の内容が単一のデータ入力として使用されます。

Maximum Duration (s)

ストレステストの期間 (秒)。デフォルト値は 300 秒です。

Maximum QPS

許可される最大 QPS (1 秒あたりのリクエスト数)。デフォルト値は 10000 です。

Maximum Response Time (ms)

許可される最大応答時間 (RT) (ミリ秒)。このしきい値を超えると、リアルタイムの RT が期待値を満たすまで QPS が自動的に調整されます。

HTTP ヘッダー

キーと値のペアでのリクエストヘッダー設定。例:

  • 認証情報を渡す:Authorization: EAS_TOKEN

  • リクエストボディのデータ形式を設定する:Content-Type: application/json

EASCMD クライアントを使用した作成

bench create コマンドを使用してストレステストタスクを作成します。EASCMD クライアントへのログイン方法の詳細については、「クライアントのダウンロードと認証」をご参照ください。タスクが作成されると、返された URL を使用してリアルタイムモニタリングデータを表示できます。以下の例は、Windows 64 ビットのコマンド形式を示しています。

eascmdwin64.exe bench create [bench_desc_json]

bench_desc_json は、ストレステストタスクに関する情報を含む JSON ファイルです。以下は例です。詳細については、「JSON パラメーターの説明」をご参照ください。

単一ストレステスト

{
    "service": {
        "serviceName": "xgb_test"
    },
    "data": {
        "content": "W1sxLDAsMCwwLDEsMSwwLDEsMCwxLDEsMCwwLDEsMCwxLDAsMSwwLDAsMSwxLDEsMCwxLDEsMCwwLDAsMSwxLDEsMCwxLDEsMSwxLDAsMSwxLDEsMCwxLDAsMCwwLDEsMSwwLDAsMCwxLDAsMSwwLDEsMCwwLDEsMCwwLDEsMCwxLDAsMCwxLDAsMCwwLDAsMSwwLDEsMCwxLDAsMCwxLDEsMSwwLDAsMSwwLDAsMCwwLDEsMSwxLDAsMSwxLDAsMCwxLDAsMSwwLDEsMSwxLDEsMCwxLDAsMCwxLDEsMSwxLDAsMCwwLDEsMSwwXV0K"
    }
}

OSS ファイルテスト

path を使用して、複数の OSS ファイルをストレステストデータとして指定します。

複数のストレステストデータを一括で設定するには、複数のリクエストデータファイルを ZIP パッケージにまとめて、pathoss://XX.zip に設定します。

{
    "service": {
        "serviceName": "xgb_test"
    },
    "data": {
        "path": "oss://examplebucket/test1.bin,oss://examplebucket/test2.bin"
    }
}

以下は出力例です。

[RequestId]: DE240637-4976-59AF-A28C-BAA55C0A****
[OK] Task [benchmark-xgb-test-b514] is creating
[OK] [Agnet: 0/1]: Succeed to start benchmark master
[OK] [Agnet: 0/1]: Succeed to start benchmark master
[OK] [Agnet: 1/1]: Benchmark task is Running
[OK] Benchmark task is Running
[OK] Click the link http://127.0.0.1:18222/eas-benchmark/statsview to observe realtime visualization details, you can turn it off with CTRL+C.
Turning off will not interrupt the benchmark test task, and you can reopen it by the visualize command:
eascmd -c [config_file] bench visualize benchmark-xgb-test-b514

ストレステストモード

汎用サービスストレステストは、以下の 3 つのモードをサポートしています:

  • auto モード:自動負荷モード。eas-benchmark VPC コントローラーが自動的にストレステスト用のエージェントワーカーを作成し、適切な同時実行レベルを設定します。自動最適化アルゴリズムを使用して、サービスの最大容量を見つけます。

  • scan モード:周期的負荷モード。このモードは、開始 QPS (minQPS)、最大 QPS (maxQPS)、QPS 増加間隔 (adjustInterval)、QPS 増加ステップ (qpsGrowthDelta) など、指定したパラメーターに基づいて動的に負荷を増加させます。テストは、サービス負荷が指定された maxRT または maxQPS に達するか、エラー数がフォールトトレランスレベル (faultTolerate) を超えると停止します。

  • manual モード:手動負荷モード。このモードは、固定数のストレステストエージェントと各エージェントの固定された同時実行数を使用します。テスト中にエージェント数とその同時実行数を動的に調整できます。

コンソールは auto モードのみをサポートしています。EASCMD クライアントは auto、scan、manual モードをサポートしています。

JSON 構成ファイルの optional セクションに mode パラメーターを追加して、ストレステストモードを指定できます。以下は構成例です。

auto モード

auto モードでは、構成ファイルでサービス名とストレステストデータを指定するだけで済みます。他のパラメーターはデフォルト値を使用できます。以下は構成例です。

{
    "service": {
        "serviceName": "demo"
    },
    "data": {
        "path": "https://examplebucket.oss-cn-chengdu.aliyuncs.com/data/warmup.tf.bin"
    },
    "optional": {
        "maxQPS": 1000,
        "duration": 300
     }
}

scan モード

{
    "service": {
        "serviceName": "demo"
    },
    "data": {
        "content": "aGVsbG8K"
    },
    "optional": {
        "mode": "scan",
        "maxQPS": 1000,
        "minQPS": 500,
        "qpsGrowthDelta": 100,
        "adjustInterval": 30
    }
}

manual モード

{
    "service": {
        "serviceName": "demo"
    },
    "data": {
        "content": "aGVsbG8K"
    },
    "optional": {
        "mode": "manual",
        "agentCount": 1,
        "concurrency": 5
    }
}

JSON パラメーターの説明

項目

パラメーター

必須

説明

service

serviceName

はい

ストレステスト対象のサービス名。

data

content

いいえ

Base64 エンコードされた文字列としての単一のストレステストリクエストデータ入力。

複数のリクエストデータ入力を指定するには、path パラメーターを使用します。

path

いいえ

テストデータソースのパス。HTTP パスまたは OSS パスを設定できます。カンマ (,) で区切って複数のパスを指定できます。また、複数のテストファイルを .zip ファイルにまとめて一括設定することもできます。

説明

ストレステストデータファイルは元の形式で保存してください。Base64 エンコーディングは行わないでください。

multiLine

いいえ

テストデータを改行で分割するかどうかを指定します。これはブール値で、デフォルトは false です。true に設定すると、ダウンロードされたデータは行ごとに解析されます。

http

headers

いいえ

HTTP リクエストヘッダーの設定。これはリストです。例:["Authorization:aaa", "Content-Type:text"]

timeout

いいえ

HTTP リクエストタイムアウト (ミリ秒)。デフォルトは 20000 です。

optional

mode

いいえ

ストレステストモード。以下の 3 つのモードがサポートされています。詳細については、「ストレステストモード」をご参照ください。

  • auto (デフォルト):自動圧力モード。

  • scan:周期的負荷モード。

  • manual:手動負荷モード。

duration

いいえ

ストレステスト期間 (秒)。デフォルトは 600、最大は 1200 です。

agentCount

いいえ

manual モードでのクライアントレプリカ数。レプリカ数が多いほど、負荷は大きくなります。デフォルトは 1 です。

concurrency

いいえ

manual モードでのクライアントインスタンスあたりの同時リクエスト数。同時実行数が多いほど、負荷は大きくなります。デフォルトは 2 です。負荷が不十分な場合は、まず同時実行数を増やしてください。同時実行数を増やしても負荷が増加しない場合は、クライアントレプリカ数を増やしてみてください。

adjustInterval

いいえ

scan モードでの自動負荷の動的調整間隔 (秒)。デフォルトは 60 です。

minQPS

いいえ

scan モードでの自動負荷の開始 QPS 値。デフォルトは 100 です。

maxQPS

いいえ

scan または auto モードで許可される最大 QPS。

maxRT

いいえ

scan または auto モードでの最大 RT (TP99)。このしきい値を超えると、リアルタイムの RT が期待値を満たすまで QPS が自動的に調整されます。

qpsGrowthDelta

いいえ

scan モードで QPS が毎回増加する量。デフォルトは 50 です。

faultTolerate

いいえ

scan または auto モードでのリクエストエラー (ステータスコードが 200 以外) の許容範囲。たとえば、値が 0.01 の場合、リクエストの 1% が失敗するとエラー処理プロセスがトリガーされます。デフォルト値は 0.001 で、リクエストエラーの許容範囲が 1000 分の 1 であることを意味します。

faultAction

いいえ

scan または auto モードでリクエストエラー率が faultTolerate で設定されたしきい値を超えた場合のストレステスト VPC コントローラーの動作。以下の値がサポートされています:

  • stop:現在の QPS を維持し、負荷の増加を停止します。

  • revise (デフォルト):リクエストエラー率が期待値を満たすまで QPS を動的に調整します。

ストレステストタスクのモニタリングメトリック

LLM サービス固有のメトリック

TTFT (最初のトークンまでの時間)

リクエストの最初のトークンまでの時間。これは、リクエストが送信されてから、サービスによって生成された最初のトークンが受信されるまでの時間です。

image

TPOT (出力トークンあたりの時間)

リクエストのトークンあたりの時間。これは、サービスによって生成された 2 つの連続したトークン間の時間間隔です。

image

TPS (1 秒あたりのトークン数)

1 秒あたりに転送されるトークン数。

image

一般的なメトリック

1 秒あたりのリクエスト数分布

サービスが 1 秒あたりに受信したリクエスト数の分布。

image

応答時間分布

選択した時間範囲内でサービスから返された応答数の分布。

image

トラフィック分布

選択した時間範囲内でクライアントからサービスに送信されたリクエストデータ量と、サービスからクライアントに返された応答データ量の分布。

image

応答時間間隔分布

サービスから返された応答時間が、さまざまな間隔 (ミリ秒) に分類される割合。

image

全体的な応答時間分布

さまざまな分位数におけるリクエストのエンドツーエンドのレイテンシ (ミリ秒)。

image

リターンステータスコード分布

サービスから返されたステータスコードの分布。

image

よくある質問

Q:curl リクエストは成功するのに、単一データテストで 400 または 404 エラーが発生するのはなぜですか?

現象:EAS にデプロイされた大規模モデル推論サービスに対して、単一データ入力を使用してワンクリックストレステストを実行すると、すべてのリクエストが HTTP ステータスコード 400 または 404 で失敗します。しかし、同じリクエストを手動で curl で送信すると、ステータスコード 200 で成功します。

根本原因:

  • 404:ストレステスト URL が正しくありません。たとえば、末尾に余分なスラッシュが含まれている場合 (/test/ など)、サービスの実際の登録パスが /test であるため、ルーティングの不一致が発生します。

  • 400:リクエストボディの形式が正しくありません。よくある間違いは、リクエストボディの Base64 エンコーディングを生成する際に、JSON 文字列を単一引用符で囲んでいないことです (echo -n {"file_names": [...]} | base64 など)。これにより、シェル解析エラーが発生し、実際の JSON 形式が無効になり、サービスで解析できなくなります。

ソリューション

  • ストレステスト URL パスがサービスの登録パスと完全に一致していることを確認してください。末尾の余分なスラッシュを削除します (/test を使用し、/test/ は使用しません)。

  • Base64 エンコーディングを生成する前に、JSON リクエストボディ全体を単一引用符で囲みます。例:

    echo -n '{"file_names": ["xxx.pdf"]}' | base64

次のステップ

  • API 操作を使用してストレステストタスクを作成および管理するには、「ストレステストタスク」をご参照ください。

  • ストレステスト済みのサービスを推論のために呼び出す方法については、「呼び出し方法の概要」をご参照ください。