モニターを作成し、負荷テスト中にネットワーク情報やシステムのパフォーマンス データを収集することができます。負荷テストの結果にもメトリクスのモニターを適用し、Web サーバーに渡された負荷が設計どおり処理されているかを確認できます。
このセクションの内容
サポートされるモニター
- SNMP
- Windows モニター (Load Test が Windows にインストールされている場合にだけ利用可能)
- WebSphere
- WebLogic
- JBoss
- Tomcat
- rstat
- リモート モニター
- デプロイ済みモニター (AppDynamics、Dynatrace など)
- カスタム モニター
Performance Monitor for Oracle Service Bus (OSB/ALSB)
Oracle Service Bus (OSB/ALSB) 用のパフォーマンス モニターが利用できます。詳細については Parasoft 製品テクニカル サポート センターにお問い合わせください。
ビルトイン モニターの追加
次のビルトイン モニターを追加できます。
SNMP Agent Monitor の追加
Load Test は、バージョン 1 および 2c の SNMP エージェントが提供する OID に基づいてデータを取得できます。
SNMP Agent Monitor を追加するには、次の操作を行います。
- 負荷テスト タブの [Monitors] ノードを右クリックし、ショートカット メニューの [新規 Monitor] をクリックします。[新規 Monitor] ダイアログが表示されます。
- [新規 Monitor] ダイアログで [SNMP] を選択し、[終了] をクリックします。右側のパネルに新規モニターの設定パネルが表示されます。
- [ホスト] フィールドに SNMP エージェントのホスト名を入力します。
- [コミュニティ] フィールドに SNMP エージェントのコミュニティを入力します。
- [新規] をクリックしてパラメーターを入力します。[新規パラメーター] ダイアログが開きます。
- 次の操作を行って、新規パラメーターを入力します。
- パラメーター タイプ: [OID] または [コンポジット] を選択します。
- パラメーター: 選択されたパラメーター タイプによって、以下のようにパラメーター オプションが異なります。
- OID: SNMP エージェントコミュニティ内で特定のパラメーターを識別するオブジェクト ID を入力します。([パラメーター タイプ] ドロップダウン メニューで [OID] が選択された場合にだけ利用できます)。
- コンポジット: データを収集するためのプロセッサ、メモリ、ネットワーク、または TCP を選択します。
- カウンター: [コンポジット パラメーター] ドロップダウンの選択に応じて、CPU 使用率 (%)、メモリ使用率 (%)、ネットワーク使用率 (%) が表示されます。これらのカウンターは、OID のセットを照会することで計算されます。
[コンポジット パラメーター] ドロップダウンメニューで TCP が選択された場合、[カウンター] ボックスからカウンターを選択する必要があります。 - パラメーターの説明: 選択されたコンポジット パラメーターの説明が表示されます。
- グラフ タイトル: 追加したモニターに対応するグラフのタイトルを入力します。このタイトルは、負荷テスト進捗グラフおよび詳細レポート グラフに表示されます。
- オペレーションの適用: SNMP エージェントから返された値に適用する簡単なオペレーションを指定します。乗算には 「*」、除算には 「/」、パーセントを計算するには 「%」 を使用します。たとえば、エージェントが割り当て済みメモリをバイト単位で返す場合に KB 単位で表示するには、ドロップダウン メニューから 「/」 を選択し、隣のテキスト フィールドに 「1024」と入力することで、「/ 1024」というオペレーションを適用します。そして、[グラフ タイトル] フィールドには、たとえば「Memory in kilobytes」と入力します。
- 上記のステップを繰り返し、この SNMP エージェントでモニターするすべてのパラメーターをテーブルに追加します。
- 負荷テスト ツリーの [Monitors] > [SNMP] ブランチで対応するノードを右クリックし、新しいモニターを検証します。
Windows パフォーマンス モニターの追加
Windows パフォーマンス モニターを追加するには、次の操作を行います (Load Test が Windows にインストールされている場合にだけ利用可能な機能です)。
- 負荷テストタブの [Monitors] ノードを右クリックし、ショートカット メニューの [新規 Monitor] をクリックします。[新規 Monitor] ダイアログが表示されます。
- [新規モニター] ダイアログで [Windows] を選択し、[終了] をクリックします。
- [ホスト] フィールドに perfmon のホスト名を入力します。
- [新規] をクリックしてパラメーターを入力します。[パフォーマンス カウンターの追加] ダイアログが開きます。
- 次の操作を行って、新規パラメーターを入力します。
- モニターするパラメーターのパフォーマンス カウンターおよびインスタンスを選択します。選択したパラメーターの説明が [パラメーターの説明] ボックスに表示されます。
- 追加したモニターに対応するグラフのタイトルを [グラフ タイトル] フィールドに入力します。このタイトルは、負荷テスト進捗グラフおよび詳細レポート グラフに表示されます。
- 必要に応じて、モニター データに適用するオペレーションおよび値を [オペレーションの適用] サブパネルに入力します。たとえば、「/」(除算) オペレーションを選択してオペレーション値フィールドに「
1024
」と入力すると、元のモニター値をバイト単位からキロバイト単位に変換できます。
- 上記のステップを繰り返し、この perfmon でモニターするすべてのパラメーターをテーブルに追加します。
- 負荷テスト ツリーの [Monitors] > [Windows] ブランチで対応するノードを右クリックし、新しいモニターを検証します。
WebSphere モニターの追加
WebSphere モニターを追加する前に、WebSphere Administrative コンソールの [Security] > [Global security] セクションに移動し、[Enable administrative security] チェックボックスがオフになっていることを確認します。
WebSphere モニターを追加するには、次の操作を行います。
- 負荷テストタブの [Monitors] ノードを右クリックし、ショートカット メニューの [新規 Monitor] をクリックします。[新規 Monitor] ダイアログが表示されます。
- [新規 Monitor] ダイアログで [WebSphere] を選択し、[終了] をクリックします。
- プロジェクト設定パネルで [設定] をクリックします。[Configure WebSphere Agent] ダイアログが開きます。
- [ホスト] にホスト名を入力し、必要に応じて [ポート] のポート番号を変更してから [次へ] をクリックします。
- [Configure WebSphere Agen] パネルで、WebSphere がインストールされた場所のパスを入力または参照します。例: C:\IBM\WebSphere
- [次へ] をクリックします。[Configure WebSphere Agent] ダイアログには、サーバーに必要な Jar ファイルのテーブルが表示され、適切な Jar が見つかったかどうかが示されます。
- [Configure WebSphere Agent] ダイアログで [終了] をクリックします。[パラメーターの追加] ダイアログが開きます。
- [パラメーターの追加] ダイアログの左側のパネルでパラメーターを選択します。[パラメーターの追加] ダイアログ右側のパネルに、表示する各パラメーター インスタンスの名前、説明、および値が表示されます。
- GUI 右側の [選択] 列で、モニターするパラメーター インスタンスをオンにし、[OK] をクリックします。選択したパラメーターは、負荷テスト進捗グラフおよび詳細レポート グラフに表示されます。
WebLogic モニターの追加
WebLogic モニターを追加するには、次の操作を行います。
- 負荷テストタブの [Monitors] ノードを右クリックし、ショートカット メニューの [新規 Monitor] をクリックします。[新規 Monitor] ダイアログが表示されます。
- [新規 Monitor] ダイアログで [WebLogic ] を選択し、[終了] をクリックします。
プロジェクト設定パネルで [設定] をクリックします。[Configure WebLogic Agent] ダイアログが開きます。
注意
WebLogic 8.1 SP6 および WebLogic 9.x のモニターの場合、次のオプションを指定して Load Test を開始する必要があります。
-Dsun.lang.ClassLoader.allowArraySyntax=true
それには、コマンド プロンプトで Load Test のインストール ディレクトリに移動し、次のコマンドを実行します。lt -Dsun.lang.ClassLoader.allowArraySyntax=true
- [ホスト] にホスト名を入力し、必要に応じて [ポート] のポート番号を変更してから [次へ] をクリックします。
- [Configure WebLogic Agen] パネルで、WebLogic がインストールされた場所のパスを入力または参照します。例: C:\Oracle\Middleware\wlserver_10.3
- [次へ] をクリックします。[Configure WebLogic Agent] ダイアログには、サーバーに必要な Jar ファイルのテーブルが表示され、適切な Jar が見つかったかどうかが示されます。
- [Configure WebLogic Agent] ダイアログで [終了] をクリックします。[パラメーターの追加] ダイアログが開きます。
- [パラメーターの追加] ダイアログの左側のパネルでパラメーターを選択します。[パラメーターの追加] ダイアログ右側のパネルに、表示する各パラメーター インスタンスの名前、説明、および値が表示されます。
- GUI 右側の [選択] 列で、モニターするパラメーター インスタンスをオンにし、[OK] をクリックします。選択したパラメーターは、負荷テスト進捗グラフおよび詳細レポート グラフに表示されます。
WebSphJBoss モニターの追加
Jboss モニターを追加するには、次の操作を行います。
- 負荷テストタブの [Monitors] ノードを右クリックし、ショートカット メニューの [新規 Monitor] をクリックします。[新規 Monitor] ダイアログが表示されます。
- [新規 Monitor] ダイアログで [JBoss] を選択し、[終了] をクリックします。
- プロジェクト設定パネルで [設定] をクリックします。[Configure JBoss Agent] ダイアログが開きます。
- [ Configure JBoss Agent] ダイアログでホスト名を入力し、必要に応じてポート番号を変更してから、[終了] をクリックします。[パラメーターの追加] ダイアログが開きます。
- [パラメーターの追加] ダイアログの左側のパネルでパラメーターを選択します。[パラメーターの追加] ダイアログ右側のパネルに、表示する各パラメーター インスタンスの名前、説明、および値が表示されます。
- GUI 右側の [選択] 列で、モニターするパラメーター インスタンスをオンにし、[OK] をクリックします。選択したパラメーターは、負荷テスト進捗グラフおよび詳細レポート グラフに表示されます。
Tomcat モニターの追加
前提条件
このモニターを使用するには、以下の Java システム プロパティを指定して Tomcat を開始する必要があります。
- -Dcom.sun.management.jmxremote
- -Dcom.sun.management.jmxremote.port=7744
- -Dcom.sun.management.jmxremote.ssl=false
- -Dcom.sun.management.jmxremote.authenticate=false
Com.sun.management.jmxremote.port システム プロパティで、選択したポート番号を使用します。
たとえば、Windows を使用している場合、次の Java システム プロパティを catalina.bat Tomcat 起動スクリプトに追加できます。
set "JAVA_OPTS=%JAVA_OPTS% -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=7744 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"
Tomcat が Windows サービスとしてインストールされている場合:
- Tomcat9w.exe を起動します。
- Apache Tomcat のプロパティウィンドウで [Java] タブをクリックします。
- [Java Options] セクションに Java システム プロパティを追加します。Java システム プロパティは 1 行につき 1 つで記述する必要があります。
Tomcat モニターを追加するには、次の操作を行います。
- 負荷テストタブの [Monitors] ノードを右クリックし、ショートカット メニューの [新規 Monitor] をクリックします。[新規 Monitor] ダイアログが表示されます。
- [新規 Monitor] ダイアログで [Tomcat] を選択し、[終了] をクリックします。
- プロジェクト設定パネルで [設定] をクリックします。[Configure Tomcat Agent] ダイアログが開きます。
- [ Configure Tomcat Agent] ダイアログでホスト名を入力し、必要に応じてポート番号を変更してから、[終了] をクリックします。[パラメーターの追加] ダイアログが開きます。
- [パラメーターの追加] ダイアログの左側のパネルでパラメーターを選択します。[パラメーターの追加] ダイアログ右側のパネルに、表示する各パラメーター インスタンスの名前、説明、および値が表示されます。
- GUI 右側の [選択] 列で、モニターするパラメーター インスタンスをオンにし、[OK] をクリックします。選択したパラメーターは、負荷テスト進捗グラフおよび詳細レポート グラフに表示されます。
rstat モニターの追加
rstat モニターを追加するには、次の操作を行います。
- 負荷テストタブの [Monitors] ノードを右クリックし、ショートカット メニューの [新規 Monitor] をクリックします。[新規 Monitor] ダイアログが表示されます。
- [新規 Monitor] ダイアログで [rstat] を選択し、[終了] をクリックします。
注意
rstat モニターを有効にするには、djrpc.jar
および rstatcl.jar
が <SOAtest installation>\eclipse\plugins\com.parasoft.xtest.libs.web_<version>/root に存在し、クラスパスに追加されている必要があります。
rstatcl.jar は、インストール時に <SOAtest_Installation>\<SOAtest_Version>\eclipse\plugins\com.parasoft.xtest.libs.web_<version>\root に追加されます。
djrpc.jar は、購入して <SOAtest installation>\eclipse\plugins\com.parasoft.xtest.libs.web_<version>/root に配置する必要があります。
リモート JVM モニターの追加
注意
このモニターを使用するには、以下の Java システム プロパティを指定して JVM を開始する必要があります。
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=7744
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false
com.sun.management.jmxremote.port system
システム プロパティで、選択したポート番号を使用します。
リモート JVM モニターを追加するには、次の操作を行います。
- 負荷テストタブの [Monitors] ノードを右クリックし、ショートカット メニューの [新規 Monitor] をクリックします。[新規 Monitor] ダイアログが表示されます。
- [新規 Monitor] ダイアログで [リモート JVM] を選択し、[終了] をクリックします。
- プロジェクト設定パネルで [設定] をクリックします。[Configure Remote JVM Agent] ダイアログが開きます。
- [ Configure Remote JVM Agent] ダイアログでホスト名を入力し、必要に応じてポート番号を変更してから、[終了] をクリックします。[パラメーターの追加] ダイアログが開きます。
- [パラメーターの追加] ダイアログの左側のパネルでパラメーターを選択します。[パラメーターの追加] ダイアログ右側のパネルに、表示する各パラメーター インスタンスの名前、説明、および値が表示されます。
- GUI 右側の [選択] 列で、モニターするパラメーター インスタンスをオンにし、[OK] をクリックします。選択したパラメーターは、負荷テスト進捗グラフおよび詳細レポート グラフに表示されます。
カスタム モニターの追加
カスタム モニターは、JavaScript スクリプト、Jython スクリプト、または Java クラス メソッドを使用して実装できます。カスタム モニターは、上記で挙げられていないソースからデータを収集するのに便利です。
注意
負荷テストの進捗および詳細レポートのグラフに値をプロットするには、チャンネル メソッドが java.lang.Number 型を返す必要があります。
カスタム モニターを追加するには、次の操作を行います。
- 負荷テストタブの [Monitors] ノードを右クリックし、ショートカット メニューの [新規 Monitor] をクリックします。[新規 Monitor] ダイアログが表示されます。
- [新規 Monitor] ダイアログで [カスタム] を選択し、[終了] をクリックします。
- [名前] フィールドにカスタム モニターの名前を入力します。
- [新規] ボタンをクリックします。[チャンネルの追加] ダイアログが開きます。
- [チャンネル ID] フィールドにチャンネルの名前を入力します。入力されたカスタム モニターの名前は、チャンネル ID とともに、モニターのタイトルとなります。このタイトルは、負荷テスト進捗グラフおよび詳細レポート グラフに表示されます。
- (任意) [説明] フィールドにチャンネルの簡単な説明を入力します。
- [言語] メニューから言語を選択します。
- 以下のどちらかの方法でスクリプトを指定します。
- [ファイル] ラジオ ボタンを選択し、[参照] ボタンをクリックしてファイルを選択します。
- [テキスト] ラジオ ボタンを選択し、テキスト フィールドにスクリプトを入力します。
- [メソッド] メニューで、呼び出すメソッドを指定します。
- [OK] をクリックします。GUI 右側の [チャンネル] テーブルに新規カスタム チャンネルが追加されます。
ビルトイン モニターの変更
モニターを作成した後、次のビルトイン モニターの Apply Operation パラメーターを設定または変更することができます。
- Windows
- JBoss
- Tomcat
- リモート JVM
- SNMP
オペレーションを変更するには、モニター設定ビューのパラメーター パネルでモニター チャネルをダブルクリックし、適切なオペレーション タイプおよび値を設定します。
デプロイ済みモニターの追加
Load Test に動的にモニター タイプを追加できます。デプロイされたモニターは、パフォーマンス モニター ウィザードの [デプロイ済みモニター タイプ] テーブルに表示されます。
AppDynamics
AppDynamics モニターの追加
AppDynamics モニターを追加するには、次の操作を行います。
- 負荷テストタブの [Monitors] ノードを右クリックし、ショートカット メニューの [新規 Monitor] をクリックします。[新規 Monitor] ダイアログが表示されます。
- [新規 Monitor] ダイアログの [デプロイされたモニター タイプ] テーブルから [AppDynamicsMonitor] を選択します。
- プロジェクト設定パネルの右上隅にある [プロパティ] ボタンをクリックし、AppDynamics プロパティを設定します。
- [ホスト] - AppDynamics サーバーがインストールされているホストです。
- [ポート] - AppDynamics が REST 呼び出しを待機しているポートです。
- [User Name] – REST 呼び出しの認証ユーザー名です。
- [パスワード] – REST 呼び出しの認証パスワードです。
- [Query Interval (Minutes)] - モニター値を平均する時間 (単位: 分) です。最小値は 1 です。
- [OK] をクリックしてプロパティ値をプロジェクトに保存します。
- AppDynamics モニターにチャンネルを追加するには、次の操作を行います。
- プロジェクト設定タブの [デプロイ済みモニター] パネルで [新規] ボタンをクリックします。モニター チャンネル選択ダイアログが表示されます。モニター チャンネル ツリーの最上位ノードは、AppDynamics によってモニターされるアプリケーションです。
- 最上位のアプリケーション ノードを展開し、チェック ボックスの付いたチャンネルのノードを表示します。
- モニター対象のアイテムがオンになっていることを確認します。
- [OK] をクリックすると、選択されたノードがデプロイ済みモニター設定パネルのパラメーター テーブルに追加されます。選択したパラメーターは、負荷テスト進捗グラフおよび詳細レポート グラフに表示されます。
ヒント
プロパティ ダイアログを開いて [OK] ボタンをクリックし、モニター チャンネル選択ツリーをリセットします。モニター チャンネル ツリーは、AppDynamics から提供されたデータに基づいて最上位のアプリケーション ノードを表示します。ツリーの展開アイコン「+」をクリックすると、AppDynamics に送信されたクエリーに基づいて、子ノードが動的に構築されます。
AppDynamics モニター拡張からのデータをモニターする
AppDynamics Exchange サイトは、さまざまなモニター拡張を提供します。AppDynamics Metric Browser で利用可能なモニター拡張データが、Load test AppDynamics モニターで利用できます。
下のスクリーンショットは、AppDynamics Exchange から入手できる「Static」モニター拡張のデータを表示した AppDynamics Metric Browser ビューおよび Load Test AppDynamics モニター チャンネル選択ビューを示しています。
AppDynamics のカスタムFileContentMetric:
Load Test AppDynamics Monitor のカスタム FileContentMetric:
Dynatrace
Dynatrace モニターの追加
Dynatrace モニターを追加するには、次の操作を行います。
- 負荷テストタブの [Monitors] ノードを右クリックし、ショートカット メニューの [新規 Monitor] をクリックします。[新規 Monitor] ダイアログが表示されます。
- [新規 Monitor] ダイアログの [デプロイされたモニター タイプ] テーブルから DynatraceMonitor] を選択し、[終了] をクリックします。
- プロジェクト設定パネルの右上隅にある [プロパティ] ボタンをクリックし、Dynatrace プロパティを設定します。
- [ホスト] - Dynatrace サーバーがインストールされているホストです。
- [ポート] - Dynatrace が REST 呼び出しを待機しているポートです。デフォルトのポートは 8020 です。詳細については Dynatrace のマニュアルを参照してください。
- [User Name] – REST 呼び出しの認証ユーザー名です。
- [パスワード] – REST 呼び出しの認証パスワードです。
- [OK] をクリックしてプロパティ値をプロジェクトに保存します。
- Dynatrace モニターにチャンネルを追加するには、次の操作を行います。
- プロジェクト設定タブの [デプロイ済みモニター] パネルで [新規] ボタンをクリックします。モニター チャンネル選択ダイアログが表示されます。
- 最上位のアプリケーション ノードを展開し、チェック ボックスの付いたチャンネルのノードを表示します。
- モニター対象のアイテムがオンになっていることを確認します。
- [OK] をクリックすると、選択されたノードがデプロイ済みモニター設定パネルのパラメーター テーブルに追加されます。選択したパラメーターは、負荷テスト進捗グラフおよび詳細レポート グラフに表示されます。
モニター チャンネル選択ビュー ツリーは以下のように構築されます。
- レベル 1: Dynatrace ダッシュボード
- レベル 2: ダッシュボード内の Chart Dashlet
- レベル 3: Chart Dashlet 内の Measure
- レベル 4: Measure の Min/Max/Avg 値
- レベル 3: Chart Dashlet 内の Measure
- レベル 2: ダッシュボード内の Chart Dashlet
既存の Line Chart タイプの Chart Dashlet をモニターするか、新しい Chart Dashlet を作成できます。Chart Dashlet に複数の Measure (データ系列) を追加できます。詳細については、Dynatrace のマニュアルを参照してください。
ヒント
プロパティ ダイアログを開いて [OK] ボタンをクリックし、モニター チャンネル選択ツリーをリセットします。モニター チャンネル ツリーは、Dynatrace から提供されたデータに基づいて最上位のアプリケーション ノードを表示します。ツリーの展開アイコン「+」をクリックすると、Dynatrace に送信されたクエリーに基づいて、子ノードが動的に構築されます。
Dynatrace の REST クエリー レスポンス サイズに関する注意事項
Chart や Dashboard の構成によっては、Dynatrace の REST レスポンスのサイズは、非常に大きくなる場合があります (100KB 以上)。
Dynatrace の REST クエリー レスポンスのサイズを最小限にするには、以下のことに気を付けます。
- Load Test によってモニターされるダッシュボードのチャートで、Chart ビュー右上隅の Char コントロール パネルを以下のように設定します。
- Select Timeframe: 「last 5 minutes」に設定します。
- Select Chart Resolution: 「10s」に設定します。
- Select Timeframe: 「last 5 minutes」に設定します。
- 上のスクリーンショットに表示されている右クリック メニューの [Apply to Dashboard] をクリックし、この設定をダッシュボード内のすべてのチャートに適用します。
- Load Test Dynatrace モニターによって使用されるダッシュボードの REST クエリー レスポンス サイズを見積もるには、次の URL テンプレート (ホスト、ポート、およびダッシュボード名を環境に合わせて変更します) を使用し、ブラウザーでクエリー結果を開きます: http://dynatrace.parasoft.com:8020/rest/management/dashboard/your_dashboard_name
Dynatrace プラグインのデータをモニターする
Dynatrace の「PLUGIN CENTRAL」サイトおよび「Community Plugins and Extensions」サイトには多数のプラグインがあり、その多くを使用して Dynatrace のモニター機能を簡単に拡張できます。Chart Dashlet に Measure として追加された Dynatrace プラグインのデータは、Load Test Dynatrace モニターで利用可能です。
下のスクリーンショットは、「Community Plugins and Extensions」サイトで入手できる StockQuote サンプル モニター プラグインが Dynatrace Chart Dashlet の Measure に追加されたところと、 Load Test Dynatrace モニター チャンネル選択画面に表示されたところを示しています。
Dynatrace のカスタム StockQuote Measure:
Load Test Dynatrace モニターのカスタム StockQuote チャンネル:
JVM スレッド
リモート JVM スレッド モニターの追加
JVM スレッド モニターを使用すると、スレッド統計を参照できるほか、Java の JMX 技術を使用して、リモート Java アプリケーションの個々のスレッドの詳細を記録できます。
JMX モニタリングの有効化
このモニターを使用するには、以下の Java システム プロパティを指定して JVM を開始し、JMX モニタリングを有効化する必要があります。
-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=7744 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false
com.sun.management.jmxremote.port system
システム プロパティで、選択したポート番号を使用します。
リモート JVM スレッド モニターを追加するには、次の操作を行います。
- 負荷テスト タブの [Monitors] ノードを右クリックし、ショートカット メニューの [新規 Monitor] をクリックします。
- [新規 Monitor] ダイアログの [デプロイされたモニター タイプ] テーブルから [JVMThreadsMonitor] を選択し、[終了] をクリックします。
- プロジェクト設定パネルの右上隅にある [プロパティ] ボタンをクリックし、JVMThreadsMonitor プロパティを設定します。
- ホスト: JVM が実行されているホスト名
- ポート: JVM の JMX ポート (「JVX モニタリングの有効化」を参照)
- スレッド フィルター: 文字列のカンマ区切りリストです。スレッド名にリスト内の文字列が含まれる場合、スレッドはモニターによって処理されます。スレッド名の比較は大文字/小文字を区別しません。(フィルターは、モニターがリモート JVM プロセスからすべての利用可能なスレッド データを受信した後に適用されます)
- スレッド ダンプ モード: 詳細な分析の対象とするためにダンプするスレッドの状態をカンマ区切りで記述したリストです。詳細については「Taking Selective Thread Dumps」を参照してください。
スレッド ダンプ ディレクトリ: スレッド ダンプが出力されるディレクトリのパスです。詳細については「Taking Selective Thread Dumps」を参照してください。
JVM スレッド モニターは、テスト対象アプリケーション (AUT) のパフォーマンスに影響を与える可能性があります。
JVM スレッド モニターを追加したことによるパフォーマンスへの影響は、
jvisualvm
Java パフォーマンス診断およびモニタリング ツールを使用した場合と同様です。たいていの場合、影響は無視できる程度ですが、Load Test プロジェクトに JVM スレッド モニターを適用する前後で、CPU 使用率、平均レスポンス時間、最大レスポンス時間など、AUT のキー パフォーマンス指標を使用して評価することを推奨します。
- [OK] をクリックしてプロパティ値をプロジェクトに保存します。
- JVM スレッド モニターにチャンネルを追加するには、次の操作を行います。
- プロジェクト設定タブの [デプロイ済みモニター] パネルで [新規] ボタンをクリックします。モニター チャンネル選択ダイアログが表示されます。
- モニターするチャンネルを有効化します。チャンネル選択ダイアログの説明列にチャンネルの詳細が表示されています。
チャンネルの説明について
TotalThreads | フィルター済みスレッド数です。 |
---|---|
RunningThreads | RUNNABLE ステータスのフィルター済みスレッド数です。 |
BlockedThreads | 同期ステートメントまたはメソッドの処理を待機している BLOCKED ステータスのフィルター済みスレッド数です。 |
ParkedThreads | LockSupport.park() の呼び出しのために parked ステータスにあるフィルター済みスレッド数です。 |
SleepingThreads | Thread.sleep() メソッド内にあるフィルター済みスレッド数です。 |
WaitingThreads | Object.wait() メソッドで通知を待機しているフィルター済みスレッド数です。 |
NewThreads | まだ開始されていないスレッド数です。 |
UnknownThreads | unknown ステータスのスレッド数です。 |
DeadlockedThreads | 1 つのロックを保持していながら、すでに他のスレッドが保持している別のロックを獲得しようとしているスレッドです。このチャンネルは、java.util.concurrent.locks.ReentrantLock や java.util.concurrent.locks.ReentrantReadWriteLock など、オブジェクト モニターおよび所有可能なシンクロナイザーの両方が関係するロックを発見します。 |
MonitorDeadlockedThreads | 1 つの同期モニターを保持していながら、すでに他のスレッドが保持している別のモニターを獲得しようとしているスレッドです。このメソッドは、オブジェクト モニターが関係するデッドロックだけを発見します。 |
BlockedTime | Load Test のデータ収集間隔期間内にフィルター済みスレッドが BLOCKED ステータスだった時間の概算をミリ秒単位で表示します。 |
BlockedRatio | フィルター済みスレッドが BLOCKED ステータスだった時間の概算を割合で表示します。 |
BlockedCount | フィルター済みスレッドが BLOCKED ステータスになった回数です。 |
WaitedTime | フィルター済みスレッドが WAITING または TIMED_WAITING ステータスだった時間の概算をミリ秒単位で表示します。 |
WaitedRatio | フィルター済みスレッドが WAITING または TIMED_WAITING ステータスだった時間の概算を割合で表示します。 |
WaitedCount | フィルター済みスレッドが WAITING または TIMED_WAITING ステータスになった回数です。 |
モニター チャンネルから返されたすべてのデータは、最後の Load Test データ収集間隔に関連付けられます。
NEW、RUNNABLE、BLOCKED、WAITING、TIMED_WAITING、TERMINATED は java.lang.Thread
クラスの State
列挙型のステータスです。
JVM スレッド ステータスの詳細については、関連する Java クラスの Java ドキュメントを参照してください。
- java.lang.management.ThreadInfo:
https://docs.oracle.com/javase/8/docs/api/java/lang/management/ThreadInfo.html
- java.lang.managementThreadJMXBean:
https://docs.oracle.com/javase/8/docs/api/java/lang/management/ThreadMXBean.html
初期化時、JMX スレッド モニターは、リモート JVM でスレッド競合モニタリングが有効化されているかをチェックします。競合モニタリングが無効化されている場合、JMX スレッド モニターはモニタリングを有効化しようとします。試みが失敗した場合、BlockedTime、BlockedRatio、WaitedTime および WaitedRatio チャンネルは値としてゼロを返します。
選択的スレッド ダンプの取得
JMX スレッド モニターでは、リモート アプリケーションのスレッドのダンプを選択的に取得し、後で解析するためにディスクに保存することができます。この機能を利用すると、散発的に発生する望ましくないスレッド ステータスを捕捉したり、自動化された負荷テスト実行中にスレッドのステータスを記録することができます。
JMX スレッド モニターは、負荷テストが実行されているときにだけスレッドをダンプします。モニター設定ビューで [リクエストの送信] をクリックしても、スレッド ダンプは取得されません。
選択的スレッド ダンプを設定するには、次のモニター プロパティを指定します。
スレッド フィルター | スレッド フィルターに一致するスレッドだけかダンプされます。 |
---|---|
スレッド ダンプ モード | 次の値が利用可能です。
このプロパティが設定されていない場合 (空の場合)、スレッド ダンプは取得されません。 複数のスレッド ステータスのダンプを設定するには、値のリストをカンマ区切りで入力します。DEADLOCKED, BLOCKED, PARKED |
スレッド ダンプ ディレクトリ | 絶対パス、または次の SOAtest/LoadTest インストール ディレクトリ内のディレクトリへの相対パスを入力できます。 ${SOATEST_INSTALL_DIR}\eclipse\plugins\com.parasoft.xtest.libs.web_version\root このプロパティが設定されていない場合 (空の場合)、スレッド ダンプは取得されません。 この設定で指定されたパスは、スレッド ダンプのルートとして使用されます (「Examining Thread Dumps」を参照)。 |
スレッド ダンプの確認
スレッド ダンプ ディレクトリ設定で指定されたパスは、スレッド ダンプのルートとして使用されます 。JVM スレッド モニターは、負荷テスト実行のたびに、スレッド ダンプ ルートの下に個々のプロジェクト スレッド ダンプ ディレクトリを作成します。それらのプロジェクト スレッド ダンプ ディレクトリは、次のパターンに従って命名されます。PROJECTNAME_YYYY-MM-DD_hh-mm-ss
- PROJECTNAME: LoadTest プロジェクトの名前です。
- YYYY: 現在年
- MM: 現在月
- DD: 現在日
- hh: 24 時間書式の時間
- mm: 分
- ss: 秒
この書式によって、スレッド ダンプがどの Load Test プロジェクトのものか、またいつ作成されたが明確に分かります。負荷テスト実行時にモニターがスレッド ダンプ 設定に一致するスレッド ダンプを発見できなかった場合は、PROJECTNAME_YYYY-MM-DD_hh-mm-ss ディレクトリは作成されません。
モニターはプロジェクト スレッド ダンプ ディレクトリ内に次の命名パターンに従ってスレッド ダンプ ファイルを作成します。S..S_hh-mm-ss.txt
- S..S: スレッド ダンプが取得された負荷テスト実行開始時からの経過時間を秒単位で表します。
- hh-mm-ss: スレッド ダンプが取得された時点のシステム時間です。
- hh: 24 時間書式の時間
- mm: 分
- ss: 秒
各スレッド ダンプ ファイルには、モニターが取得した 1 つ以上のスレッド スタック トレースが含まれます。スレッド スタック トレースのフォーマットは次のとおりです。
THREAD_STATE thread: THREAD_NAME thread_stack_entries
各 BLOCKED スレッドの後にこれをブロックしているスレッドのスタック トレースが表示されます。BLOCKED スレッドの出力のフォーマットは次のとおりです。
THREAD_STATE thread: THREAD_NAME thread_stack_entries ------------------ Blocked by: BLOCKING_THREAD_STATE thread: THREAD_NAME blocking_thread_stack_entries
例:
BLOCKED thread: Clinet Rec: LTPub_0.4104694862292172 com.acme.connections.ClientComms.isDisconnecting:561 ... java.util.concurrent.ThreadPoolExecutor$Worker.run:617 java.lang.Thread.run:745 ------------------ Blocked by: PARKED thread: acme_pool-2-UserCodeRunnable-135 sun.misc.Unsafe.park:-2 java.util.concurrent.locks.LockSupport.parkNanos:215 java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos:2078 java.util.concurrent.ThreadPoolExecutor.awaitTermination:1465 ...
スレッド ダンプと Load Test レポートのグラフ ポイントの対応
Load Test レポート グラフ内の特定のポイントのスレッド ダンプを発見するには、次の操作を行います。
- Load Test レポート グラフのポイントにマウス カーソルを位置づけます。
- ツールチップに表示された経過時間またはシステム時間を参考に、一番近い経過時間またはシステム時間を持つダンプ ファイルを探します。
たとえば、次の画面ショットでハイライトされたグラフ ポイントのスレッド ダンプ ファイルは 3_10-37-37.txt ファイルとなります。
モニターのクエリー
モニターにパラメーターを追加すると、クエリーが可能になります。
クエリーを送信するには、次の操作を行います。
- クエリーを送信するモニターを表す負荷テスト ツリー ノードを選択します。
- モニター設定パネルのレスポンス ビュー エリアにある [リクエストの送信] ボタンをクリックします。
モニター設定パネルのレスポンス ビュー エリアにクエリー結果が表示されます。
モニターのステータスの検証
負荷テスト ツリーでは、丸印の色によって各モニターのステータスが表されます。次の色が使用されます。
- 白: 未チェック
- 緑: すべてのパラメーターが利用可能です。
- 黄: 一部のパラメーターが利用できないか、値が数値ではありません。
- 赤: モニターが利用できないか、到達できません。
1 つまたは複数のモニターの現在のステータスを確認するには、次の操作を行います。
- 検証するモニターを表す負荷テスト ツリー ノード ([Monitors] ノード、[Windows] ノード、[SNMP] ノード、[カスタム] ノード、または個々のモニターを表すノード) を右クリックします。
- ショートカット メニューの [検証] をクリックします。
テスト スイート負荷テスト中の振る舞いをモニター
負荷テスト ツリーに追加したモニターは、テスト スイート負荷テスト中も使用されます。
モニターを使用する負荷テストを実行している間、負荷テスト進捗パネルの [グラフ] タブには、各モニターを表す棒が追加されます。[グラフ] タブは、モニターから収集されたデータを表示します。棒の名前は、パラメーター ID の OID 番号ではなく、モニターのグラフ タイトルの値に基づきます。
モニター結果へのアクセス
負荷テスト中に収集されたモニター データは、詳細レポートに保存され、デフォルト データ (「仮想ユーザー数」など) とともに、あるいはデフォルト データと関連付けて参照することができます。