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

Performance Testing:Dubbo マイクロサービスのパフォーマンス テストの実行

最終更新日:Jan 08, 2025

パフォーマンス テスト サービス (PTS) のマイクロサービス パフォーマンス テスト機能を使用すると、仮想プライベートクラウド (VPC) にデプロイされたマイクロサービスのパフォーマンス テストを実行できます。 PTS コンソールで簡単な構成を実行することにより、マイクロサービスのパフォーマンス テストを迅速に実行できます。 このトピックでは、Dubbo マイクロサービスのパフォーマンス テストを実行する方法について説明します。

前提条件

Dubbo マイクロサービスは、汎用的な方法で呼び出すことができます。

背景情報

従来のマイクロサービスアーキテクチャでは、各マイクロサービスには API ゲートウェイを使用してアクセスし、独自のネットワーク内で安全に分離されています。 ほとんどの場合、クラウドベースのマイクロサービスは、セキュリティを強化し、制御されたアクセスを確保するために、仮想プライベートクラウド (VPC) にデプロイされます。 しかし、分離された環境でのマイクロサービスのパフォーマンスをテストすることは、ネットワークの分離のために困難になる可能性があります。 従来のソリューションは、VPC 内に JMeter などのパフォーマンス テストツールを作成することです。 ただし、JMeter のセットアップには時間がかかり、かなりの技術的専門知識が必要であり、JMeter はマイクロサービスのテストにはユーザーフレンドリーではありません。

前述の問題に対処するために、PTS はマイクロサービス パフォーマンス テスト機能を提供します。 PTS コンソールで簡単な構成を使用することにより、マイクロサービスのパフォーマンス テストを迅速かつ効果的に実行できます。

構成の開始

  1. PTS console にログインし、 を選択し、 をクリックします。パフォーマンステスト > シナリオの作成Dubbo

  2. [マイクロサービスシナリオ] ページで、シナリオ名を指定し、テスト対象アプリケーションのソース、リージョン、およびマイクロサービスの名前空間を選択します。

  3. [シナリオ設定] タブで、[+ Dubbo3 ノードを追加] をクリックして、ビジネスメッセージにテストノードを追加します。

シナリオの構成

ビジネスメッセージの右側にある ryi アイコンをクリックして、ビジネスメッセージを展開し、基本設定、出力パラメータ設定、およびチェックポイント設定を構成します。

パラメータ

説明

アプリケーション名

アプリケーションの名前。

testapp

API

マイクロサービスへのアクセスに使用される API。

com.alibaba.pts.dubbo.api.DemoService

レジストリタイプ

有効な値: ZooKeeper、Nacos、Redis、および直接接続

Nacos

レジストリアドレス

マイクロサービスレジストリのアドレス。 [ip]:[port] 形式または [ドメイン名]:[ポート] 形式。 複数のレジストリの場合は、カンマ (,) で区切ります。 例: [ip1]:[port1],[ip2]:[port2]、または [ドメイン名 1]:[port1],[ドメイン名 2]:[port2]

重要

マイクロサービスエンジン (MSE) ユーザーの場合、レジストリアドレスは名前空間が構成されているかどうかによって異なります。

  • 名前空間が構成されていない場合は、デフォルトの名前空間 DEFAULT_GROUP が使用されます。 レジストリアドレスを直接入力します。 例: XXX.nacos-ans.mse.aliyuncs.com:8848

  • 名前空間が構成されている場合、レジストリアドレスはレジストリアドレスと名前空間の名前を組み合わせた形式になります。 たとえば、名前空間の名前が TEST の場合、レジストリアドレスは次の形式になります: XXX.nacos-ans.mse.aliyuncs.com:8848?namespace=TEST

192.168.0.0:8080

グループ

Dubbo マイクロサービスのグループ。

testgroup

バージョン

Dubbo マイクロサービスのバージョン。 デフォルト: 1.0。

1.0

メソッド名

Dubbo マイクロサービスへのアクセスに使用されるメソッドの名前。

sayHello

接続タイムアウト

Dubbo マイクロサービスとの接続を確立するためのタイムアウト期間。

5000

応答タイムアウト

Dubbo マイクロサービスから応答を受信するためのタイムアウト期間。

20000

Dubbo マイクロサービスの関数パラメータ

パラメータ

説明

共通パラメータ

パフォーマンス テストに関係する Dubbo マイクロサービス関数における共通パラメータ。

  • パラメータ名: java.lang.String

  • パラメータ値: ${date}

暗黙的パラメータ

パフォーマンス テストに関係する Dubbo マイクロサービス関数における暗黙的パラメータ。

  • パラメータ名: setAttachment

  • パラメータ値: ("index","1")

出力パラメータの構成

メッセージの [出力パラメータ定義] タブで、メッセージの出力パラメータを構成します。 詳細については、「出力パラメータ」をご参照ください。

チェックポイントを構成する

メッセージの [チェックポイント (アサーション)] タブで、メッセージのチェックポイントを構成します。 詳細については、「チェックポイント (アサーション)」をご参照ください。

(オプション) コントローラーとタイマー

さまざまなストレステストシナリオの要件に基づいて、コントローラーとタイマーを追加できます。

  • [シナリオ設定] タブで、[コントローラーの追加] をクリックして、必要なコントローラーを選択します。

    • ループコントローラー: テストノードがループで実行される回数を制御します。

      ループコントローラーを選択し、コントローラーの横にある 循环控制器的更多图标 アイコンをクリックします。 次に、ループで実行するノードを選択し、ループ回数を指定します。 ストレステスト中に、ループコントローラーで指定されたテストノードは、指定された回数だけ順番に実行されます。

    • トランザクションコントローラー: トランザクションコントローラー内のすべてのテストノードは、1 つのトランザクションとしてカウントされます。 [親サンプルの生成] スイッチと [サンプルにタイマーと前処理/後処理の期間を含める] スイッチが表示されます。

      • 親サンプルの生成:

        • このスイッチがオンになっている場合、トランザクションコントローラー内の各ノードのストレステスト結果は、ストレステストレポートに個別に記録されるのではなく、トランザクションコントローラーの結果として集計されます。

        • このスイッチがオフになっている場合、トランザクションコントローラーとコントローラー内のテストノードのストレステスト結果がレポートに表示されます。

      • サンプルにタイマーと前処理/後処理の期間を含める: このスイッチがオンになっている場合、ストレステストレポートにおけるトランザクションコントローラーの平均応答時間は、すべてのテストノード、タイマー、および前処理/後処理の平均応答時間の合計になります。 このスイッチがオフになっている場合、トランザクションコントローラーの平均応答時間は、すべてのテストノードの平均応答時間の合計のみになります。

    • 1 回のみコントローラー: コントローラーに追加されたノードは 1 回だけ実行されます。

  • [シナリオ設定] タブで、[タイマーの追加] をクリックして、必要なタイマーを選択します。

    • 定数タイマー: ストレステスト中に一時停止する時間を示す一時停止期間を指定します。 単位: ミリ秒。

    • 同期タイマー: [タイムアウト][シミュレートされたユーザー数] の値を指定します。これは、指定された時間範囲内に特定のユーザー数に達した後にストレステストがトリガーされることを示します。 ただし、指定された時間範囲内に特定のユーザー数に達しない場合、継続的な待機なしでテストがトリガーされます。

    • 統一ランダムタイマー: 一時停止期間を指定します。 [一定遅延オフセット][ランダム遅延] を構成できます。 一定遅延オフセットは固定一時停止時間を示し、ランダム遅延は最大ランダム一時停止時間を示します。 統一ランダムタイマーの一時停止期間は、一定遅延オフセットで指定された固定一時停止時間と、ランダム遅延で指定された時間範囲内のランダム値の合計です。 各ランダム値は、等しい発生確率を持ちます。

    • ガウス タイマー: 一時停止期間を指定します。 ガウス タイマーは、統一ランダムタイマーに似ています。 [一定遅延オフセット][ランダム遅延] を構成できます。 ランダム一時停止時間が正規分布に準拠する必要がある場合は、ガウス タイマーを使用できます。

    • 固定スループットタイマー: テストノードがスループットに基づいて実行されるようにスループットを指定します。 条件を構成し、対応するスループットを指定できます。 構成できる条件には、[現在のスレッドのみ][すべてのアクティブスレッド][現在のリンクのアクティブスレッド][グローバルアクティブスレッド][現在のリンクのグローバルアクティブスレッド] があります。

PTSシナリオを作成する

パラメータ

説明

負荷の発生元

  • インターネット: ストレステストを開始するノードは世界中に配置されています。 ストレステストの規模に基づいて、対応するノードリソース (IP アドレス) が割り当てられます。

  • Alibaba Cloud 仮想プライベートクラウド (VPC): Alibaba Cloud VPC でのストレステストは、VPC 経由で実行されます。 ストレステストでは、ストレステスターとテスト対象サーバーは同じリージョンに配置されます。 詳細については、「Alibaba Cloud VPC でのストレステスト」をご参照ください。

負荷モード

  • 仮想ユーザーモード: クライアント側からビジネスシステムの各ノードでホストできるオンラインユーザー数を知りたい場合は、このモードを使用してターゲット仮想ユーザーを構成できます。

  • 1 秒あたりのリクエスト数 (RPS) モード: RPS モードはスループットモードです。 このモードでは、RPS を指定してサーバー側からシステムのスループット機能を測定し、仮想ユーザーモードから RPS モードへの煩雑な変換をなくし、ストレステストを迅速に実装できます。

自動増加モード

  • 手動調整: 仮想ユーザー数は固定です。 対応する [負荷予測チャート] は、仮想ユーザー数を示す水平線です。 ストレステストは常に特定の仮想ユーザー数に基づいて実行されます。

  • 段階的増加: 仮想ユーザー数は段階的に増加します。 これは、システムに負荷をかける仮想ユーザー数が段階的に増加することを意味します。 仮想ユーザー数は、一定期間ごとに一定の値だけ増加し、想定される仮想ユーザー数に達します。 その後、到達した仮想ユーザー数は一定期間維持されます。 対応する [負荷予測チャート] は、階段状のグラフです。

最大 VU 数

仮想ユーザーモードでのシナリオ全体の最大 VU 数。

増加率

段階的増加モードでは、増加率を指定する必要があります。

単一負荷レベル期間

段階的増加モードでは、単一負荷レベル期間内にビジネス上の問題を発見できるように、単一負荷レベル期間を 1 分以上に設定する必要があります。

テストの合計期間

ストレステスト期間が増加する場合、期間は次の式を使用して計算された値以上になります: 単一負荷レベル期間/増加量 × 1.1 (切り上げ)。 ただし、期間は 24 時間を超えることはできません。

指定された IP アドレスの数

負荷をかける IP アドレスの数。 詳細については、「負荷をかける IP アドレスの数を指定する」をご参照ください。

リージョン固有のトラフィック

ストレステスターが配置されているリージョンを設定するかどうかを指定します。 このスイッチをオンにすると、ローカルユーザートラフィックをシミュレートできます。 このスイッチをオンにした後、ストレステスターのリージョン分布を構成できます。 これにより、負荷トラフィックのリージョン分布のカスタマイズが実装されます。 詳細については、「カスタムトラフィック」をご参照ください。

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

  • [保存して開始] をクリックします。 [注記] ページで、[今すぐ実行][テストは許可されており、適用される法律および規制に準拠しています。] を選択し、[開始] をクリックします。

  • シナリオをデバッグするには、[デバッグ] をクリックします。 詳細については、「シナリオのデバッグ」をご参照ください。

ストレステスト結果の分析

ストレステストが完了すると、システムはストレステストシナリオメトリック、ビジネス詳細、監視詳細、API サンプリングログなどのストレステストデータを自動的に取得し、ストレステストレポートを生成します。 詳細については、「PTS ストレステストレポートの表示」をご参照ください。