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

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

最終更新日:Aug 29, 2026

Elastic Algorithm Service (EAS) は、大規模言語モデル (LLM) と汎用サービス向けに、負荷時のパフォーマンスを評価するためのストレステストを提供します。

機能比較

EAS は、LLM サービスと汎用サービスの 2 種類のストレステストを提供します。

項目

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

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

ユースケース

大規模言語モデル向けに最適化されており、応答速度とトークン生成パフォーマンスを評価します。

すべての HTTP/HTTPS ベースのサービスに適しています。

作成方法

PAI コンソールのみ

PAI コンソールauto モードのみに対応しています。
EASCMD クライアントautoscanmanual モードに対応しています。



主要なメトリクス

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

1 秒あたりのクエリ数 (QPS)レスポンスタイム (RT) などのメトリクスが含まれます。

前提条件

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

    • 宛先リージョンとワークスペースに、少なくとも 1 つの EAS オンラインサービスがデプロイされている必要があります。

    • サービスステータスが実行中で、呼び出し可能である必要があります。

  • LLM サービスのストレステストに関する要件

    • サービスは、vLLM、SGLang、LMDeploy、BladeLLM などの OpenAI API 互換の推論エンジンを使用している必要があります。

    • サービスは /v1/completions または /v1/chat/completions エンドポイントを公開します。

    • ストレステストデータには、TTFT や TPOT などのトークン関連メトリックを収集するためのストリーミングリクエストを有効にする "stream": true フィールドが含まれています。

クイックスタート

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

説明

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

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

  1. Platform for AI (PAI) コンソール にログインし、ページ上部で目的のリージョンを選択します。

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

  3. ストレステストタスク タブに移動し、ストレステストタスクの作成 をクリックします。

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

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

    パラメータ

    説明

    [基本情報]

    [所属サービス]

    テストするサービスを選択し、LLM サービス を選択します。

    [サービスインターフェース]

    Chat を選択します。

    [ストレステストアドレス]

    サービスインターフェイスを選択すると、自動的に入力されます。

    [モデル ID]

    ModelScope または Hugging Face のモデル ID です。Qwen3-8B と入力します。

    [ストレステストの設定]

    [データ型]

    パブリックデータセット を選択します。

    [データセット]

    ShareGPT。

    [テストモード]

    固定並行性テスト を選択します。

    [サンプルデータのリクエスト]

    200。

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

    説明

    ストレステストコンソールには、20 秒の固定リクエストタイムアウトがあります。ストレステストレポートに 512 のリターンコードが表示される場合は、リクエストがタイムアウトしたことを示します。EAS のストレステストコンソールでは、カスタムタイムアウト設定はサポートされていません。

    パラメータ

    説明

    [基本情報]

    [所属サービス]

    テスト対象のサービスです。

    [ストレステストアドレス]

    サービス呼び出し URL です。/api/predict/<service_name>/v1/chat/completions のような完全なインターフェイスパスを指定します。

    [ストレステストの設定]

    [データソース]

    単一データ を選択します。

    [単一データ]

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

    eyJtb2RlbCI6ICJRd2VuMy04QiIsICJtZXNzYWdlcyI6IFt7InJvbGUiOiAidXNlciIsICJjb250ZW50IjogIkhlbGxvISJ9XSwgIm1heF90b2tlbnMiOiAxMDI0fQ==

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

  1. リアルタイムモニタリングデータの表示: タスクの ステータスストレステスト中タスク名をクリックしてリアルタイムダッシュボードを開きます。グラフには、リアルタイムのレスポンス時間 (TP50/TP90/TP99/TP100/AVG)、リアルタイムの戻りコードリアルタイムのトラフィック (RECEIVE/SEND)、およびリアルタイムの秒間クエリ数 (QPS) が含まれます。

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

    レポートには、基本情報ストレステストの設定ストレステスト結果、およびストレステストタスクのモニタリングが含まれます。メトリックの定義については、「ストレス テスト タスクの監視メトリック」をご参照ください。

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

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

ストレステストタスク タブで、作成されたタスクのリストを表示し、起動クローンレポートのコピー削除 などの操作を実行できます。

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 コマンドを使用して、ストレステストタスクのリアルタイム可視化を有効にします。このコマンドを実行すると、127.0.0.1 で Web サーバーが提供するリアルタイムモニタリングページが起動します。次の例は、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 コマンドを使用してレポート URL を取得できます。次の例は、Windows 64 ビット用のコマンド形式を示しています。

    eascmdwin64.exe  bench report [benchmark_task_name]

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

    以下は出力例です。

    [OK] Benchmark task benchmark-demo-test-c7eb report 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 設定の詳細

基本情報

パラメーター

説明

[所属サービス]

テストするサービスを選択し、LLM サービス を選択します。

[サービスインターフェース]

次の 2 つの OpenAI インターフェイスのみをサポートしています。

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

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

[ストレステストアドレス]

サービスインターフェイスを選択すると自動入力されます。

[モデル ID]

必須。ModelScope または Hugging Face のモデル ID です。トークンカウントのため、正しいトークナイザーをロードするのに使用します。ModelScope では、モデル ID はモデル名の下のパスです (例:Qwen/Qwen2.5-7B-Instruct)。

[モデル名]

オプション。リクエストボディ内のモデル ID を上書きします。空の場合は、モデル ID を使用します。

データ型の選択

[データ型]

説明

[パブリックデータセット]

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

  • [データセット]:[ShareGPT] のみをサポートしています。

  • [出力長]:生成されるテキストの長さを制御します。さまざまな負荷状況下で LLM サービスの安定性とパフォーマンスをテストするために使用します。空のままにすると、出力は切り捨てられません。

[カスタムデータセット]

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

重要

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

  • [データソース]:次のソースからストレステスト用のカスタムデータファイルをアップロードします。

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

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

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

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

  • [ファイル内のデータは行ごとに分割されます。]:[データソース][データアドレス][OSSファイル]、または [ローカルからアップロード] に設定されている場合に使用できます。有効にすると、アップロードされたストレステストファイルが行ごとに分割され、各行をデータエントリとして使用します。それ以外の場合、ファイル全体の内容を単一のデータエントリとして使用します。

    説明

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

[アナログデータ]

  • [データ生成パターン]:[一様分布] のみをサポートしています。

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

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

テストモードの選択

3 つのテストモードをサポートしています。

  • [固定並行性テスト]:固定数の同時実行ユーザー数を設定します。特定の同時実行レベルでのシステムパフォーマンスをテストするのに適しています。

  • [固定リクエストレートテスト]:固定のリクエストレートを設定します。特定のリクエストレートでのシステムパフォーマンスをテストするのに適しています。

  • [限界スループットテスト]:すべてのリクエストを同時に送信して、推論サービスが処理できる最大リクエストレート (QPS) を決定します。システムの限界をテストするのに適しています。

固定並行性テスト モードと 固定リクエストレートテスト モードでは、継続的なストレステスト を有効にできます。

  • 継続的なストレステスト を有効にすると、サンプルデータのリクエスト に関係なく、タスクはストレス テスト期間が終了するまで実行されます。

  • 継続的なストレステスト を無効にすると、タスクは指定された サンプルデータのリクエスト が完了するか、ストレステスト期間 (秒) に達した時点で停止します。

各テストモードのパラメーター設定は次のとおりです。

テストモード

パラメーター設定

[固定並行性テスト]

  • [同時実行数]:シミュレートする同時実行ユーザー数です。値の範囲:[1, 500]。

  • [ストレステスト期間 (秒)]:ストレステストの継続時間 (秒単位) です。デフォルト:300。最小:30。

  • [サンプルデータのリクエスト]: 継続的なストレステスト が有効な場合は不要です。テスト中に送信されるリクエスト数を表します。値の範囲: [100, 1000]。

[固定リクエストレートテスト]

システムパフォーマンスをテストするために固定のリクエストレートを設定します。次のパラメーターを設定します。

  • [リクエストレート]:1 秒あたりに送信されるリクエストの数です。

  • [最大同時実行数]:シミュレートする同時実行ユーザー数です。

  • [ストレステスト期間 (秒)]:ストレステストの継続時間 (秒単位) です。デフォルト値は 300、最小値は 30 です。

  • [サンプルデータのリクエスト]: 継続的なストレステスト が有効な場合は設定不要です。これはテスト中に送信されるリクエスト数を表し、値は [100, 1000] の範囲内である必要があります。

[限界スループットテスト]

  • [ストレステスト期間 (秒)]:ストレステストの継続時間 (秒単位) です。デフォルト値は 300、最小値は 30 です。

  • [サンプルデータのリクエスト]:テスト中に送信されるリクエストの数です。値の範囲は [100, 1000] です。

その他の設定

パラメーター

説明

HTTP ヘッダー

キーと値のペアです。例:

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

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

[バースト]

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

  • リクエストのタイミング分布を制御します。固定リクエストレートテスト モードでのみ有効です。デフォルトは 1 (ポアソン分布) です。その他の値はガンマ分布を使用します。値が小さいほどバースト性が高く、大きいほど均一になります。

[ランダムシード]

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

[EOS を無視]

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

汎用シナリオ設定の詳細

コンソールパラメーター

パラメーター

説明

[基本情報]

[所属サービス]

テスト対象のサービス名です。

[ストレステストアドレス]

サービス呼び出し URL です。

[ストレステストの設定]

[データソース]

単一データデータアドレスOSS ファイル、または ローカルアップロード を使用してストレステストデータを設定します。

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

    説明

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

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

    • TFRequest などの構造化データの場合は、EAS SDK (モデルサービスのウォームアップ) を使用してリクエストを構築し、バイナリ出力をファイルとしてアップロードします。

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

    • 単一ファイルまたは ZIP ファイルを使用できます。ZIP ファイルはダウンロード後に自動的に解凍されます。

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

[ファイル内のデータは行ごとに分割されます。]

データソースデータアドレスOSS ファイル、または ローカルアップロード に設定されている場合に利用可能です。

有効にすると、アップロードされたストレステストファイルが行ごとに分割され、各行がデータエントリとして使用されます。それ以外の場合、ファイル全体の内容が単一のデータエントリとして使用されます。

[ストレステスト期間 (秒)]

ストレステストの継続時間 (秒単位) です。デフォルトは 300 秒です。

[ストレステスト QPS 上限]

許容される最大 QPS (秒間リクエスト数) です。デフォルトは 10000 です。

[ストレステストの RT 上限 (ms)]

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

HTTP ヘッダー

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

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

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

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

bench create を使用してストレステストタスクを作成します。クライアントのセットアップについては、クライアントのダウンロードと認証をご参照ください。作成後に返される 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 つのモードがあります。

  • 自動モード: eas-benchmark VPC コントローラーがエージェントワーカーを自動的に作成し、最適化アルゴリズムを使用してサービスの最大容量を見つけます。

  • スキャンモード: 開始 QPS (minQPS) から最大 QPS (maxQPS) まで、指定された間隔 (adjustInterval) とステップ (qpsGrowthDelta) で動的に負荷を増加させます。maxRT、maxQPS、または許容エラー率 (faultTolerate) に達すると停止します。

  • 手動モード: 固定数のストレステストエージェントとエージェントあたりの同時実行数を使用します。どちらもテスト中に動的に調整できます。

コンソールでは自動モードのみ使用できます。EASCMD クライアントでは、自動、スキャン、手動の各モードを使用できます。

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

自動モード

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

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

スキャンモード

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

手動モード

{
    "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

いいえ

ストレステストの継続時間 (秒単位) です。デフォルトは 300、最大は 1200 です。

agentCount

いいえ

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

concurrency

いいえ

手動モードでのクライアントインスタンスあたりの同時実行リクエスト数です。デフォルトは 2 です。まず同時実行数を増やし、それでも不十分な場合はエージェント数を増やします。

adjustInterval

いいえ

スキャンモードでの自動負荷の動的調整間隔 (秒単位) です。デフォルトは 60 です。

minQPS

いいえ

スキャンモードにおける、自動負荷の開始 QPS です。デフォルトは 100 です。

maxQPS

いいえ

スキャンモードまたは自動モードで許容される最大 QPS です。デフォルトは 10000 です。

maxRT

いいえ

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

qpsGrowthDelta

いいえ

スキャンモードで、各ステップで QPS を増加させる量です。デフォルトは 50 です。

faultTolerate

いいえ

スキャンモードまたは自動モードでの許容エラー率 (ステータスコードが 200 以外) です。例えば、0.01 は失敗率 1% でエラー処理がトリガーされることを意味します。デフォルトは 0.001 (1パーミル) です。

faultAction

いいえ

スキャンモードまたは自動モードで、リクエストエラー率が faultTolerate で設定されたしきい値を超えた場合のストレステスト VPC コントローラーの動作を定義します。次の値を指定できます。

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

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

ストレステストタスクの監視メトリクス

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

TTFT (Time To First Token)

リクエストを送信してから最初に生成されたトークンを受信するまでの時間です。

image

TPOT (Time per Output Token)

連続して生成される 2 つのトークン間の時間間隔です。

image

TPS (Tokens Per Second)

1 秒あたりに生成されるトークンの数です。

image

一般的なメトリクス

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

時間経過に伴い、サービスが 1 秒あたりに受信するリクエスト数です。

image

応答時間の分布

選択した時間範囲内の応答数の分布です。

image

トラフィックの分布

時間経過に伴うクライアントとサービス間のリクエストおよびレスポンスデータの量です。

image

応答時間間隔の分布

異なるレイテンシー間隔 (ミリ秒) に該当する応答の割合です。

image

全体の応答時間分布

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

image

ステータスコードの分布

サービスが返す HTTP ステータスコードの分布です。

image

よくある質問

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

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

根本原因:

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

  • 400:リクエストボディのフォーマットが正しくありません。よくある間違いとして、リクエストボディの Base64 エンコーディングを生成する際に、JSON 文字列をシングルクォートで囲んでいないこと (例:echo -n {"file_names": [...]} | base64) が挙げられます。これにより、シェルは JSON を誤って解析し、サービスが解析できない無効な JSON フォーマットを生成します。

解決方法

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

  • Base64 エンコーディングを生成する前に、JSON リクエストボディ全体をシングルクォートで囲んでください。例:

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

次のステップ