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

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

最終更新日:Jun 04, 2026

Elastic Algorithm Service (EAS) は、大規模言語モデル (LLM) サービスおよび汎用サービスのストレステストを提供し、負荷下でのパフォーマンスを評価します。

機能比較

EAS では、LLM サービスと汎用サービスの 2 種類のストレステストが利用できます。

項目

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

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

適用範囲

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

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

作成方法

PAI コンソールのみ

PAI コンソールauto モードのみサポート。
EASCMD クライアントautoscan、および manual モードをサポート。







主要メトリック

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

秒間クエリ数 (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. 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

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

    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

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

    eyJtb2RlbCI6ICJRd2VuMy04QiIsICJtZXNzYWdlcyI6IFt7InJvbGUiOiAidXNlciIsICJjb250ZW50IjogIkhlbGxvISJ9XSwgIm1heF90b2tlbnMiOiAxMDI0fQ==

ステップ 2:ストレステストの詳細の確認

  1. リアルタイムモニタリングデータの確認ベンチマークタスク タブで、実行中 のタスク名をクリックしてリアルタイムダッシュボードを開きます。チャートには、リアルタイムレスポンスタイム(TP50/TP90/TP99/TP100/平均)、リアルタイムリターンコードリアルタイムトラフィック(受信/送信)、および リアルタイム秒間クエリ数 (QPS) が含まれます。

  2. ストレステストレポートの確認:タスクの ステータス完了 になったら、タスク名をクリックしてストレステストレポートを確認します。

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

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

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

Benchmark Task タブで、作成済みのタスク一覧を表示し、EnableCloneCopy Report、および Delete などの操作を実行できます。

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 コマンドを使用して、レポート 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 設定の詳細

基本情報

パラメーター

説明

Service

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

Service Endpoint

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

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

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

Stress Testing URL

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

Model ID

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

Model Name

任意です。リクエストボディ内のモデル ID を上書きします。空の場合は、モデル ID が使用されます。

データの型の選択

Data Type

説明

Public Dataset

ShareGPT データセット を使用してストレステストを実行します。

  • DatasetShareGPT のみサポートされています。

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

Custom Dataset

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

重要

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

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

    • Single Data Entry単一データ テキストボックスに、1 つのストレステストリクエストデータ入力を入力します。形式は 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 Test および Fixed 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 SamplesContinuous 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 を有効化すると、テキスト生成時にモデルが End-of-Sequence (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 に設定されている場合に利用可能です。

有効にすると、アップロードされたストレステストファイルが行ごとに分割され、各行がデータ入力として使用されます。無効にすると、ファイル全体の内容が 1 つのデータ入力として使用されます。

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 を使用します。クライアントのセットアップについては、「クライアントをダウンロードして認証する」をご参照ください。作成後は、返された 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) まで、指定された間隔 (adjustInterval) およびステップ (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 つのモードがサポートされています(「ストレステストモード」を参照)。

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

  • 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(千分の一)。

faultAction

いいえ

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

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

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

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

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

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

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

image

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

連続する 2 つの生成トークン間の時間間隔。

image

TPS (秒間トークン数)

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

image

汎用メトリック

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

時間経過に伴うサービスが受信した 1 秒あたりのリクエスト数。

image

レスポンスタイムの分布

選択した時間範囲内のレスポンス数の分布。

image

トラフィックの分布

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

image

レスポンスタイム間隔の分布

異なる遅延間隔(ミリ秒)に該当するレスポンスの割合。

image

全体的なレスポンスタイムの分布

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

image

ステータスコードの分布

サービスが返した HTTP ステータスコードの分布。

image

よくある質問

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

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

根本原因

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

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

解決策

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

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

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

次のステップ