アプリケーションサーバの性能解析トレースは,クライアントからのリクエストを処理する過程でアプリケーションサーバの各機能が出力する性能解析情報(トレース情報)や,セッションのライフサイクルを判断するための情報を使用して,アプリケーションサーバの処理性能を解析する機能です(以降,アプリケーションサーバの性能解析トレースを性能解析トレースと呼びます)。アプリケーションサーバのボトルネックを解析したり,障害が発生した場合にリクエストの処理がどこまで到達したかを調べてトラブルシュートの効率向上を図ったり,セッションやグローバルセッション情報のライフサイクルを把握したりできます。
性能解析トレースのトレース情報には,クライアントからデータベースなどのEISに至るまで,およびその処理結果がクライアントに返却されるまでのリクエストの一連の処理で出力される性能解析情報が収集されます。
性能解析トレースのトレース情報収集の概要を,次の図に示します。
図7-2 性能解析トレースのトレース情報収集の概要
WebクライアントまたはEJBクライアントからリクエストが送信された場合に,Webサーバ,J2EEサーバおよびCTMでは,決まった処理のポイントでトレース情報がバッファに出力されます。出力された情報は,一定量たまるとパフォーマンストレーサ(PRFデーモン)によって,トレースファイル(PRFトレースファイル)に出力されます。トレースが出力されるポイントを,トレース取得ポイントといいます。パフォーマンストレーサには,トレース取得レベル(標準または詳細)を設定できます。パフォーマンストレーサに設定するトレース取得レベルをPRFトレース取得レベルといいます。
Management Serverを利用して運用している場合は,PRFトレースファイルをテキスト形式に編集した性能解析トレースファイルを収集できます。運用管理者は,収集した性能解析トレースファイルを基に,運用管理ドメイン内全体の性能解析およびボトルネックの解析ができるようになります。性能解析トレースファイルの収集方法や出力情報については,「7.3 Management Serverを利用した性能解析トレースファイルの収集」を参照してください。
性能解析トレースでは,システム内部のイベント単位で,複数のノードおよびプロセス間にわたるトレース情報を取得できます。これによって,一連の処理の中で,どの処理がボトルネックになっているかをトレースできます。
イベント単位でトレースを取得するために,性能解析トレースでは,イベント単位の一連の処理に一貫したキーを設定して管理します。イベント内のトレース取得ポイントで出力するトレースには,キーの情報が付加されます。これによって,一連の処理がトレースできます。
図7-3 性能解析トレースによるトレース出力の概要
なお,トレースを出力するリダイレクタ,Webコンテナなどを,機能レイヤといいます。性能解析トレースでは,次の機能レイヤの入り口と出口でトレース情報を出力します。必要に応じて,各機能レイヤ内の処理のうち,性能に影響を与える処理ごとにも,トレース情報を出力します。アプリケーションの実行環境と該当する機能レイヤを次の表に示します。
表7-2 アプリケーションの実行環境と該当する機能レイヤ
機能レイヤ | アプリケーションの実行環境 | |
---|---|---|
J2EEアプリケーションの実行環境 | バッチアプリケーションの実行環境 | |
CTM | ○ | - |
リダイレクタ | ○ | - |
Webコンテナ | ○ | - |
EJBコンテナ | ○ | - |
Timer Service | ○ | - |
JNDI | ○ | ○ |
JTA | ○ | ○ |
JCAコンテナ | ○ | ○ |
DB Connector | ○ | ○ |
RMI(通信処理)※1 | ○ | ○ |
OTS | ○ | ○ |
標準出力/標準エラー出力/ユーザログ | ○ | ○ |
DI | ○ | - |
バッチアプリケーション実行機能 | - | ○※2 |
JPA | ○ | - |
CJPAプロバイダ | ○ | - |
TP1インバウンド連携機能 | ○ | - |
CJMSプロバイダ | ○ | - |
JavaMail | ○ | - |
CDI | ○ | - |
(凡例)○:該当する -:該当しない
また,性能解析トレースでは,これらの機能レイヤのほかに,J2EEサーバの開始処理,終了処理,トランザクションタイムアウト発生時,およびセッションの生成/破棄でもトレースを出力します。
なお,トレース情報の内容には,トレース情報を取得したプロセスID,取得ポイントを示すイベントID,トレース取得年月日やトレース情報を取得したクライアントアプリケーションのIPアドレスなどの情報が含まれます。
トレース情報のキー情報は,次の要素で構成されています。
PRFトレースには,次の2種類のキー情報が付与されます。
性能解析トレースは,次のプログラムで構成されています。
PRFトレース出力ライブラリとPRFデーモンの関係を次の図に示します。
図7-4 PRFトレース出力ライブラリとPRFデーモンの関係
PRFトレース出力ライブラリによってトレースが出力されるバッファ領域は,PRFデーモン起動時に作成されます。バッファ領域は,共用メモリに作成されます。ただし,前回PRFデーモンを起動した時に作成したバッファ領域が残っている場合は,その領域を再利用します。バッファ領域が削除されないで残っているのは,前回起動したPRFデーモンが異常終了した場合です。
PRFデーモンが正常終了した場合,バッファ領域内のバッファデータはPRFトレースファイルに出力され,バッファ領域は削除されます。
バッファ領域が不足すると,KFCT26999-Wのメッセージが出力されて,PRFトレースが完全に出力されない場合があります。そのため,このメッセージが出力される場合は,バッファサイズのチューニングをしてください。
トレース情報を利用したトラブルシュートについて説明します。
性能解析トレースに出力される情報を取得することで,トラブルシュートとして次のように使用できます。