Hitachi

Cosminexus V11 アプリケーションサーバ 機能解説 保守/移行編


7.2.1 アプリケーションサーバの性能解析トレースの概要

アプリケーションサーバの性能解析トレースは,クライアントからのリクエストを処理する過程でアプリケーションサーバの各機能が出力する性能解析情報(トレース情報)や,セッションのライフサイクルを判断するための情報を使用して,アプリケーションサーバの処理性能を解析する機能です(以降,アプリケーションサーバの性能解析トレースを性能解析トレースと呼びます)。アプリケーションサーバのボトルネックを解析したり,障害が発生した場合にリクエストの処理がどこまで到達したかを調べてトラブルシュートの効率向上を図ったり,セッションやグローバルセッション情報のライフサイクルを把握したりできます。

〈この項の構成〉

(1) 性能解析トレースのトレース情報収集

性能解析トレースのトレース情報には,クライアントからデータベースなどのEISに至るまで,およびその処理結果がクライアントに返却されるまでのリクエストの一連の処理で出力される性能解析情報が収集されます。

性能解析トレースのトレース情報収集の概要を,次の図に示します。

図7‒2 性能解析トレースのトレース情報収集の概要

[図データ]

WebクライアントまたはEJBクライアントからリクエストが送信された場合に,Webサーバ,J2EEサーバおよびCTMでは,決まった処理のポイントでトレース情報がバッファに出力されます。出力された情報は,一定量たまるとパフォーマンストレーサPRFデーモン)によって,トレースファイル(PRFトレースファイル)に出力されます。トレースが出力されるポイントを,トレース取得ポイントといいます。パフォーマンストレーサには,トレース取得レベル(標準または詳細)を設定できます。パフォーマンストレーサに設定するトレース取得レベルをPRFトレース取得レベルといいます。

Management Serverを利用して運用している場合は,PRFトレースファイルをテキスト形式に編集した性能解析トレースファイルを収集できます。運用管理者は,収集した性能解析トレースファイルを基に,運用管理ドメイン内全体の性能解析およびボトルネックの解析ができるようになります。性能解析トレースファイルの収集方法や出力情報については,「7.3 Management Serverを利用した性能解析トレースファイルの収集」を参照してください。

(2) 性能解析トレースの仕組み

性能解析トレースでは,システム内部のイベント単位で,複数のノードおよびプロセス間にわたるトレース情報を取得できます。これによって,一連の処理の中で,どの処理がボトルネックになっているかをトレースできます。

イベント単位でトレースを取得するために,性能解析トレースでは,イベント単位の一連の処理に一貫したキーを設定して管理します。イベント内のトレース取得ポイントで出力するトレースには,キーの情報が付加されます。これによって,一連の処理がトレースできます。

図7‒3 性能解析トレースによるトレース出力の概要

[図データ]

なお,トレースを出力するEJBコンテナ,Webコンテナなどを,機能レイヤといいます。性能解析トレースでは,次の機能レイヤの入り口と出口でトレース情報を出力します。必要に応じて,各機能レイヤ内の処理のうち,性能に影響を与える処理ごとにも,トレース情報を出力します。アプリケーションの実行環境と該当する機能レイヤを次の表に示します。

表7‒2 アプリケーションの実行環境と該当する機能レイヤ

機能レイヤ

アプリケーションの実行環境

J2EEアプリケーションの実行環境

バッチアプリケーションの実行環境

CTM

Webコンテナ

EJBコンテナ

Timer Service

JNDI

JTA

JCAコンテナ

DB Connector

RMI(通信処理)※1

OTS

標準出力/標準エラー出力/ユーザログ

DI

バッチアプリケーション実行機能

※2

JPA

TP1インバウンド連携機能

CJMSプロバイダ

JavaMail

CDI

JSF 2.3

JAX-RS

Java Batch

(凡例)○:該当する −:該当しない

注※1

RMI(通信処理)の機能レイヤについては,トレース情報の取得を抑止することができます。その場合,トレース取得レベルに「抑止」を設定します。設定方法については,マニュアル「アプリケーションサーバ リファレンス コマンド編」の「cprfstart(PRFデーモンの開始)」,またはマニュアル「アプリケーションサーバ リファレンス コマンド編」の「cprflevel(PRFトレース取得レベルの表示と変更)」を参照してください。

注※2

トレース情報は,バッチアプリケーションの実行直前(mainメソッドを呼ぶ直前),およびバッチアプリケーション終了直後に出力されます。cjexecjobコマンドおよびcjkilljobコマンドの実行では出力されません。

また,性能解析トレースでは,これらの機能レイヤのほかに,J2EEサーバの開始処理,終了処理,トランザクションタイムアウト発生時,およびセッションの生成/破棄でもトレースを出力します。

なお,トレース情報の内容には,トレース情報を取得したプロセスID,取得ポイントを示すイベントID,トレース取得年月日やトレース情報を取得したクライアントアプリケーションのIPアドレスなどの情報が含まれます。

参考

これらの機能レイヤのほか,Application Serverの構成ソフトウェアおよび関連プログラムでも,次の機能レイヤでPRFトレースが取得できます。

  • Web Services - Base

  • TP1 Connector

  • TP1/Client/J

  • TP1/MQ Access

  • Reliable Messaging

  • HCSCサーバ

  • HCSCサーバ(Object Accessアダプタ)

  • Service Coordinator Interactive Workflow

  • HCSCサーバ(ファイルアダプタ)

  • HCSCサーバ(Message Queueアダプタ)

  • HCSCサーバ(FTPアダプタ)

  • JAX-WSエンジン

  • Elastic Application Data store

トレース情報のキー情報は,次の要素で構成されています。

キー情報の構成
  • キー情報を取得したプロセスID

  • キー情報を取得したプロセスが起動しているホストのIPアドレス

  • PRFトレースのI/Oプロセス(PRFデーモン)単位で割り当てられる通信番号

    なお,PRFデーモンが起動していない場合は,通信番号として時刻が返却されます。ただし,この場合,通信番号の一意性を保てないおそれがあるので,PRFデーモンは必ず起動してください。

PRFトレースには,次の2種類のキー情報が付与されます。

(3) 性能解析トレースの構成

性能解析トレースは,次のプログラムで構成されています。

PRFトレース出力ライブラリとPRFデーモンの関係を次の図に示します。

図7‒4 PRFトレース出力ライブラリとPRFデーモンの関係

[図データ]

PRFトレース出力ライブラリによってトレースが出力されるバッファ領域は,PRFデーモン起動時に作成されます。バッファ領域は,共用メモリに作成されます。ただし,前回PRFデーモンを起動した時に作成したバッファ領域が残っている場合は,その領域を再利用します。バッファ領域が削除されないで残っているのは,前回起動したPRFデーモンが異常終了した場合です。

PRFデーモンが正常終了した場合,バッファ領域内のバッファデータはPRFトレースファイルに出力され,バッファ領域は削除されます。

バッファ領域が不足すると,KFCT26999-Wのメッセージが出力されて,PRFトレースが完全に出力されない場合があります。そのため,このメッセージが出力される場合は,バッファサイズのチューニングをしてください。

(4) トレース情報の取得によるトラブルシュート

トレース情報を利用したトラブルシュートについて説明します。

性能解析トレースに出力される情報を取得することで,トラブルシュートとして次のように使用できます。