性能ログファイルへのログ出力機能を使用した場合に採取できる性能情報と、その評価方法、対処方法について説明します。
■性能ログファイルの出力方法
ispreportコマンドを使用して、性能ログファイルのレポート出力を行います。ispreportコマンドは、性能ログファイルに保存されている性能情報を1レコードずつ読み出し、以下のようにCSV形式に変換して標準出力に出力します。出力される項目は、アプリケーション種別ごとに異なります。
D1, D2, D3, D4, D5, ...... |
平均処理待ち要求数を出力する場合は、“-a WQUEAVG”オプションを付加してください。
IJServerのEJBコンテナの性能情報を出力する場合は、“-k EJBAPL”オプションを付加してください。
性能ログファイルをCSV形式に変換してファイルに出力する場合は、ispreportコマンド実行時に、以下のようにして、出力先のファイル名を指定してください。
ispreport オプション > 出力先ファイル名 |
■性能情報の項目内容
採取できる性能情報は、アプリケーション種別ごとに項目が異なります。
性能情報として出力される項目について、アプリケーション種別ごとに説明します。各表の項番に書かれているD1、D2、・・・は、CSV形式で出力されるD1、D2、・・・に対応しています。
注) 以降の説明では、“IJServerのEJBコンテナ”を“EJBコンテナまたはアプリケーション”と記載します。
項番 | 性能情報の項目名 | 単位 | 内容 |
---|---|---|---|
D1 | データ採取開始日付 | - | 当該レコードの性能情報の測定を開始した日付 |
D2 | データ採取開始時刻 | - | 当該レコードの性能情報の測定を開始した時刻 |
D3 | データ採取終了日付 | - | 当該レコードの性能情報の測定を終了した日付 |
D4 | データ採取終了時刻 | - | 当該レコードの性能情報の測定を終了した時刻 |
D5 | EJBアプリケーション名 | - | 測定対象のEJBアプリケーション名 |
D6 | メソッド名+シグネチャ | - | 測定対象のメソッド名+シグネチャ(メソッドの引数と戻り値の型) |
D7 | プロセスID | - | 測定対象のEJBコンテナのプロセスID |
D8 | スレッドID | - | 測定対象のメソッドが動作するスレッドID |
D9 | 最大要求処理時間 | ミリ秒 | 当該スレッドにおける当該メソッドの処理時間(インターバル時間内での最大値/最小値/平均値) |
D10 | 最小要求処理時間 | ミリ秒 | |
D11 | 平均要求処理時間 | ミリ秒 | |
D12 | 最大要求処理待ち時間 | ミリ秒 | クライアントアプリケーションからの要求を受け付けてから、メソッドが処理を開始するまでの待ち時間(インターバル時間内での最大値/最小値/平均値) (注) |
D13 | 最小要求処理待ち時間 | ミリ秒 | |
D14 | 平均要求処理待ち時間 | ミリ秒 | |
D15 | 処理数 | 回 | 当該スレッドにおける当該メソッドの処理回数(インターバル時間内での値) |
D16 | 要求受信数 | 回 | 当該EJBコンテナまたはアプリケーションの累積処理回数(インターバル時間内での値) |
D17 | 処理待ち要求数 | 個 | 当該EJBコンテナに対して処理待ちとなった要求数(インターバル時間内での最大値) (注) |
D18 | EJBオブジェクト数 (Session) | 個 | 現在のEJBオブジェクト数(createメソッド実行数とremoveメソッド実行数の差分)(インターバル時間内での最大値) |
D19 | Entityの最大Passivate数 | - | EJBコンテナ(プロセス)のインスタンスのプーリング回数(インターバル時間内での最大値) |
D20 | VMの最大メモリ使用量 | Kバイト | EJBコンテナに対応するVMのメモリ使用量(インターバル時間内での最大値/平均値) |
D21 | VMの平均メモリ使用量 | Kバイト | |
D22 | 平均処理待ち要求数 | 個 | 当該オブジェクトに対して処理待ちとなった要求数(インターバル時間内での平均値) |
注) IJServerのEJBコンテナに配備されたEJBアプリケーションがMessage-driven Beanの場合には、必ず“0”が出力されます。
ispreportコマンドは、インターバル時間間隔の情報を、各プロセス上のメソッド+シグネチャ単位に出力します。出力情報には、各プロセス上のメソッド+シグネチャ単位の情報と、EJBコンテナ単位の情報があります。
メソッド+シグネチャ単位の評価(D9~D11、D15)
D9~D11、D15は、D7に示すプロセス内の、D6に示すメソッド+シグネチャに対する要求処理時間、処理数を示します。この情報を用いることにより、プロセスごとのメソッド+シグネチャ単位の評価を行えます。
なお、一度集計したD6のメソッド+シグネチャに対する情報は、次回以降の集計インターバル時間内に、1度も動作しない場合、処理数0として出力されます。
EJBアプリケーション単位の評価(D12~D14、D16~D18、D22)
D12~D14、D16~D18、D22は、D5に示すEJBアプリケーションに対する要求処理待ち時間、要求受信数、処理待ち要求数等を示します。EJBアプリケーション単位の評価が行えます。
プロセス単位の評価(D19~D21)
D19~D21は、D7に示すプロセスに対するEntityの最大Passivate数、VMのメモリ使用量を示します。プロセス単位の評価が行えます。
■評価方法と対処方法
性能ログファイルへのログ出力機能で採取した性能情報の評価方法と対処方法を、以下の一覧にまとめます。
性能異常を検出した場合は、一覧を参考にして対処してください。
項番 | 評価方法 | 対応/処置 |
---|---|---|
1 | 性能監視を実施した全時間帯で、最大要求処理時間が長く、かつ、平均要求処理時間が、最大要求処理時間に近い時間となっている。 | 要求処理時間が、目標値よりも長くかかっている場合には、以下の要因が考えられます。
上記の観点で、サーバアプリケーションおよびシステムを見直してください。 |
2 | 特定の時間帯で、最大・平均・最小の各要求処理時間が長くなっている。 | 特定の時間帯に、システム負荷が高くなっている可能性があります。 |
3 | 特定の時間帯で、最大・平均・最小の各要求処理待ち時間が長くなっている。 | |
4 | 最大要求処理時間は長いが、平均要求処理時間は短く、最小要求処理時間に近い時間となっている。 | 以下の要因が考えられます。
上記の観点で、システムおよびサーバアプリケーションを見直してください。 |
5 | 最大要求処理待ち時間は長いが、平均要求処理待ち時間は短く、最小要求処理待ち時間に近い時間となっている。 | |
6 | 性能監視を実施した全時間帯で、最大要求処理待ち時間および平均要求処理待ち時間が長くなっている。 | クライアントからの要求数に対して、サーバアプリケーションの処理能力が不足しています。 |
7 | 特定の時間帯で、処理数・処理待ち要求数が多くなっている。 | 特定の時間帯にサーバアプリケーションに対する要求数が増加しています。 |
8 | EJBオブジェクト数がクライアント接続数より多くなっている。 (※) | EJBオブジェクトの数が増加しています。createメソッドに対するremoveメソッドの実行がされていない可能性があります。 |
9 | Passivate数が多くなっている。 (※) | Entity初期インスタンス数が不足しています。 |
10 | VMのメモリ使用量が多くなっている。 (※) | メモリリークをしている可能性があります。 |
11 | 処理待ち要求数が大きいが、平均要求処理待ち時間が短い。 | isinfobjコマンドを使用して、定期的に待ちキューの状態を確認し、インターバル時間内の負荷状態を確認してください。 |
※) EJBアプリケーションの場合のみ、有効です。