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

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

最終更新日:Jul 22, 2024

eas-benmarkは、Elastic Algorithm Service (EAS) に組み込まれた分散ストレステスト用の汎用ツールです。 eas-benchmarkを使用すると、動的ストレステストを実行し、2番目に正確なリアルタイムのモニタリングデータを表示し、テストの完了後に視覚化されたレポートを生成できます。 これは、EASで展開するサービスのパフォーマンスを評価するのに役立ちます。 このトピックでは、ストレステストタスクを作成および管理する方法について説明します。

前提条件

モデルサービスがデプロイされます。 詳細については、「PAIコンソールを使用したモデルサービスのデプロイ」をご参照ください。

背景情報

EASCMDクライアントにログインし、benchコマンドを実行して、ストレステストタスクを作成および管理できます。 ストレステストタスクを作成および管理する方法については、このトピックの「ストレステストタスクの作成」および「ストレステストタスクの管理」を参照してください。 EASCMDクライアントにログオンする方法については、「EASCMDクライアントのダウンロードとID認証の完了」をご参照ください。

ストレステストタスクの作成

EASCMDクライアントの使用

bench createコマンドを実行して、ストレステストタスクを作成します。 タスクの作成後、返されたURLを使用して、リアルタイムのモニタリングデータを表示できます。 この例では、64ビットWindowsバージョンのEASCMDクライアントが使用されています。

eascmdwin64.exe bench create [bench_desc_json]

bench_desc_jsonは、ストレステストタスクのJSON設定ファイルの名前を指定します。 サンプル設定:

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

次の設定に示すように、pathパラメーターを使用して、ストレステストデータを格納する複数のObject Storage Service (OSS) オブジェクトのパスを指定できます。 pathパラメーターを、OSS:// XX.zip形式のストレステストデータを含むZIPファイルのパスに設定することもできます。

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

次の表に、JSON設定ファイルのパラメーターを示します。

パラメーター

ネストされたパラメータ

必須

説明

サービス

serviceName

ストレステストタスクを作成するサービスの名前。

データ

コンテンツ

不可

Base64-encoded文字列形式のストレステストデータの単一エントリ。

複数のデータエントリを設定する場合は、pathパラメーターを指定します。 ストレステストデータの形式とファイルの種類については、このトピックの「ストレステストデータ」を参照してください。

パス

不可

ストレステストデータのパス。 HTTPまたはOSSパスを指定できます。 複数のパスを指定できます。 パスはコンマ (,) で区切ります。 複数のストレステストファイルをZIPファイルにパッケージ化してから、ZIPファイルのパスを指定することもできます。

説明

ファイルに保存されているストレステストデータには、Base64エンコーディングは必要ありません。

マルチライン

不可

ストレステストのデータを行で区切るかどうかを指定します。 有効な値は、true および false です。 デフォルト値:false

http

ヘッダー

不可

HTTPリクエストヘッダー。 このパラメーターの値はLIST型です。 例: ["Authorization:aaa", "Content-Type:text"]

タイムアウト

不可

HTTPリクエストのレイテンシ。 単位:ミリ秒。 デフォルト値: 20000

オプション

モード

不可

ストレステストモード。 有効な値:

  • auto: 自動モード。 デフォルト値です。

  • scan: 定期モード。

  • manual: 手動モード。

ストレステストモードの詳細については、このトピックの「ストレステストモード」を参照してください。

期間

不可

ストレステスト期間。 単位は秒です。 既定値:600。 最大値: 1200。

agentCount

不可

modeパラメーターをmanualに設定した場合、このパラメーターは必須です。

ストレステスト剤の数。 デフォルト値は 1 です。 より高い値は、より高いワークロードを指定する。

並行性

不可

modeパラメーターをmanualに設定した場合、このパラメーターは必須です。

各ストレステストエージェントの同時実行性。 デフォルト値:2 より高い値は、より高いワークロードを指定する。 ストレステスト中にワークロードをスケーリングするには、ストレステストエージェントの数を増やす前に、各ストレステストエージェントの同時実行性を高めます。

adjustInterval

不可

modeパラメーターをスキャンに設定した場合、このパラメーターは必須です。

ワークロードが自動的に増加する間隔。 単位は秒です。 デフォルト値: 0。

minQPS

不可

modeパラメーターをスキャンに設定した場合、このパラメーターは必須です。

ストレステストの1秒あたりの初期クエリ (QPS) 。 デフォルト値:100

maxQPS

不可

modeパラメーターをscanまたはautoに設定した場合、このパラメーターは必須です。

ストレステストの最大QPS。

maxRT

不可

modeパラメーターをscanまたはautoに設定した場合、このパラメーターは必須です。

最大応答時間 (TP99) 。 実際の応答時間がこの閾値を超える場合、QPSは、応答時間が閾値を下回るまで自動的に調整される。

qpsGrowthDelta

不可

modeパラメーターをスキャンに設定した場合、このパラメーターは必須です。

QPSの増分。 デフォルト値は 50 です。

faultTolerate

不可

modeパラメーターをscanまたはautoに設定した場合、このパラメーターは必須です。

リクエストエラーの最大許容率。 返されたステータスコードが200でない場合、リクエストエラーが発生します。 0.01の値は、1% 以上の要求でエラーが発生したときにエラー処理メカニズムがトリガーされることを示します。 デフォルト値: 0.001

faultAction

不可

modeパラメーターをscanまたはautoに設定した場合、このパラメーターは必須です。

リクエストエラー率がfaultTolerateパラメーターで指定されたしきい値を超えた場合のeas-benchmarkの操作。 有効な値:

  • stop: 現在のQPSを維持します。

  • revise: リクエストエラー率がしきい値を下回るまで、QPSを動的に調整します。 デフォルト値です。

たとえば、JSON設定ファイルの名前がbench_xgb.jsonの場合、次のコマンドを実行してストレステストタスクを作成できます。

eascmdwin64.exe bench create bench_xgb.json

サンプルコマンド出力:

[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

PAIコンソールを使用する

Platform for AI (PAI) コンソールで自動モードで実行されるストレステストタスクを作成できます。 PAIコンソールでストレステストタスクを作成するには、次の手順を実行します。

  1. Elastic Algorithm Service (EAS)ページに移動します。

    1. PAIコンソールにログインします。

    2. 左側のナビゲーションウィンドウで、[ワークスペース] をクリックします。 [ワークスペース] ページで、管理するワークスペースの名前をクリックします。

    3. 左側のナビゲーションウィンドウで、[モデル展開] > [Elastic Algorithm Service (EAS)] を選択します。 Elastic Algorithm Service (EAS) ページが表示されます。

  2. [Stress Testing Task] タブをクリックし、[Create Stress Testing Task] をクリックします。

  3. では、ストレステストの作成タスクパネル、次のパラメーターを設定し、作成.

    パラメーター

    説明

    サービス

    ストレステストタスクを作成するサービスの名前。

    テストデータ

    ストレステストデータ。 有効な値: [単一データ入力][データアドレス][OSSオブジェクト][ローカルファイルのアップロード] 。 ストレステストデータの形式とファイルの種類については、このトピックの「ストレステストデータ」を参照してください。

    説明

    [データアドレス] または [OSSオブジェクト] を選択した場合、複数のファイルパスを指定できます。 パスはコンマ (,) で区切ります。

    ファイル内のデータを改行で区切る必要があるかどうかを指定します

    このパラメーターは、[テストデータ] パラメーターを [データアドレス][OSSオブジェクト] 、または [ローカルファイルのアップロード] に設定した場合にのみ有効です。

    スイッチをオンにすると、アップロードされたファイル内のデータが行ごとに区切られ、各行がストレステストのデータエントリとして使用されます。 スイッチをオフにすると、アップロードされたファイルのコンテンツ全体がストレステストのデータエントリとして使用されます。

    期間

    ストレステスト期間。 デフォルト値は 300 です。 単位は秒です。

    最大QPS

    ストレステストの最大QPS。 デフォルト値: 10000。

    最大応答時間 (ms)

    最大応答時間。 単位:ミリ秒。 実際の応答時間がこのパラメーターの値を超えると、応答時間が正常範囲に入るまでQPSが自動的に調整されます。

ストレステストタスクの管理

EASCMDクライアントの使用

  • ストレステストタスクのリストを表示する

    bench listコマンドを実行して、作成したストレステストタスクのリストを表示します。 この例では、64ビットWindowsバージョンのEASCMDクライアントが使用されています。

    eascmdwin64.exe bench ls

    サンプルコマンド:

    eascmdwin64.exe bench ls

    サンプルコマンド出力:

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

    bench descコマンドを実行して、ストレステストタスクの詳細を表示します。 この例では、64ビットWindowsバージョンのEASCMDクライアントが使用されています。

    eascmdwin64.exe bench desc [benchmark_task_name]

    benchmark_task_nameは、詳細を表示するストレステストタスクの名前を指定します。 サンプルコマンド:

    eascmdwin64.exe bench desc benchmark-demo-test-c7eb

    サンプルコマンド出力:

    +----------------+------------------------------------------------------------------------------+
    |     TaskName   | benchmark-xgb-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で起動し、ストレステストタスクのリアルタイム監視データを表示するwebページを提供します。 この例では、64ビットWindowsバージョンのEASCMDクライアントが使用されています。

    eascmdwin64.exe bench visualize [benchmark_task_name]

    サンプルコマンド:

    eascmdwin64.exe bench visualize benchmark-xgb-test-b514

    サンプルコマンド出力:

    [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にアクセスしてください。

  • ストレステストレスレポートを取得する

    ストレステストタスクのステータスが [停止] に変わると、タスクは完了し、ストレステストレートレポートはOSSに保存されます。 bench reportコマンドを実行して、レポートを取得します。 この例では、64ビットWindowsバージョンのEASCMDクライアントが使用されています。

    eascmdwin64.exe  bench report [benchmark_task_name]

    サンプルコマンド:

    eascmdwin64.exe bench report benchmark-demo-test-c7eb

    サンプルコマンド出力:

    [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

  • ストレステストのワークロードを調整する

    ストレステストに手動モードを使用する場合は、bench updateコマンドを実行して、エージェントの数と各エージェントの同時実行性を変更できます。 この例では、64ビットWindowsバージョンのEASCMDクライアントが使用されています。

    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コマンドを実行して、ストレステストタスクを停止します。 この例では、64ビットWindowsバージョンのEASCMDクライアントが使用されています。

    eascmdwin64.exe bench stop [benchmark_task_name]

    サンプルコマンド:

    eascmdwin64.exe bench stop [benchmark_task_name]

    サンプルコマンド出力:

    Are you sure to stop the benchmark task [benchmark-xgb-test-b514] in [cn-shanghai]? [Y/n]
    [OK] Task [benchmark-xgb-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コマンドを実行してレポートを取得することもできます。

  • ストレステストタスクを開始する

    bench startコマンドを実行して、停止したストレステストタスクを開始します。 この例では、64ビットWindowsバージョンのEASCMDクライアントが使用されています。

    eascmdwin64.exe bench start [benchmark_task_name]
    説明

    bench createコマンドと比較して、このコマンドはタスクの最新の設定に基づいてストレステストタスクを再起動します。

    サンプルコマンド:

    eascmdwin64.exe bench start benchmark-xgb-test-b514

    サンプルコマンド出力:

    Are you sure to start the benchmark task [benchmark-xgb-test-b514] in [cn-shanghai]? [Y/n]
    [OK] Task [benchmark-xgb-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
  • ストレステストタスクの削除

    ストレステストタスクが完了すると、eas-benchmarkはタスクのステータスに基づいてタスクのレコードを保持します。 次の表に、保持期間を示します。

    タスクのステータス

    保持期間

    停止しました

    48時間

    CreateFailedUpdateFailedTerminated、またはエラー

    10 分

    保存期間が終了すると、システムは自動的にタスクを削除します。

    bench deleteコマンドを実行して、ストレステストタスクを手動で削除することもできます。 形式:

    eascmdwin64.exe bench delete [benchmark_task_name]

    サンプルコマンド:

    eascmdwin64.exe bench delete benchmark-xgb-test-b514

    サンプルコマンド出力:

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

    削除されました

PAIコンソールを使用する

[ストレステストタスク] タブで、ストレステストタスクを表示および管理できます。 image

  • ストレステストのタスクは、ワンクリックで開始、停止、または削除できます。

  • 右上隅にある更新ボタンをクリックすると、ストレステストタスクのステータスを更新できます。

  • タスクの [ステータス] 列に [実行中] が表示されたら、[アクション] 列の [表示] をクリックして、タスクのリアルタイムモニタリングデータを表示できます。407eca10047573f0785f9b5940877175

  • タスクの [ステータス] 列に [停止済み] が表示されたら、[アクション] 列の [表示] をクリックしてストレステストレートレポートを表示できます。49ee99a5367c88017255f9fddb0c49a0

ストレス試験データ

Format

ストレステストデータの形式は、サービスのモデルとプロセッサによって異なります。

  • サービスが音声、画像、テキストデータなどの非構造化リクエストデータを処理する場合は、リクエストデータを含むファイルをアップロードします。

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

ファイルの種類

ビジネス要件に基づいて、ストレステストデータ用のファイルタイプを選択します。 一般的なファイルタイプには、TEXT、JPG、BINがあります。

ストレステストモード

EASCMDクライアントを使用してストレステストタスクを作成する場合、JSON設定ファイルのオプションパラメーターにネストされたmodeパラメーターを指定することで、ストレステストモードを設定できます。 有効な値:

  • auto

    自動モード。 このモードでは、eas-benchmarkは自動的にストレステストエージェントを作成し、各エージェントの同時実行性を設定し、最適なアルゴリズムを選択してサービスの最大容量を決定します。 JSON設定ファイルでサービスパラメーターとデータパラメーターを指定するだけです。 他のパラメーターのデフォルト設定を保持します。 サンプル設定:

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

    周期モード。 このモードでは、maxRT、maxQPS、またはfaultTolerateパラメーターの実際の値が指定された値を超えるまで、eas-benchmarkは、minQPS、maxQPS、adjustInterval、qpsGrowthDeltaなどのパラメーターに基づいて、サービスのワークロードを動的に増加させます。 サンプル設定:

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

関連ドキュメント

サービスのパフォーマンスがビジネス要件を満たした後、サービスを呼び出して推論タスクを実行できます。 詳細については、「概要」をご参照ください。