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

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

最終更新日:Sep 08, 2026

Elastic Algorithm Service (EAS) は、LLM サービスおよび汎用サービスのストレステストを提供することで、サービスパフォーマンスの評価を支援します。コンソールではワンクリックでストレステストタスクを作成することも、EASCMD クライアントを使用してストレステストモードを柔軟に設定することもできます。

機能比較

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

項目

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

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

ユースケース

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

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

作成方法

PAI コンソールのみ

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



主要メトリクス

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

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

前提条件

  • デプロイ済みの EAS サービス

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

    • サービスステータスが「実行中」であり、呼び出し可能であること。

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

    • サービスが OpenAI API 互換の推論エンジン (vLLM、SGLang、LMDeploy、BladeLLM など) を使用していること。

    • サービスが /v1/completions または /v1/chat/completions エンドポイントを公開していること。

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

クイックスタート

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

説明

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

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

  1. 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. リアルタイムのモニタリングデータを表示: タスクのStatusがストレステスト中で、タスク名をクリックしてリアルタイムダッシュボードを開くことができます。 グラフには、リアルタイムの応答時間 (TP50/TP90/TP99/TP100/AVG)、リアルタイムの戻りコード、リアルタイムのトラフィック (RECEIVE/SEND)、およびリアルタイムの 1 秒あたりのクエリ数 (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] [Agent: 0/1]: Benchmark task is Running
    [OK] [Agent: 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] [Agent: 0/1]: Succeed to start benchmark master
    [OK] [Agent: 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 時間

    CreateFailed、UpdateFailed、Terminated、または 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 です。

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

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

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

[モデル ID]

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

[モデル名]

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

データ型の選択

[データ型]

説明

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

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

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

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

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

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

重要

データ形式の要件:

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

  • 各リクエスト JSON は 1 行で記述する必要があり、改行やキャリッジリターンを含めることはできません(リクエストが 1 つしかない場合でも)。そうしないと、解析が失敗します。

  • 複数のリクエストは改行で区切られます。

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

    • [単一データ]:[単一データ] テキストボックスに単一のストレステストリクエストデータを入力します。形式は 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 ファイル、または ローカルアップロード を使用してストレステストデータを設定します。

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

    説明

    [Single Data Entry] は、Base64 エンコード済みの文字列である必要があります。

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

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

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

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

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

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

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

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

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

ストレステストの実行時間 (秒) です。デフォルトは 600 秒です。

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

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

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

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

HTTP Header

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

  • 認証情報を渡す: 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 ファイルに圧縮し、path を oss://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 コントローラーが自動的に Agent Worker を作成し、最適化アルゴリズムを使用してサービスの最大キャパシティを検出します。

  • scan モード:指定された間隔 (adjustInterval) とステップ (qpsGrowthDelta) で、開始 QPS (minQPS) から最大 QPS (maxQPS) まで負荷を動的に増加させます。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 に設定すると、ダウンロードされたデータは 1 行ずつ解析されます。

http

headers

いいえ

HTTP リクエストヘッダーの設定です。リスト形式で指定します。例:["Authorization:aaa", "Content-Type:text"]。

timeout

いいえ

HTTP リクエストのタイムアウト (ミリ秒) です。デフォルト値は 20,000 です。

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

汎用メトリクス

秒間リクエスト数分布

時間経過に伴う、サービスが受信した秒間リクエスト数です。

image

応答数分布

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

image

トラフィック分布

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

image

応答時間間隔分布

異なるレイテンシー間隔 (ms) に収まる応答の割合です。

image

全体の応答時間分布

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

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

Q:ストレステストタスクで報告される cannot unpack non-iterable NoneType object エラー

このエラーは通常、ストレステストファイル内のデータ形式が正しくないことが原因です。リクエスト形式が JSON の場合は、次の要件を満たしていることを確認してください:

  • JSON リクエストには、改行やキャリッジリターンを含めないでください。

  • 複数のリクエストは改行で区切る必要があります。

次のステップ

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

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