Sun Identity Manager 8.1 システム管理者ガイド

それ以外のデバッグツールの使用

パフォーマンスの潜在的ボトルネックを見つけるには、次の Sun Microsystems ツールと第三者ツールが使用できます。

これらのツールは、使用中の配備でカスタム Java クラスを使用する場合に有用です。

Identity Manager Profiler

Identity Manager には、使用中の配備のパフォーマンス問題をトラブルシューティングするのに役立つ Profiler ユーティリティーが搭載されています。

カスタマイズしたフォーム、Java、ルール、ワークフロー、および XPRESS がパフォーマンス問題とスケール問題の原因になることがあります。この Profiler は各領域での経過時間を調べるので、フォーム、Java、ルール、ワークフロー、XPRESS オブジェクトのうちどれがパフォーマンス問題とスケール問題の一因となっているか、一因となっている場合は、そのオブジェクトのどの部分が問題の原因になっているかがわかります。


注 –

Profiler の詳細は、『Sun Identity Manager 8.1 リリースノート』「Identity Manager プロファイラの操作」を参照してください。


DTrace の使用

DTrace 機能は、Solaris 10 オペレーティングシステム用に動的にトレースするフレームワークで、JVM 動作を監視できるようになります。

DTrace には、30,000 を超える検証機能が搭載されており、統合されたユーザーレベルとカーネルレベルのトレース機能を使用して、プロダクションシステム内を把握できるようにします。また、C 言語や awk 言語に似た D 言語で、任意のデータと式をトレースすることもできます。この DTrace 機能にも、JVM を監視するための特殊なサポートが備わっているので、使用中のシステム全体と JVM 外部のスパンが監視できるようになります。

DTrace は、検証機能が JVM に内蔵されているので Java 6 で一番使用しやすくなっています。この機能は、Java 1.4 と Java 5 でも動作しますが、次の URL から JVM PI または JVM TI エージェントをダウンロードする必要があります。

https://solaris10-dtrace-vm-agents.dev.java.net/

次の例は、DTrace スクリプトの記述方法を示したものです。


例 4–2 DTrace スクリプトの例


#!/usr/sbin/dtrace -Zs 
#pragma D option quiet
hotspot$1::: 
{
  printf("%s\n", probename); 
}

この例では、$1 をスクリプトの最初の引数に置き換えてください。これは、管理対象となる Java プロセスの PID としてください。たとえば、次のようにします。

# ./all-jvm-probes.d 1234

次の表は、各種 DTrace の検証機能を有効にできるコマンドを説明したものです。

表 4–3 DTrace コマンド

コマンド 

説明 

-XX:+DTraceMonitorProbes

Java 6 の JVM サポートを有効にします (Java 1.4 と Java 5 用パッチ)。 

-XX:+ExtendedDTraceProbes

次の情報を提供します。 

  • JVM の起動 (開始と終了) とシャットダウン

  • 開始スレッドと停止スレッド

  • 読み込み中クラスと読み込み解除中のクラス

  • ガベージコレクション (各種オプションが利用可能)

  • JIT コンパイルの開始と終了

  • 読み込み中コンパイル済みメソッドと読み込み解除中のコンパイル済みメソッド

  • 監視競合、待機、通知

  • メソッドのエントリ、メソッドの戻り値、オブジェクト割り当て

/usr/sbin/dtrace -n ’hotspot*:::’

そのシステム上のすべての Java プロセスに、すべての JVM 検証機能を有効にします。 

/usr/sbin/dtrace -n ’hotspot1234:::’

PID が 1234 の Java プロセスにだけ、すべての JVM 検証機能を有効にします。

/usr/sbin/dtrace -n ’hotspot1234:::gc-begin’

プロセス 1234 を開始するためのガベージコレクション時に起動する検証機能だけを有効にします。


注 –

DTrace はシステム処理を増やすため、この機能はシステムパフォーマンスに影響します。この影響はごくわずかですが、負荷のかかる有効化で大量の検証機能を有効にすると大きくなります。

DTrace のパフォーマンスへの影響を最小限に抑える手順については、『Solaris Dynamic Tracing Guide』の「Performance Considerations」の章に記載されています。

DTrace の詳細は、/usr/demo/dtrace および man dtrace を参照してください。


JMX の使用

Identity Manager を使用すると、Java Management Extensions (JMXTM) を使用して、所定のリソースアダプタの操作における操作上の統計を取り込み表示することができます。このデータは、システム状態とレポートを監視するなど、診断と予測に使用できます。

この統計データには、次の情報が含まれています。

オブジェクト 

監視対象となった動作 

アカウントの場合 

  • Create

  • Update

  • Delete

  • Get

  • Authenticate

動作の場合 

Run 

その他オブジェクトの場合 

  • Create

  • Update

  • Delete

  • Get

  • List

JMX は、サーバー別のリソースアダプタごとに MBeans を作成して、これらの Beans を次のパターンに一致する名前で登録します。


serverName=server name, resourceAdapterType=Resource Adapter Type,
resourceAdapterName=Resource Adapter Name

Identity Manager は、正常に完了したかエラーで完了したか、完了した処理のすべてに統計を記録します。ただし Identity Manager は、例外を投げる処理など未完成の処理の統計は記録しません。

excludes の設定方法は、次のとおりです。

  1. 管理者インタフェースから、「設定」->「サーバー」の順に選択します。

  2. 「サーバーの設定」ページで、次のいずれかのタスクを実行します。

    • サーバーのデフォルト設定を編集するには、「サーバーのデフォルト設定の編集」ボタンをクリックします。

    • サーバーのポリシーを編集するには、そのサーバーのリンクをクリックします。

  3. リソース監視を有効にするには、「JMX」タブをクリックして「JMX リソースアダプタモニターの有効化」ボックスを有効にします。

    • 特定のリソースを除外するには、「JJMX リソースアダプタモニターの対象外」リストに正規表現を追加します。

    • 特定動作の監視を除外するには、「JMX リソースアダプタモニター操作の対象外」リストに正規表現を追加します。

どの excludes も、正規表現を使用します。特定リソースを除外した場合、JMX はリソース名だけで照合します。たとえば次の名前のアダプタがある場合は、


resource1
resource2
resource3
resource10
resource11

次のパターンを指定します。


.*1$

つまり、何かが 1 (1$) で終わるまで、0 以上の任意の文字 (.*) にマッチします。JMX は、resource1resource11 を除外します。

処理の場合も、手順は同様です。処理に次の名前が付いている場合は、パターンがこの名前に一致する必要があります。


ACCOUNT_CREATE
ACCOUNT_UPDATE
ACCOUNT_DELETE
ACCOUNT_GET
ACCOUNT_AUTHENTICATE
OBJECT_CREATE
OBJECT_UPDATE
OBJECT_DELETE
OBJECT_GET
OBJECT_LIST
ACTION_RUN

たとえば、^ACCOUNT.* パターンは ACCOUNT で始まるすべての処理を除外します。または、このパターンを使用すると updates と deletes が除外されます。


.*UPDATE$
.*DELETE$

注 –

JMX の設定方法と使用法の詳細は、『『Sun Identity Manager 8.1 ビジネス管理者ガイド』』「JMX 監視の設定」 および 『Sun Identity Manager 8.1 ビジネス管理者ガイド』「JMX パブリッシャータイプ」を参照してください。


JConsole の使用

Java Monitoring and Management Console (JConsole) は、Java Management Extension (JMX) テクノロジ対応のグラフィカル管理ツールで、JDK 5 以降に同梱されています。JConsole は実行中の JVM に接続し、接続している JMX エージェントの JVM MBeans から情報を収集します。

具体的に JConsole で実行できるタスクは、次のとおりです。


注 –

JConsole を使用した Java プラットフォーム上のアプリケーション監視の詳細は、「JConsole を使用したアプリケーション監視」という Sun Developer Network (SDN) 記事を参照してください。次の URL から入手できます。

http://java.sun.com/developer/technicalArticles/J2SE/jconsole.html


Identity Manager には、次の点に関する情報を提供する JMX MBeans がいくつか搭載されています。

JRat の使用

潜在的なパフォーマンスボトルネックを見つけるには、Java プラットフォーム用オープンソースのパフォーマンスプロファイラである Java Runtime Analysis Toolkit (JRat) を使用します。使用中の配備でカスタム Java クラスを使用する場合は特に使用します。JRat は、使用中のアプリケーションの実行を監視し、アプリケーションのパフォーマンスの測定を維持します。

たとえば、プロビジョニングにカスタムワークフローがある場合にこの JRat を使用すると、呼び出されているクラスを表示したり、デフォルトの Identity Manager プロビジョニングワークフローと比較したワークフローの実行に掛かる時間を表示できます。

JRat の詳細は、http://jrat.sourceforge.net を参照してください。