このセクションでは、仮想アセットのパフォーマンスを具体的に制御するためのパフォーマンス プロファイルの使用方法について説明します。
セクションの内容:
概要
パフォーマンス プロファイルは、仮想アセットのパフォーマンスを具体的に制御するために使用できます。それぞれの仮想アセットのパフォーマンスは、依存アプリケーションの実際のパフォーマンスを反映するように、またはテストしたい特定のパフォーマンス モデルをシミュレートするように設定できます。たとえば、固定のレスポンス遅延およびレスポンス遅延の範囲、または、アプリケーションのヒット率に依存する遅延をシミュレートしたい場合があります。負荷テストの遅延には、線型レスポンス テンプレート モデルまたは指数関数レスポンス テンプレート モデルを利用できます。また、スクリプトを使用してユーザー任意のパフォーマンス プロファイル モデルを作成できます。さらに、アプリケーション パフォーマンス管理 (APM) ツールによって外部アプリケーションをモニタリングしている場合、APM のパフォーマンス データをパフォーマンス プロファイルにインポートすることができます。
パフォーマンス プロファイルを使用すると、依存性が異なるパフォーマンス条件の範囲を示すとき、ユーザーのテスト対象アプリケーションがどのように応答するかを見ることができます。たとえば、次のことが可能です。
- これらの条件で期待通りにテスト対象アプリケーションは負荷を処理できるか確認する。
- 全体的なシステムのパフォーマンスを評価する (テスト対象アプリケーション + 特定のパフォーマンス プロファイルを持つ依存関係)。
パフォーマンス構成 (パフォーマンス プロファイルおよびパフォーマンス グループを含む) は、各レスポンダー スイートに定義できます。Virtualize サーバーに仮想アセットがデプロイされると、[Virtualize サーバー] ビューまたは CTP のいずれかから、パフォーマンス プロファイルをパフォーマンス グループにその場でマッピングできるようになります。
たとえば、次の場合を想定します。
- 次の 2 つの異なるデプロイメント環境にアプリケーションのパフォーマンスをエミュレートしたい: 内部デプロイメントおよびクラウド デプロイメント。
エミュレートしているアプリケーションの期待されるパフォーマンスに基づいて、 Virtualize レスポンダー スイートでレスポンダーを 2 つのパフォーマンス グループ (在庫検索グループと注文グループ) に割り当てた。
- パフォーマンス グループに割り当てたいパフォーマンス プロファイル (固定遅延、高速固定遅延、負荷依存指数関数および負荷依存線型) を作成した。
この場合、2 つのデプロイメント シナリオをエミュレートするために、パフォーマンス プロファイルをパフォーマンス グループにマッピングすることで、関連する仮想アセットをセットアップします。
エミュレーション シナリオ | 在庫検索パフォーマンス グループ | 注文パフォーマンス グループ |
---|---|---|
内部デプロイメント | 負荷依存指数関数パフォーマンス プロファイル | 固定遅延パフォーマンス プロファイル |
クラウド デプロイメント | 負荷依存線型パフォーマンス プロファイル | 高速固定遅延パフォーマンス プロファイル |
利用可能なパフォーマンス構成の定義
各レスポンダー スイートに次を定義できます。
- パフォーマンス プロファイル: 関連する仮想アセットに適用可能。
- パフォーマンス グループ: 同じパフォーマンス プロファイルを使用できるレスポンダーのセット。
パフォーマンス プロファイルの構成
各パフォーマンス プロファイルは、関連するレスポンダー スイートに適用できる、詳細な負荷パターンを定義します。任意の数のパフォーマンス プロファイルを定義できます。
パフォーマンス プロファイルを追加するには、次の操作を行います。
- レスポンダー スイートのコンフィギュレーション パネルを開きます (例: [仮想アセット エクスプローラー] の .pva ノード直下のノードをダブルクリック)。
- [パフォーマンス] タブ > [プロファイル] タブを開きます。
- [追加] をクリックし、プロファイル名を指定します。
- 任意のレスポンス遅延を設定します。Fixed Response Delays、Range Delays、Load Dependent Response Delays および Scripted Delaysを設定できます。詳細については以下を参照してください。
パフォーマンス プロファイルの定義が完了したら、更新されたレスポンダー スイートを保存します。
固定レスポンス遅延
固定レスポンス遅延は次のように設定します。
- 遅延タイプに [固定] を選択します。
- 任意の遅延時間をミリ秒で指定します。レスポンダー レベルで指定された思考時間または遅延は、ここで指定した遅延に追加されるので注意してください。
- 任意の遅延のランダム化を選択します: なし、均等、またはポアソン
範囲遅延
範囲遅延は、遅延範囲幅の最小値および最大値を指定できます。実際の遅延は指定した範囲内で均等に分配されます。
範囲遅延は次のように設定します。
- 遅延タイプに [範囲] を選択します。
- 任意の範囲を指定します。
負荷依存レスポンス遅延
負荷依存レスポンス遅延は次のように設定します。
- 遅延タイプに [負荷依存] を選択します。
- 表示されているデフォルト グラフ以外のグラフを使用してパフォーマンスをモデル化したい場合、次の操作を行います。
- グラフの下にある [新規グラフ] ボタンをクリックします。
- ダイアログが開くので、任意のグラフ情報を指定します (グラフ タイプ、最大ヒット数/秒、最少遅延 [ミリ秒]、最大遅延 [ミリ秒]、移動できるポイント数)。ヒット率は仮想アセットのすべてのレスポンダーへの 1 秒あたりのリクエスト数で計算されます。
- ポイントをドラッグして、必要に応じてグラフのカーブを修正します。
- グラフの下にある [遅延のランダム化] ボックスから、任意の遅延のランダム化を選択します: なし、均等、ポアソン
グラフに指定された値より大きいヒット率 (HPS) すべてに、グラフ右端のレスポンス遅延の値が使用されるので注意してください。たとえば、グラフ右端のキーが 10 HPS で 1500 ミリ秒の場合 (上記ステップ 3 のグラフ)、10 HPS より大きい HPS 率はすべて、1500 ミリ秒のレスポンス遅延を使用します。
スクリプト遅延
パフォーマンス プロファイルの振る舞いをスクリプトにできます。スクリプト メソッドは、次の特性を持っている必要があります。
- 数字を返す (例: int または long)。この数字がミリ秒の遅延時間となります。
- 0、 1、または 2 つの引数を取る。
- 引数 1 (指定した場合) は、レスポンダーの現在の 1 秒あたりのヒット数です。 hps は float 型です。
- 引数 2 (指定した場合) は、その他のスクリプト化メソッドで使用される Context オブジェクトです。context 引数は com.parasoft.api.ScriptingContext です。
スクリプトの詳細については、「スクリプトを使用した拡張機能の基礎」を参照してください。
実際のレスポンス時間
パフォーマンス プロファイルの遅延はレスポンダーの処理時間に追加されるので注意してください。ほとんどの場合、「ゼロ遅延」レスポンスの時間によって、実際のレスポンス時間はパフォーマンス プロファイルのレスポンス遅延を超過します。
さらにレスポンダー レベルで指定した「思考時間」または「レスポンス時間」の遅延がパフォーマンス プロファイルの遅延に追加されます。
アプリケーション パフォーマンス管理 (APM) システムからのデータ インポート
「アプリケーション パフォーマンス管理 (APM) システムからパフォーマンス プロファイルをインポート」を参照してください。
レスポンダーをパフォーマンス プロファイル (およびパフォーマンス グループ) にマッピング
複数のレスポンダーで 1 つのパフォーマンス プロファイルを共有できるので、レスポンダーは 1 つの特定のパフォーマンス グループにまとめるべきです。関連する仮想アセットがデプロイされるとき、ユーザー (またはチーム メンバー) は、どのパフォーマンス プロファイルをどのパフォーマンス グループに適用するかをマッピングできます。
ユーザーは任意の数のパフォーマンス グループを作成できます。各レスポンダーは 1 つ以上のパフォーマンス グループに含まれることはできません (例: 1 つのレスポンダーは複数のパフォーマンス グループにまたがって使用できません)。
パフォーマンス グループを定義するには、次の操作を行います。
- レスポンダー スイートのコンフィギュレーション パネルを開きます。
- [パフォーマンス] タブ > [グループ] タブを開きます。
- [パフォーマンス グループ] の下にある [追加] をクリックし、新しいグループ名を入力します。
- 新しいグループを選択し、[レスポンダー] の下にある [追加] をクリックします。
- ダイアログが開くので、パフォーマンス グループに所属させるレスポンダーを指定して、[OK] をクリックします。
- レスポンダーは 1 つのパフォーマンス グループにしか所属できません。[パフォーマンス グループに関連付けがないレスポンダーのみ表示] オプションを有効にすると、どのレスポンダーがまだ割り当て可能かを識別するのに役立ちます。
パフォーマンス グループの定義が完了したら、更新されたレスポンダー スイートを保存します。
デプロイされた仮想アセットにパフォーマンス構成を適用
パフォーマンス プロファイルおよびパフォーマンス グループが設定されたら、それらを [Virtualize サーバー] ビューまたは CTP から仮想アセットにすぐに適用できます。そのため、ユーザーは仮想アセットのパフォーマンス状態をすぐに設定/変更できます。
[Virtualize サーバー] ビューから
次の手順で、 [Virtualize サーバー] ビューからパフォーマンス設定を仮想アセットに適用できます。
- 仮想アセットのコンフィギュレーション パネルを開きます (例: 対象ノードをダブルクリック)。
- [パフォーマンス] タブを開きます。
- 各パフォーマンス グループに適用したいパフォーマンス プロファイルを指定します。
- 仮想アセットに変更を保存します。
思考時間の構成
ほかの場所で構成された思考時間または遅延は、パフォーマンス プロファイルで指定された遅延に追加されます。思考時間は次のレベルでそれぞれ構成できます。
- レスポンダーレベル: [オプション] タブのパフォーマンス カテゴリで設定します。必要に応じて、思考時間の値はデータ ソース列でパラメータライズできるので注意したてください。
- メッセージ レベル (複数レスポンス モードでのみ利用可能): メッセージごとに構成されます。
アプリケーション パフォーマンス管理 (APM) システムからパフォーマンス プロファイルをインポート
アプリケーション パフォーマンス管理 (APM) システムは、アプリケーションのパフォーマンスと可用性をモニタリングおよび管理するためのツールを提供します。APM システムは、モニタリングするアプリケーションのパフォーマンス データを収集します。Virtualize パフォーマンス プロファイル インポーターは、APM システムに対してパフォーマンス データを検索し、モニタリングしているアプリケーションのパフォーマンス メトリクスに基づいてパフォーマンス プロファイルを作成することができます。
APM システムに対してパフォーマンス メトリクスを検索し、選択したメトリクスをパフォーマンス プロファイルとしてインポートするには、以下の操作を行います。
- .pva のルート レスポンダー スイートの [パフォーマンス] タブで [インポート] ボタンをクリックします。[パフォーマンス プロファイルのインポート] ダイアログが表示されます。
- [APM システム] から、データをインポートする APM システムを選択します。次のシステムが現在サポートされています。
- AppDynamics
- dynaTrace
- [クエリープロパティ] で、適切な APM システムのクエリー プロパティを設定します。詳細については、以下のセクションを参照してください。
デフォルトのプロパティ値は、パフォーマンス プロファイル インポーターのデプロイメント記述子から取得されます (「Modifying Performance Profile Importer Deployment Descriptors」で説明)。[クエリー プロパティ] の値を変更するには、[値] 列で適切な行をクリックし、値を編集します。[OK] をクリックして [パフォーマンス プロファイルのインポート] ダイアログを閉じた後、編集した値がレスポンダー スイートの構成に保存されます。 - ダイアログ下部の [リロード] をクリックし、APM システムからパフォーマンス データをインポートします。利用できるパフォーマンス プロファイルが表示されます。
- [作成するプロファイルのタイプ] から、作成するプロファイルのタイプを選択します。
以下のオプションを利用できます。- 固定: [パフォーマンス プロファイルのインポート] ダイアログで選択したエントリごとに、インポーターによって Fixed Response Delay パフォーマンス プロファイルが作成されます。インポーター ダイアログの [パフォーマンス プロファイル] に表示されるときに、プロファイルの遅延の値が " 平均遅延時間 (ミリ秒)" に設定されます。インポーターは、インポートするパフォーマンス プロファイル名に接尾辞として
_Fixed
を付加します。 - 範囲: [パフォーマンス プロファイルのインポート] ダイアログで選択したエントリごとに、インポーターによって Range Response Delay パフォーマンス プロファイルが作成されます。インポーター ダイアログの [パフォーマンス プロファイル] に表示されるときに、プロファイルの遅延範囲が " 最小遅延時間 (ミリ秒)" および " 最大遅延時間 (ミリ秒)" に設定されます。インポーターは、インポートするパフォーマンス プロファイル名に接尾辞として
_Range
を付加します。 - 固定および範囲: [パフォーマンス プロファイルのインポート] ダイアログで選択したエントリごとに、上記で説明するように、一対の Fixed と Range のパフォーマンス プロファイルの組み合わせが作成されます。
- 固定: [パフォーマンス プロファイルのインポート] ダイアログで選択したエントリごとに、インポーターによって Fixed Response Delay パフォーマンス プロファイルが作成されます。インポーター ダイアログの [パフォーマンス プロファイル] に表示されるときに、プロファイルの遅延の値が " 平均遅延時間 (ミリ秒)" に設定されます。インポーターは、インポートするパフォーマンス プロファイル名に接尾辞として
- インポートするプロファイルを選択します。[パフォーマンスプロファイル] の表でショートカット メニューの [すべて選択] または [すべて選択解除] を使用して、複数のプロファイルを選択できます。
選択したパフォーマンス プロファイルに " 最小遅延時間" または " 最大遅延時間" の値がない場合 ( なぜならそれらの値が APM システムによって提供されなかったため)、[ 作成するプロファイルのタイプ] は [固定] に設定されます。" 最小遅延時間" および " 最大遅延時間" の値があるパフォーマンス プロファイルだけが [範囲] 遅延タイプ用に使用できます。 - [OK] をクリックし、選択したプロファイルを .pva のレスポンダー スイートパフォーマンス構成にインポートします。
選択した名前とタイプのパフォーマンス プロファイルがすでにレスポンダー スイート パフォーマンス構成に存在する場合、警告と確認のダイアログが表示されます。
レスポンダー スイート パフォーマンス構成の中に、インポートしているプロファイルと名前が同じでタイプが異なるプロファイルが存在する場合、インポート操作がキャンセルされ、以下のダイアログが表示されます。たとえば、"Calculator-Doc-Literal.subtract_Fixed" という名前で [範囲] 遅延タイプの既存のパフォーマンス プロファイルが存在する場合、[固定] 遅延タイプの "Calculator-Doc-Literal.subtract_Fixed" パフォーマンス プロファイルのインポートは許可されません。
AppDynamics からのパフォーマンス プロファイルのインポート
以下は AppDynamics 固有のクエリー パラメーターです。
パラメーター | 説明 |
---|---|
username | AppDynamics アカウント ユーザー名。 |
password | AppDynamics アカウント パスワード。 |
host | AppDynamics Controller がインストールされるホスト名。 |
port | AppDynamics Controller が REST クライアントをリスンするポート。AppDynamics Web インターフェイスにアクセスするために使用されるポートと同じです。 |
tier | AppDynamics で設定されている層の名前。 |
transaction | 選択したアプリケーションと層のすべてのトランザクションを見るには、* に設定します。 トランザクション名に設定すると、個々のトランザクション単位でフィルタリングできます (トランザクション名は、AppDynamics Metric Browser ツリーの Business Transactions Performance> Business Transactions ノードに表示されます)。 |
timeIntervalMinutes | パフォーマンス メトリクスを計測するために使用される時間間隔 (単位は分)。 |
AppDynamics パフォーマンス プロファイル インポーターは、AppDynamics に対して、アプリケーションの構成およびデータ ツリーの Analyze > Metric Browser ノードにあるデータを検索します。AppDynamics Metric Tree ビューで、このデータは Business Transaction Performance > Business Transactions > YourTier の下に表示され、そして Average Response Tim
e メトリクスノードの下に表示されます。
dynaTrace からのパフォーマンス プロファイルのインポート
以下は dynaTrace 固有のクエリー パラメーターです。
パラメーター | 説明 |
---|---|
username | dynaTrace アカウント ユーザー名。 |
password | dynaTrace アカウント パスワード。 |
host | dynaTrace Client がインストールされるホスト。 |
port | dynaTrace Client がインストールされるポート。デフォルト値は 8020 です。 |
dashboard | dynaTrace Client で設定されているダッシュボード名。 |
method | ダッシュボードのすべての Web サービス メソッドと Web リクエスト URI を参照するには、* に設定します。 Web サービス メソッド名と Web リクエスト URI に設定すると、個々のトランザクションでフィルタリングできます。 |
dynaTrace パフォーマンス プロファイル インポーターは、dynaTrace Client 内の選択されたダッシュボードの Web サービスと Web リクエストのダッシュレットに対して、Web サービス メソッドと Web リクエストのパフォーマンス データを検索します。
Web サービスと Web リクエストのいずれかまたは両方のダッシュレットを、クエリー パラメーターで指定したダッシュボードに含める必要があります。
Web サービスまたは Web リクエストの Total Avg/Total Min/Total Max 列が表示されていることを確認してください。表示されている場合、列のデータを REST クエリーでパフォーマンス プロファイル インポーターに利用できます。
パフォーマンス プロファイル インポーターのデプロイメント記述子の変更
適切なパフォーマンス プロファイル インポーターのデプロイメント記述子ファイルを変更することで、[インポート] ダイアログの [ クエリー プロパティ] の表に表示されるデフォルト値をカスタマイズできます。デプロイメント記述子ファイルは、apm-integration/performance-profileimporters フォルダーまたはルートディレクトリ (<INSTALL>/plugins/com.parasoft.ptest.libs.web_<VERSION>/root) にあります。
環境に合わせて、AppDynamics.xml および dynaTrace.xml パフォーマンス プロファイル インポーターのデプロイメント記述子ファイルの値属性を適切に変更します。
<performance-profile-importer name='AppDynamics' class="com.parasoft.profiles.apm.common.appdynamics.AppDynamicsPerformanceProfileImporter"> <!-- AppDynamics 3.8.2 --> <property name='username' value='admin@customer1'/> <property name='password' type='masked' value='admin'/> <property name='host' value='myhost.mycompany.com'/> <property name='port' type='int' value='8090'/> <property name='application' value='MyApplication'/> <property name='tier' value='MyTier'/> <property name='transaction' value='*'/> <property name='timeIntervalMinutes' type='int' value='4320'/> </performance-profile-importer>