(57)【要約】【課題】  応答時間監視装置で、監視対象が実行するジョブに最適な閾値を用いて応答時間を監視することを目的とする。【解決手段】  応答時間監視装置１は、学習部１４が、監視対象コンピュータで一定時間に実行される全ジョブ合計の同時実行数と各ジョブ種でのジョブ種単独の同時実行数と平均応答時間とを計算し、ジョブ種毎に、その平均応答時間と全ジョブ合計の同時実行数との第１の対応関係とジョブ種単独の同時実行数との第２の対応関係とを生成し、該ジョブ種に対応する第１の対応関係および第２の対応関係のうち平均応答時間との相関が高い対応関係を選択する学習部１４と、予め設定された時間毎に前記監視対象コンピュータで実行される各ジョブの応答時間を取得し、各ジョブの応答時間を、該ジョブのジョブ種に対応して選択された対応関係を用いて決定した閾値をもとにアラート対象とするかを判断する診断部１５を備える。【選択図】  図４
2014137635.tif 000002
【特許請求の範囲】
【請求項１】
監視対象コンピュータの応答時間を監視するために、コンピュータに、
監視対象コンピュータで一定時間に実行される全ジョブ合計の同時実行数と、各ジョブ種について、ジョブ種単独の同時実行数と該ジョブ種の平均応答時間とを計算し、
前記ジョブ種毎に、該ジョブ種の平均応答時間と全ジョブ合計の同時実行数との第１の対応関係と、該ジョブ種の平均応答時間とジョブ種単独の同時実行数との第２の対応関係とを生成し、
前記ジョブ種毎に、対応する前記第１の対応関係および前記第２の対応関係のうち、該ジョブ種の平均応答時間との相関が高い対応関係を選択し、
予め設定された時間毎に前記監視対象コンピュータで実行される各ジョブの応答時間を取得し、
前記各ジョブの応答時間を、該ジョブのジョブ種に対応して選択された対応関係を用いて決定した閾値をもとにアラート対象とするかを判断する、処理を実行させるための
応答時間監視プログラム。
【請求項２】
監視対象コンピュータの応答時間を監視するために、コンピュータが、
監視対象コンピュータで一定時間に実行される全ジョブ合計の同時実行数と、各ジョブ種について、ジョブ種単独の同時実行数と該ジョブ種の平均応答時間とを計算し、
前記ジョブ種毎に、該ジョブ種の平均応答時間と全ジョブ合計の同時実行数との第１の対応関係と、該ジョブ種の平均応答時間とジョブ種単独の同時実行数との第２の対応関係とを生成し、
前記ジョブ種毎に、対応する前記第１の対応関係および前記第２の対応関係のうち、該ジョブ種の平均応答時間との相関が高い対応関係を選択し、
予め設定された時間毎に前記監視対象コンピュータで実行される各ジョブの応答時間を取得し、
前記各ジョブの応答時間を、該ジョブのジョブ種に対応して選択された対応関係を用いて決定した閾値をもとにアラート対象とするかを判断する、処理を実行する
応答時間監視方法。
【請求項３】
監視対象コンピュータで一定時間に実行される全ジョブ合計の同時実行数と、各ジョブ種について、ジョブ種単独の同時実行数と該ジョブ種の平均応答時間とを計算し、前記ジョブ種毎に、該ジョブ種の平均応答時間と全ジョブ合計の同時実行数との第１の対応関係と、該ジョブ種の平均応答時間とジョブ種単独の同時実行数との第２の対応関係とを生成し、前記ジョブ種毎に、対応する前記第１の対応関係および前記第２の対応関係のうち、該ジョブ種の平均応答時間との相関が高い対応関係を選択する学習部と、
予め設定された時間毎に前記監視対象コンピュータで実行される各ジョブの応答時間を取得し、前記各ジョブの応答時間を、該ジョブのジョブ種に対応して選択された対応関係を用いて決定した閾値をもとにアラート対象とするかを判断する診断部とを備える
応答時間監視装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータの応答時間監視処理に関する。
【背景技術】
【０００２】
監視対象であるコンピュータの応答時間を監視し、正常と許容できる範囲（正常範囲）を超えた応答時間となった場合にアラートを発するが、正常範囲の閾値（上限値、下限値）を適切に設定することは難しい。
【０００３】
正常範囲の閾値が低過ぎる場合は、アラートが多発して管理者がアラートに慣れてしまい注意を払わなくなるおそれがある。また、閾値が高過ぎる場合は、問題が生じていてもアラートが発せられない状態となり、管理者が問題に対処するのが遅れてしまうおそれがある。
【０００４】
さらに、コンピュータの短期的な負荷集中によって自然に応答時間が増加したような場合は、管理者が対処を要する問題が発生していないので、アラートを抑制することが望ましい。
【０００５】
例えば、電子メール管理サーバ（コンピュータ）の応答時間が特定の時間帯に増加する場合、人事管理システムや給与管理システムのコンピュータの応答時間が特定の期間に増加する場合など、一時的な処理集中による応答時間の増加に基づくアラートが発せられると、管理者はアラートの原因の調査と、対応策が要求されるため、管理業務の負担になるだけでなく、不要なアラートに対する慣れによって本来のアラートを見落とす可能性が高くなる等の問題が生じる。
【０００６】
そのため、従来では、管理者は、応答時間の増加によるアラートがあると、監視対象のコンピュータに対するアラートの原因調査と発生している問題への対処が必要であるかの判断を手作業で行っていた。詳しくは、監視対象のコンピュータの応答時間についてアラートが検出されると、管理者が他の様々な性能指標をチェックし、コンピュータに何が起こっているのかを総合的に判断し、問題が生じていると判断した場合に必要な対処を行っていた。
【０００７】
また、従来、複数のランクの警報を発するために、監視対象の装置データ間の関係を示す不変量を抽出して、複数のルールの複数の等価しきい値を不変量のネットワークで計算し、監視対象の装置から警報を受信すると、普段の状態とどの程度異なる状況かによりその警報をランク付ける装置が知られている。
【０００８】
さらに、従来、分散システムの能力計画と資源最適化のために、各装置や資源から収集された測定値間の関係を示す不変式を求め、不変式とユーザ負荷を示すフロー強度とにより分散システムを構成する要素の能力を決定する方法が知られている。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特表２０１１−５２１３８０号公報
【特許文献２】特表２０１０−５０７１４６号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
監視対象のコンピュータに発生した問題による応答時間の増加の場合は、速やかにアラートを発生させる必要があるが、上記のように、コンピュータの短期的な負荷集中によって自然に応答時間が増加した場合にはアラートを抑制することが望ましい。
【００１１】
コンピュータの負荷の集中による応答時間の増加する場合として、一般的に、多数のユーザが同時にアクセスする場合があるが、時間経過により自然解消するためアラートが不要である。また、排他ロックを行う処理が実行されている場合には、アクセスするユーザ数が少なくても応答時間が一時的に増加するが、アラートは不要である。
【００１２】
そのため、短期的な負荷集中による自然な応答時間の増加と問題発生による異常な応答時間の増加とを区別してアラートを発生させられるような正常範囲の設定が必要であるが、従来手法では、２つの応答時間の増加を区別できる正常範囲の設定が難しい。
【００１３】
例えば、複数データ間の相関分析にもとづいて異常を判断する場合には、正常範囲の設定に用いる複数データの相関が不明であり、自然な負荷集中であっても相関が乱れただけで異常と判断されてアラートが多発する可能性がある。
【００１４】
さらに、監視対象に実際に問題が発生することなく、応答時間の正常範囲の閾値を適切に設定する必要がある。
【００１５】
本発明の目的は、監視対象のコンピュータの応答時間について、一時的な負荷集中と問題発生とを区別できるように正常範囲を設定し、異常な応答時間の増加のみにアラートを出力できる応答時間監視技術を提供することである。
【課題を解決するための手段】
【００１６】
本発明の一態様として開示され応答時間監視プログラムは、監視対象コンピュータの応答時間を監視するために、コンピュータに、１）監視対象コンピュータで一定時間に実行される全ジョブ合計の同時実行数と、各ジョブ種について、ジョブ種単独の同時実行数と該ジョブ種の平均応答時間とを計算し、２）前記ジョブ種毎に、該ジョブ種の平均応答時間と全ジョブ合計の同時実行数との第１の対応関係と、該ジョブ種の平均応答時間とジョブ種単独の同時実行数との第２の対応関係とを生成し、３）前記ジョブ種毎に、対応する前記第１の対応関係および前記第２の対応関係のうち、該ジョブ種の平均応答時間との相関が高い対応関係を選択し、４）予め設定された時間毎に前記監視対象コンピュータで実行される各ジョブの応答時間を取得し、５）前記各ジョブの応答時間を、該ジョブのジョブ種に対応して選択された対応関係を用いて決定した閾値をもとにアラート対象とするかを判断する、処理を実行させるためのものである。
【発明の効果】
【００１７】
開示する応答時間監視プログラムによれば、監視対象の応答時間の増加が短期的な負荷集中による自然な応答時間増加であるか、問題の発生による異常な応答時間増加であるかを区別した監視を実現することができる。
【図面の簡単な説明】
【００１８】
【図１】図１は、応答時間監視装置の一実施例におけるハードウェア構成例を示す図である。
【図２】同時実行数と応答時間の関係の直線近似をもとに応答時間の正常範囲を設定する根拠を説明するための図である。
【図３】応答時間監視装置が実施されるシステムの構成例を示す図である。
【図４】応答時間監視装置の一実施例における機能ブロック構成例を示す図である。
【図５】一実施例においてメッセージ記憶部に記憶されているプロトコルメッセージの例を示す図である。
【図６】一実施例におけるＨＴＴＰプロトコルのジョブ種の分類ルールを示す図である。
【図７】一実施例におけるＤＢプロトコルのジョブ種の分類ルールを示す図である。
【図８】一実施例における一定の時間間隔に分割した各細分化区間および各ジョブの応答時間の例を示す図である。
【図９】一実施例における同時実行数と応答時間の計算例を示す図である。
【図１０】一実施例における同時実行数と応答時間の対応関係のプロット例を示す図である。
【図１１】一実施例における直線近似および同時実行数の選択を説明するための図である。
【図１２】一実施例におけるグラフ上での信頼区間による応答時間の正常範囲の設定例を示す図である。
【図１３】一実施例における応答時間モデルの例を示す図である。
【図１４】一実施例における学習処理の処理フロー例を示す図（１）である。
【図１５】一実施例における学習処理の処理フロー例を示す図（２）である。
【図１６】一実施例における応答時間の診断処理の処理フロー例を示す図である。
【図１７】一実施例におけるステップＳ３２の診断処理のより詳細な処理フロー例を示す図である。
【発明を実施するための形態】
【００１９】
以下、本発明の一態様として開示する応答時間監視方法を実行する応答時間監視装置について説明する。
【００２０】
図１は、応答時間監視装置１の一実施例におけるハードウェア構成例を示す図である。
【００２１】
応答時間監視装置１は、ＣＰＵ１０１、短期記憶部（ＤＲＡＭ）１０２、長期記憶部（ＨＤＤ）１０３、ネットワークインタフェース１０４、入力装置（キーボード、マウス等）１０５、出力装置（ディスプレイ、プリンタ等）１０６が内部ネットワーク等で接続されたコンピュータとして実施することができる。
【００２２】
応答時間監視装置１は、監視対象のコンピュータ、コンピュータシステム等の応答時間監視処理に必要な情報をファイルとして長期記憶部１０３に記憶し、入力装置１０５から実行プログラムを起動し、起動された実行プログラムが、短期記憶部１０２にロードされ、ネットワークインタフェース１０４で受信した監視対象がパケットデータをもとに処理を実行する。
【００２３】
応答時間監視装置１は、必要に応じて情報を長期記憶部１０３から短期記憶部１０２に読み出しながら応答時間監視処理を進め、監視対象の応答時間が正常範囲を超えた場合に、ネットワークインタフェース１０４から予め設定された管理者の端末装置へアラート情報を送信する。また、応答時間監視装置１は、アラート情報を出力装置１０６へ出力することもできる。
【００２４】
なお、応答時間監視処理の実行プログラムは、ＣＤ−ＲＯＭ、ＣＤ−ＲＷ、ＤＶＤ−Ｒ、ＤＶＤ−ＲＡＭ、ＤＶＤ−ＲＷ等やフレキシブルディスク等の記録媒体だけでなく、通信回線の先に備えられた他の記憶装置やコンピュータのハードディスク等に記憶されるものであってもよい。
【００２５】
応答時間監視装置１は、監視対象のコンピュータまたはコンピュータシステムの応答時間が正常であると許容できる範囲（正常範囲）を示す閾値（上限値または下限値またはその両方）を監視対象のコンピュータの負荷量に基づいて動的に変更する。
【００２６】
応答時間監視装置１が監視する応答時間は、監視対象のコンピュータまたはコンピュータシステムにリクエストが到達した時点からレスポンスが出力する時点までの経過時間を意味する。
【００２７】
また、監視対象の負荷量として、一定の時間単位毎のジョブの同時実行数を用いる。
【００２８】
コンピュータで同時期に実行されているジョブ数（同時実行数）の増加に応じて応答時間が増加し、ハードウェア資源が飽和すると応答時間はジョブの同時実行数の増加分を超えて増加する。
【００２９】
応答時間監視装置１は、監視対象のコンピュータ上で実行されるジョブ種毎の応答時間と共に、一定時間内に実行されているジョブ種毎（ジョブ種単独）の同時実行数と全てのジョブ（全ジョブ合計）の同時実行数とを計測する。
【００３０】
そして、応答時間監視装置１は、学習フェーズとして、ジョブ種毎に、その応答時間と２つの種類の同時実行数それぞれとの対応関係を求め、全ジョブ合計とジョブ種単独とどちらの種類の同時実行数とより相関するかを評価し、より相関すると評価した同時実行数の種類と応答時間との対応関係の直線近似を求め、近似直線から統計上の信頼区間の上限および下限を応答時間の正常範囲として、その閾値（上限値、下限値）を示す応答時間モデルを求めて保持しておく。
【００３１】
図２は、同時実行数と応答時間の関係の直線近似をもとに応答時間の正常範囲を設定する根拠を説明するための図である。
【００３２】
図２において（ａ）で示す同時実行数の分布は、個々のジョブが消費する資源（ＣＰＵ等）の量のばらつきを示している。例えば、同じジョブ種であっても具体的なジョブ内容によって、処理に必要な資源量は異なる。また、同時実行数の増加に伴う応答時間の増加も理論値からのばらつきが生じる。図２において（ｂ）で示す傾きは、競合している資源が単一であって他の資源の待ち時間が発生しない範囲では、ジョブの応答時間の理論値が同時実行数に比例して増加する傾向を示している。
【００３３】
図２において（ｃ）で示す近似直線からの増分は、資源利用間の依存関係によって発生する他の競合資源の待ち時間を示しており、ジョブの同時実行数が多くなると発生しやすくなる。
【００３４】
図２において（ｄ）で示す部分は、ある資源が完全に飽和した場合には、それ以上の同時実行が処理しきれないことにより、ジョブの同時実行数の増加が待ち時間の増加にそのまま繋がり、生じた待ち時間によって応答時間が等比級数的に増加することを示している。したがって、（ｄ）の部分のように、計測された応答時間が近似直線から信頼区間を超える場合は、資源が完全に飽和しているとみなすことができ、監視対象での問題発生による応答時間の増加として管理者へのアラートが必要となる。応答時間監視装置１は、図２の（ａ）〜（ｃ）に該当する応答時間と（ｄ）の部分に該当する応答時間とを区別して、（ｄ）に該当する応答時間の増加をアラート対象とする。
【００３５】
その後、応答時間監視装置１は、診断フェーズとして、一定時間毎に全ジョブの開始時刻および終了時刻を取得して、ジョブ種毎に、平均応答時間を計算し、学習結果である応答時間モデルで定められた種別の同時実行数と平均応答時間から正常範囲の閾値を決定し、計算した応答時間が閾値を超える場合にそのジョブ種をアラート対象（応答時間が正常範囲を超えたジョブ種）として出力する。
【００３６】
図３は、応答時間監視装置１が実施されるシステムの構成例を示す図である。
【００３７】
応答時間監視装置１の監視対象は、ウェブ（Ｗｅｂ）サーバ２１、データベース（ＤＢ）サーバ２２等を含むコンピュータシステム（以下、監視対象システムと呼ぶ）２である。監視対象システム２のＷｅｂサーバ２１、ＤＢサーバ２２はネットワークスイッチ３に接続する。Ｗｅｂサーバ２１は、さらにプロキシ（ファイアウォール）４を介してインターネット５に接続し、クライアント６のリクエストに対してレスポンスを返してサービスを提供する。
【００３８】
応答時間監視装置１は、監視対象システム２とプロキシ４との間に設けられたネットワークスイッチ３に接続する。また、応答時間監視装置１は、ネットワークスイッチ３に接続する性能監視サーバ７の内部機能として実施されてもよい。
【００３９】
応答時間監視装置１は、ネットワークスイッチ３が持つポートミラーリング機能を用いて、監視対象システム２のＷｅｂサーバ２１−ＤＢサーバ２２間、Ｗｅｂサーバ２１−クライアント６間で送受信されるパケットデータ（ＩＰパケット）を収集する。
【００４０】
図４は、応答時間監視装置１の一実施例における機能ブロック構成例を示す図である。
【００４１】
応答時間監視装置１は、応答時間監視処理を実行するために、パケット収集部１１、プロトコル解析部１２、ジョブ種分類部１３、学習部１４、診断部１５、結果出力部１６を備え、さらに、データ保管場所として、メッセージ記憶部１７、分類済みメッセージ記憶部１８、応答時間モデル記憶部１９を備える。
【００４２】
パケット収集部１１は、監視対象システム２のＷｅｂサーバ２１−ＤＢサーバ２２間、Ｗｅｂサーバ２１−クライアント６間で所定の時間内に送受信されたパケットデータ（ＩＰパケット）のストリームをネットワークスイッチ３から収集し、各パケットデータに取得時刻を付加する。応答時間監視装置１が性能監視サーバ７の内部機能として実施される場合は、パケット収集部１１は、性能監視サーバ７のタイムスタンプ機能によりタイムスタンプ（取得時刻）が付加されたパケットデータを収集する。
【００４３】
プロトコル解析部１２は、パケット収集部１１が収集したパケットデータのプロトコルを解析し、メッセージの種類（リクエスト（request）、レスポンス（response）等）、パケットデータの送信元および送信先のＩＰアドレス、ポート番号、セッション番号、コマンド名、ＣＧＩのパラメータ等を抽出し、抽出した情報と取得時刻とを含むプロトコルメッセージをメッセージ記憶部１７に記憶する。
【００４４】
図５は、メッセージ記憶部１７に記憶されているプロトコルメッセージの例を示す図である。
【００４５】
各プロトコルメッセージは、パケットの取得時刻、セッション番号、送信元および送信先のＩＰアドレスおよびポート番号、コマンド名、メッセージの種類等を含む。例えば、図５に示す番号＝１のプロトコルメッセージは、パケットの取得時刻「2009/09/07 12:12:04.787360」、セッション番号「132290-1」、メッセージの送信元のＩＰアドレス「194.185.39.24」とポート番号「51272」、送信先のＩＰアドレス「194.23．5.226」とポート番号「10443」、プロトコルの種類「Request HTTP」を含む。
【００４６】
ジョブ種分類部１３は、プロトコルメッセージをジョブ毎に分類してリクエストとレスポンスのメッセージを紐付け、ジョブ種分類ルール１３１に基づいてジョブ種に分類したプロトコルメッセージを分類済みメッセージ記憶部１８に記憶する。
【００４７】
図５に示すプロトコルメッセージの例では、番号＝１、２０のリクエストとレスポンスのプロトコルメッセージが同一ジョブとして紐付けられ、番号９、１０のリクエストとレスポンスのプロトコルメッセージが同一ジョブとして紐付けられる。
【００４８】
ジョブ種分類ルール１３１は、プロトコルメッセージに含まれるジョブ内容からジョブ種を特定するための規則を示す情報である。
【００４９】
Ｗｅｂサーバ２１とクライアント６の間ではＨＴＴＰメッセージが送受信されている。ＨＴＴＰメッセージは、「http://www.server.com/job/type.jsp?param1=foo&param2=bar」のような識別子でリクエストされ、Ｗｅｂサーバ２１（www.server.comというサーバ）ではリクエストに対して「/job/type.jsp」のようなアドレス表記で指定されるコンテンツをレスポンスとして返却する。
【００５０】
Ｗｅｂサーバ２１とＤＢサーバ２２の間ではＳＱＬによる問い合わせとその問い合わせ結果が送受信されている。例えば「SELECT 従業員番号 FROM 従業員テーブル WHERE 従業員ID＝00001」という問い合わせに対して、ＤＢサーバ２２は、「従業員テーブル」から「従業員ID＝00001」という条件にあうデータを検索し、問い合わせ結果をＷｅｂサーバ２１に返却する。
【００５１】
ジョブ種分類部１３は、ＨＴＴＰプロトコルのジョブ種では、ジョブ種分類ルール１３１に基づいて、アドレス毎に１種類、またはアドレスと一部のＣＧＩパラメータとの組み合わせ（例えば、/job/type.jsp?param2=ba）からジョブ種を決める。
【００５２】
図６は、ＨＴＴＰプロトコルのジョブ種の分類ルールを示す図である。
【００５３】
ＨＴＴＰプロトコルのジョブ種分類ルール１３１は、コマンド名、アドレス内のローカルアドレスの一部、ＣＧＩパラメータの一部を用いて各ジョブ種を特定することを表している。
【００５４】
また、ジョブ種分類部１３は、ＤＢプロトコルのジョブ種では、ジョブ種分類ルール１３１に基づいてＳＱＬを抽象化したもの、例えば「従業員テーブルにアクセスするSELECT文」のようにしたものを１つのジョブ種として決める。
【００５５】
図７は、ＤＢプロトコルのジョブ種の分類ルールを示す図である。
【００５６】
ＤＢプロトコルメッセージのジョブ種分類ルール１３１は、コマンド名、およびＳＱＬ文の内容を抽象化する変換ルールでジョブ種を特定することを表している。
【００５７】
学習部１４は、分類済みメッセージ記憶部１８に記憶されたジョブ種で分類されたプロトコルメッセージを学習データとして入力し、ジョブ種毎に応答時間の正常範囲を示す閾値を示す応答時間モデル（モデル式）を求める。
【００５８】
診断部１５は、予め設定された一定時間毎に、分類済みメッセージ記憶部１８に記憶されたジョブ種で分類されたプロトコルメッセージのデータストリームを入力し、応答時間モデル記憶部１９に記憶された応答時間モデルを用いて、計測された各ジョブ種の応答時間が正常範囲内であるかを判断する。
【００５９】
結果出力部１６は、診断部１５が、正常範囲を超えた応答時間と判断したジョブ種をアラートとして出力する。
【００６０】
メッセージ記憶部１７は、収集した取得時刻付のプロトコルメッセージを記憶する。
【００６１】
分類済みメッセージ記憶部１８は、ジョブ種で分類された取得時刻付のプロトコルメッセージを記憶する。
【００６２】
応答時間モデル記憶部１９は、学習部１４で得た各ジョブ種の応答時間の正常範囲を示す応答時間モデルを記憶する。
【００６３】
次に、応答時間監視装置１の学習部１４の学習処理（学習フェーズ）をより詳しく説明する。
【００６４】
学習部１４は、分類済みメッセージ記憶部１８に記憶された一定の時間に収集されたプロトコルメッセージを学習データとし、以下の処理を行う。
【００６５】
（１）学習データを予め定めた一定の時間間隔に分割する。さらに、ジョブ毎に紐付けたリクエストのプロトコルメッセージの取得時刻を開始時刻、レスポンスのプロトコルメッセージの取得時刻を終了時刻として各ジョブの応答時間を計算する。
【００６６】
図８は、一定の時間間隔に分割した各細分化区間および各ジョブの応答時間の例を示す図である。
【００６７】
図８において、矩形は１つのジョブを示し、矩形の下の値は当該ジョブの応答時間（ミリ秒［ｍｓ］）、矩形内のＤｎ（ｎは１、２、…）は当該ジョブのジョブ種を表している。
【００６８】
（２）学習データを予め定めた時間間隔に分割し、分割した区間（細分化区間：１００ｍｓ）内で、全ジョブ合計の平均同時実行数、ジョブ種単独の平均同時実行数、各ジョブ種の平均応答時間を、以下の式で計算する。
【００６９】
全ジョブ合計の平均同時実行数＝全ジョブの応答時間の合計／細分化区間
ジョブ種単独の平均同時実行数＝当該ジョブ種の応答時間／細分化区間
各ジョブ種の平均応答時間＝当該ジョブ種の全応答時間／当該ジョブ種の平均同時実行数
なお、２つの細分化区間にまたがるジョブは、応答時間を各細分化区間で案分してそれぞれの応答時間とする。
【００７０】
図９は、同時実行数と応答時間の計算例を示す図である。
【００７１】
学習データの各ジョブの応答時間が図７に示す状態である場合に、それぞれ以下の計算となる。例えば、
全ジョブ合計の平均同時実行数
＝（１２＋１１＋５８＋１１＋１５＋３０＋３８＋９＋７＋１０）／１００
＝２．０１、
ジョブ種Ｄ１のジョブ種単独の平均同時実行数
＝（１１＋１５＋９）／１００＝０．３５、
ジョブ種Ｄ１の各ジョブ種の応答時間
＝（１１＋１５＋９）／３＝１１．７
となる。
【００７２】
ジョブ種Ｄ２の場合は、３番目に実行されたジョブが２つの細分化区間Ｔ１、Ｔ２で案分されるため、
ジョブ種Ｄ２のジョブ種単独の平均同時実行数
＝（３０＋３８＋１０）／１００＝０．７８、
ジョブ種Ｄ２の各ジョブ種の平均応答時間
＝（３０＋３８＋１０）／１＋１＋１０／３４＝３４．０
となる。
【００７３】
（３）上記（２）の計算結果から、細分化区間数分の「全ジョブ合計の平均同時実行数、当該ジョブ種の応答時間」の第１の組データと、「当該ジョブ種のジョブ種単独の同時実行数、当該ジョブ種の平均応答時間」の第２の組データとを生成する。
【００７４】
（４）各ジョブ種について、生成した２種の組データそれぞれに対応するグラフを用意し、各細分化区間での平均同時実行数と当該ジョブ種の平均応答時間との対応関係を各グラフ上にプロットする。
【００７５】
図１０は、同時実行数と応答時間の対応関係のプロット例を示す図である。
【００７６】
図１０の左側に示すグラフは、全ジョブ合計の同時実行数を横軸に応答時間を縦軸とするグラフであり、ジョブ種Ｄ１の第１の組データに基づく各細分区間での平均同時実行数と平均応答時間との対応関係をプロットしたものである。
【００７７】
図１０の右側に示すグラフは、ジョブ種単独の同時実行数を横軸に応答時間を縦軸にとるグラフであり、ジョブ種Ｄ１の第２の組データに基づく各細分化区間での平均同時実行数と平均応答時間との対応関係をプロットしたものである。
【００７８】
図１０に示す２種のグラフが各ジョブ種について生成される。
【００７９】
（５）上記（４）で生成した２つのグラフ上で、それぞれ、例えば最小二乗法で近似直線を得て、プロットされた各対応関係と近似直線との乖離の程度を求めて、直線近似の度合いがより高い方のグラフを選択する。最小二乗法は、残差（実測の応答時間−ｆ（ｘ））の二乗和が最小となるｆ（ｘ）を求める計算方法である。
【００８０】
図１１は、直線近似および同時実行数の選択を説明するための図である。
【００８１】
図１１に示すグラフによって、左側のグラフの方が直線近似の度合いが高いと判断されたとする。この場合に、左側のグラフが対応する第１の組データの同時実行数の種別が選択され、応答時間モデルとして「全ジョブ合計」の同時実行数が選択される。
【００８２】
ジョブが、例えばＣＰＵのように全ジョブ種共通で使用する資源に相関する場合は、左側のグラフ、すなわち全ジョブ合計の平均同時実行数による対応関係の近似の度合いが高くなる。一方、ジョブが、例えば、トランザクションの排他ロックのようにジョブ種固有で使用する資源に相関する場合は、右側のグラフ、すなわちジョブ種単独の同時実行数による対応関係のほうが近似の度合いが高くなる。
【００８３】
（６）各ジョブ種について、選択したグラフにおいて、近似直線（平均値）からの応答時間の標準偏差を計算し、さらに、その信頼区間を計算し、信頼区間の上限および下限を計算して応答時間の正常範囲の上限／下限とする。
【００８４】
図１２は、グラフ上での信頼区間による応答時間の正常範囲の設定例を示す図である。
【００８５】
選択した同時実行数によるグラフをもとに、標準偏差は、直線近似の際に求めた二乗和を、（標本数−１）で割って平方根をとったもので求め、信頼区間（９９．９９％）は、「近似直線（平均値）±信頼水準の定数（３．８９）×標準偏差」で求める。信頼度の定数（３．８９）は、９９．９９％の信頼水準における値であり、標準正規分布表より求めることができる。
【００８６】
応答時間の正常範囲の上限値は「ｆ（ｘ）＋３．８９×標準偏差」で求め、下限値は「ｆ（ｘ）−３．８９×標準偏差」で求める。
【００８７】
（７）各ジョブ種の応答時間の正常範囲の上限／下限を示す応答時間モデルを応答時間モデル記憶部１９に記憶する。
【００８８】
図１３は、応答時間モデルの例を示す図である。
【００８９】
応答時間モデルとして、ジョブ種毎に、同時実行数の種類および応答時間の正常範囲を求める式を記録する。「同時実行数の種類」は、上記（５）で選択された同時実行数の種類（全ジョブ合計、ジョブ種単独）を示す。正常範囲を求める式ｆ（ｘ）のｘは、選択した同時実行数の種類で定義された同時実行数である。ここでは、応答時間の正常範囲を求める式として、正常範囲の上限値を求める式が記録されている。
【００９０】
次に、応答時間監視装置１の診断部１５の診断処理（診断フェーズ）をより詳しく説明する。
【００９１】
診断部１５は、予め設定された一定時間毎に、分類済みメッセージ記憶部１８に記憶された一定の時間に収集されたプロトコルメッセージのデータストリームを入力し、以下の処理を行う。
【００９２】
（１）ジョブ毎に分類したプロトコルメッセージから紐付けたリクエストのプロトコルメッセージの受信時刻を開始時刻、レスポンスのプロトコルメッセージの受信時刻を終了時刻として各ジョブの応答時間を計算する。
【００９３】
（２）全ジョブ合計の平均同時実行数と、ジョブ種毎に、ジョブ種単独の平均同時実行数および各ジョブ種の平均応答時間とを計算する。
【００９４】
（３）各ジョブ種について、応答時間モデル記憶部１９に記憶された当該ジョブ種の応答時間モデルを参照し、「同時実行数の種類」に設定された種別（全ジョブ合計またはジョブ種単独）の平均同時実行数で「応答時間の正常範囲を求める式」を用いて当該ジョブ種の応答時間の閾値（上限値、下限値）を求める。
【００９５】
（４）各ジョブ種について、計算した平均応答時間が、上記（３）で求めた閾値（上限値）を超えているかを判断する。
【００９６】
（５）計算した平均応答時間が閾値を超えている場合に、そのジョブ種を、正常ではない応答時間（遅すぎる応答時間）を記録したジョブ種として出力する。
【００９７】
上記（１）〜（５）の診断処理が一定時間毎に実行され、この間に遅い応答時間を記録したジョブ種のリストがアラートとして出力される。
【００９８】
図１４および図１５は、一実施例における学習処理の処理フロー例を示す図である。
【００９９】
学習部１４は、分類済みメッセージ記憶部１８から一定時間に収集されたデータを学習データとして入力し、入力データを細分化区間に分割する（ステップＳ１０）。
【０１００】
学習部１４は、細分化区間が残っている限りループ処理を行う（ステップＳ１１、Ｓ１７）。
【０１０１】
学習部１４は、その細分化区間における、全ジョブ合計の平均同時実行数を計算する（ステップＳ１２）。
【０１０２】
さらに、学習部１４は、ジョブ種毎にループ処理を行う（ステップＳ１３、Ｓ１６）。
【０１０３】
学習部１４は、その細分化区間における、選択されたジョブ種単独の平均同時実行数を計算し（ステップＳ１４）、さらに、選択されたジョブ種の平均応答時間を計算する（ステップＳ１５）。
【０１０４】
さらに、学習部１４は、ジョブ種毎にループ処理を行う（ステップＳ１８、Ｓ２４）。
【０１０５】
学習部１４は、全ジョブ合計の同時実行数と選択されたジョブ種の平均応答時間との関係を直線近似し（ステップＳ１９）、選択されたジョブ種単独の同時実行数とそのジョブ種の平均応答時間との関係を直線近似する（ステップＳ２０）。
【０１０６】
そして、学習部１４は、２つの直線近似の内で近似の度合いが高い方で用いた同時実行数の種別（全ジョブ合計、ジョブ種単独）を選択する（ステップＳ２１）。
【０１０７】
さらに、学習部１４は、各細分化区間について、近似直線（平均値）からの応答時間の差を求め、そこから標準偏差を計算し（ステップＳ２２）、統計上の信頼基準を用いて応答時間の信頼区間を計算し、その上限／下限（直線）を求める式を応答時間の正常範囲（上限／下限）を求める式として応答時間モデル記憶部１９に記録し（ステップＳ２３）、全てのジョブ種についてのループ処理終了後に処理を終了する。
【０１０８】
図１６は、一実施例における応答時間の診断処理の処理フロー例を示す図である。
【０１０９】
診断部１５は、停止コマンドを受けるまで無限にループ処理を繰り返す（ステップＳ３０、Ｓ３３）。診断部１５は、分類済みメッセージ記憶部１８から一定時間分の入力データをデータストリームから読み込み（ステップＳ３１）、個々の時間分の診断処理を行い（ステップＳ３２）、停止コマンドにより処理を終了する。
【０１１０】
図１７は、一実施例におけるステップＳ３２の診断処理のより詳細な処理フロー例を示す図である。
【０１１１】
診断部１５は、入力データの区間における、全ジョブ合計の平均同時実行数を計算し（ステップＳ３２０）、ジョブ種毎にループ処理を行う（ステップＳ３２１、Ｓ３２９）。
【０１１２】
診断部１５は、入力データの区分における、選択されたジョブ種の平均応答時間を計算し（ステップＳ３２２）、選択されたジョブ種について、学習部１４で定められた同時実行数の種類が「ジョブ種単独」であるかを判定する（ステップＳ３２３）。同時実行数算出時の種類が「ジョブ種単独」であれば（ステップＳ３２３のＹ）、入力データの区間における、選択されたジョブ種単独の平均同時実行数を計算し（ステップＳ３２４）、同時実行数の種類が「ジョブ種単独」でなければ（ステップＳ３２３のＮ）、入力データの区間における、全ジョブ合計の平均同時実行数を計算し、同時実行数として利用する（ステップＳ３２５）。
【０１１３】
診断部１５は、求めた同時実行数に応じた応答時間の閾値（上限値）を応答時間モデルから算出し（ステップＳ３２６）、選択されたジョブ種の平均応答時間が閾値（上限値）を超えているかを判定する（ステップＳ３２７）。選択されたジョブ種の応答時間が閾値を超えていれば（ステップＳ３２７のＹ）、選択されたジョブ種を応答時間が異常に長いジョブ種として出力する（ステップＳ３２８）、選択されたジョブ種の応答時間が閾値を超えていなければ（ステップＳ３２７のＮ）、全てのジョブ種についてのループ処理終了後に処理を終了する。
【０１１４】
以上説明したように、応答時間監視装置１によれば、学習フェーズにおいて、ジョブ種毎に応答時間が通常取り得る値（正常範囲）を反映した応答時間モデルを得ることによって、診断フェーズにおいて、ジョブ種に応じた応答時間の正常範囲を設定するため、応答時間の自然なばらつきの範囲であればアラートを出力しない。
【０１１５】
したがって、応答時間監視装置１がアラートを出力した場合は、応答時間が同時実行数の増加による自然な増加の範囲ではなく、何らかの問題が発生していることがわかる。
【０１１６】
また、応答時間監視装置１によれば、ジョブ種毎の同時実行数と応答時間の関係を直線近似することにより学習するため、正常な状態（同時実行数が少ない）時の学習データだけを使って応答時間をモデル化することが可能である。
【０１１７】
本発明の一態様として開示した応答時間監視装置１によれば、次のような効果がある。
【０１１８】
・対処が不要な自然な応答時間の増加についてアラートしないため、無駄なアラートを減少させることができる。
【０１１９】
・アラートが本当に問題な状況によるものなのかを診断する手間を省くことができる。例えば、従来行っていたような、普段の応答時間と比較して異常であるかを調査したり、同時実行ジョブ数と突き合わせて、一時的なジョブの混雑なのかを調査したりする必要がなくなる。
【０１２０】
・監視対象で資源が飽和した状況のデータが不要であり、通常負荷の場合のデータで学習し応答時間モデルを生成することができる。
【０１２１】
これらの効果を奏することにより、応答時間監視装置１は、応答時間の監視をより精度良く行うことができ、コンピュータ上で提供されるサービスの性能安定化をはかることができる。
【０１２２】
開示する応答時間監視装置１を構成する要素は、任意の組合せで実現されてもよい。複数の構成要素が１つの部材として実現されてもよく、１つの構成要素が複数の部材から構成されてもよい。また、応答時間監視装置１は、上述した実施形態に限定されず、本発明の要旨を逸脱しない範囲において各種の改良および変更を行ってもよいことは当然である。
【符号の説明】
【０１２３】
１  応答時間監視装置
１１  パケット収集部
１２  プロトコル解析部
１３  ジョブ種分類部
１３１  ジョブ種分類ルール
１４  学習部
１５  診断部
１６  結果出力部
１７  メッセージ記憶部
１８  分類済みメッセージ記憶部
１９  応答時間モデル記憶部
２  監視対象システム
２１  Ｗｅｂサーバ
２２  ＤＢサーバ
３  ネットワークスイッチ
４  プロキシ
５  インターネット
６  クライアント
７  性能監視サーバ
【図１】
2014137635.tif 000003
【図２】
2014137635.tif 000004
【図３】
2014137635.tif 000005
【図４】
2014137635.tif 000006
【図５】
2014137635.tif 000007
【図６】
2014137635.tif 000008
【図７】
2014137635.tif 000009
【図８】
2014137635.tif 000010
【図９】
2014137635.tif 000011
【図１０】
2014137635.tif 000012
【図１１】
2014137635.tif 000013
【図１２】
2014137635.tif 000014
【図１３】
2014137635.tif 000015
【図１４】
2014137635.tif 000016
【図１５】
2014137635.tif 000017
【図１６】
2014137635.tif 000018
【図１７】
2014137635.tif 000019