(57)【要約】【課題】複数の情報処理装置を有する情報処理システムの中から異常の生じた情報処理装置を効率的に検出する。【解決手段】この検出装置は、それぞれの情報処理装置について、当該情報処理装置により提供される複数のサービスについて予め推定されたサービス毎の平均の処理時間を記憶する。そして、所定の期間において取得した通信パケットに基づいて、それぞれの情報処理装置について、サービスが呼び出された呼出回数をサービス毎に算出し、トランザクションを実行している時間の合計であるビジー時間を算出する。そして、それぞれのサービスの呼出回数を示す座標軸とビジー時間を示す座標軸とから構成される多次元空間において、算出された呼出回数およびビジー時間によって示される座標値が、予め推定されたサービス毎の平均の処理時間が示す超平面から所定の基準を超えて乖離していれば、その情報処理装置に異常が発生したと判断する。【選択図】図２
2008027061.tif 000002
【特許請求の範囲】
【請求項１】
複数の情報処理装置を備えた情報処理システムにおいて、異常の生じた情報処理装置を検出する検出装置であって、
それぞれの情報処理装置について、当該情報処理装置により提供される複数のサービスについて予め推定されたサービス毎の平均の処理時間を記憶する記憶部と、
異常を検出する対象となる対象期間において、それぞれの情報処理装置が互いに送受信した複数の通信パケットを取得する取得部と、
取得した前記複数の通信パケットに基づいて、それぞれの情報処理装置について、当該情報処理装置により提供されるサービスが他の情報処理装置から呼び出された呼出回数をサービス毎に算出する回数算出部と、
それぞれの情報処理装置について、サービスの処理であるトランザクションを実行している時間の合計であるビジー時間を算出するビジー時間算出部と、
それぞれの情報処理装置について、それぞれのサービスの呼出回数を示すそれぞれの座標軸とビジー時間を示す座標軸とから構成される多次元空間において、算出された前記呼出回数および算出された前記ビジー時間によって示される座標値が、予め推定された前記サービス毎の平均の処理時間が示す超平面から所定の基準を超えて乖離しているかを判断する乖離判断部と、
座標値が超平面から前記所定の基準を超えて乖離していると判断した情報処理装置を、前記対象期間において異常の生じた情報処理装置であるとして、当該情報処理装置を示す情報を出力する出力部と
を備える検出装置。
【請求項２】
前記取得部は、前記対象期間に先立つ予め定められた試行期間において、それぞれの情報処理装置が互いに送受信した複数の通信パケットを取得し、
前記回数算出部は、前記試行期間を分割した複数の分割期間のそれぞれについて、それぞれの情報処理装置が他の情報処理装置から呼び出されたサービスの呼出回数を、当該分割期間に取得した通信パケットに基づいて、情報処理装置毎かつサービス毎に算出し、
前記ビジー時間算出部は、前記複数の分割期間のそれぞれについて、それぞれの情報処理装置がトランザクションを実行している時間の合計であるビジー時間を、当該分割期間に取得した通信パケットに基づいて算出し、
それぞれの情報処理装置について、それぞれの前記分割期間についての前記ビジー時間と、当該分割期間におけるサービス毎の前記呼出回数に当該サービスを処理するトランザクションの平均の処理時間を乗じた合計との差の大きさを示す指標を最小化する、サービス毎の前記平均の処理時間を算出し、前記記憶部に記憶するサービスデマンド算出部
を更に備える請求項１に記載の検出装置。
【請求項３】
前記サービスデマンド算出部は、それぞれの情報処理装置について、更に、ビジー時間と、サービス毎の平均の処理時間に当該サービスの呼出回数を乗じて各サービスについて合計した値との差分値を、分割期間毎に算出し、それぞれの分割期間における当該差分値の分散値を算出し、
前記記憶部は、それぞれの情報処理装置について、サービス毎の平均の処理時間に加えて、更に、算出された前記分散値を記憶し、
前記乖離判断部は、それぞれの情報処理装置について、ビジー時間と、サービス毎の平均の処理時間に当該サービスの呼出回数を乗じて各サービスについて合計した値との差分値を前記対象期間について算出し、当該差分値が、当該情報処理装置について記憶されている前記分散値よりも所定以上大きいことを条件に、座標値が超平面から所定の基準を超えて乖離していると判断する
請求項２に記載の検出装置。
【請求項４】
前記サービスデマンド算出部は、それぞれの分割期間における前記差の２乗和を最小化する前記平均の処理時間を求める正規方程式を生成し、前記正規方程式を解くことによりサービス毎の前記平均の処理時間を算出する
請求項３に記載の検出装置。
【請求項５】
前記回数算出部は、それぞれの前記分割期間について、当該期間に取得したそれぞれの通信パケットがサービスを呼び出すための通信パケットか否かを、当該通信パケットに含まれる宛先ＵＲＬまたはサービスの識別情報によって判断し、それぞれのサービスを呼び出すための通信パケットの数を当該サービスの前記呼出回数として算出する
請求項３に記載の検出装置。
【請求項６】
前記取得部は、順次経過する複数の前記対象期間のそれぞれについて、それぞれの情報処理装置が互いに送受信した複数の通信パケットを取得し、
当該検出装置は、
対象期間が経過する毎に、既に経過した対象期間において取得した複数の通信パケットに基づいて、それぞれの情報処理装置におけるサービス毎の平均の処理時間を算出し、サービス毎の平均の処理時間の推定値として前記記憶部に記憶するサービスデマンド算出部を更に備え、
前記回数算出部は、今回の対象期間に取得した前記複数の通信パケットに基づいて、呼出回数をサービス毎かつ情報処理装置毎に算出し、
前記ビジー時間算出部は、今回の対象期間に取得した前記複数の通信パケットに基づいて、それぞれの情報処理装置のビジー時間を算出し、
前記出力部は、座標値が超平面から所定の基準を超えて乖離していると判断した情報処理装置を、今回の対象期間において異常の生じた情報処理装置であるとして、当該情報処理装置を示す情報を出力する
請求項１に記載の検出装置。
【請求項７】
前記サービスデマンド算出部によりサービス毎の平均の処理時間が算出される毎に、前回に算出されたサービス毎の平均の処理時間が、今回算出したサービス毎の平均の処理時間と予め定められた基準以上相違するかを、情報処理装置毎に判断する相違判断部を更に備え、
前記出力部は、座標値が超平面から乖離していないと判断した情報処理装置についても、サービス毎の平均の処理時間が基準以上相違したことを条件に、今回の対象期間において異常の生じた情報処理装置であるとして、当該情報処理装置を示す情報を出力する
請求項６に記載の検出装置。
【請求項８】
前記ビジー時間算出部は、それぞれの情報処理装置について、当該情報処理装置により提供される何れかのサービスを呼び出す通信パケットを取得してから、呼び出されたそれぞれのサービスの処理結果が当該情報処理装置から返答される通信パケットを取得するまでの期間を、当該情報処理装置がトランザクションを処理している処理中期間と判断し、当該処理中期間の長さをビジー時間として算出する
請求項１に記載の検出装置。
【請求項９】
前記ビジー時間算出部は、それぞれの情報処理装置について、何れかのサービスが呼び出されてからそれぞれのサービスの処理結果が返答されるまでの期間であっても、処理中のそれぞれのサービスに対応する通信パケットが他の情報処理装置に対し送信されて返答の通信パケットが返信されていない期間は、前記ビジー時間から除外する
請求項８に記載の検出装置。
【請求項１０】
複数の情報処理装置を備えた情報処理システムにおいて、異常の生じた情報処理装置を検出する検出装置として、コンピュータを機能させるプログラムであって、
前記コンピュータを、
それぞれの情報処理装置について、当該情報処理装置により提供される複数のサービスについて予め推定されたサービス毎の平均の処理時間を記憶する記憶部と、
異常を検出する対象となる対象期間において、それぞれの情報処理装置が互いに送受信した複数の通信パケットを取得する取得部と、
取得した前記複数の通信パケットに基づいて、それぞれの情報処理装置について、当該情報処理装置により提供されるサービスが他の情報処理装置から呼び出された呼出回数をサービス毎に算出する回数算出部と、
それぞれの情報処理装置について、サービスの処理であるトランザクションを実行している時間の合計であるビジー時間を算出するビジー時間算出部と、
それぞれの情報処理装置について、それぞれのサービスの呼出回数を示すそれぞれの座標軸とビジー時間を示す座標軸とから構成される多次元空間において、算出された前記呼出回数および算出された前記ビジー時間によって示される座標値が、予め推定された前記サービス毎の平均の処理時間が示す超平面から所定の基準を超えて乖離しているかを判断する乖離判断部と、
座標値が超平面から前記所定の基準を超えて乖離していると判断した情報処理装置を、前記対象期間において異常の生じた情報処理装置であるとして、当該情報処理装置を示す情報を出力する出力部と
して機能させるプログラム。
【請求項１１】
複数の情報処理装置を備えた情報処理システムにおいて、異常の生じた情報処理装置を検出する検出方法であって、
それぞれの情報処理装置について、当該情報処理装置により提供される複数のサービスについて予め推定されたサービス毎の平均の処理時間を記憶するステップと、
異常を検出する対象となる対象期間において、それぞれの情報処理装置が互いに送受信した複数の通信パケットを取得するステップと、
取得した前記複数の通信パケットに基づいて、それぞれの情報処理装置について、当該情報処理装置により提供されるサービスが他の情報処理装置から呼び出された呼出回数をサービス毎に算出するステップと、
それぞれの情報処理装置について、サービスの処理であるトランザクションを実行している時間の合計であるビジー時間を算出するステップと、
それぞれの情報処理装置について、それぞれのサービスの呼出回数を示すそれぞれの座標軸とビジー時間を示す座標軸とから構成される多次元空間において、算出された前記呼出回数および算出された前記ビジー時間によって示される座標値が、予め推定された前記サービス毎の平均の処理時間が示す超平面から所定の基準を超えて乖離しているかを判断するステップと、
座標値が超平面から前記所定の基準を超えて乖離していると判断した情報処理装置を、前記対象期間において異常の生じた情報処理装置であるとして、当該情報処理装置を示す情報を出力するステップと
を備える検出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、異常の生じた情報処理装置を検出する技術に関する。特に、本発明は、情報処理システムに含まれる多数の情報処理装置の中から、異常の生じた情報処理装置を検出する技術に関する。
【背景技術】
【０００２】
近年の情報システムは、数百台程度のコンピュータやネットワーク機器から構成される場合がある。そして、各コンピュータでは、様々なアプリケーションプログラムが動作しており、他のコンピュータ上のアプリケーションプログラムと協調動作している。このように複雑化した情報システムにおいては、様々な原因によって障害が発生し得る。原因は、ハードウェア、ミドルウェア、または、アプリケーションプログラムなど様々なコンポーネントに及ぶ。ハードウェアでは記憶装置の故障やネットワーク機器の故障、ミドルウェアでは構成の誤りやバグ、アプリケーションプログラムではバグやパラメータの異常などである。このような様々な可能性の中から、異常発生の原因箇所を特定するのは困難な場合が多い。
【０００３】
これに対し、従来、性能問題の原因箇所を特定する技術が提案されている（非特許文献１、特許文献１〜２を参照。）。非特許文献１の技術は、知識ベースに基づいてウェブシステム全体に渡る性能問題の原因箇所を自動的に特定する技術である。即ち、この技術によると、症状を示す情報を入力すると、所定の推論規則により、原因箇所の推定結果が出力される。多数の事例によって推論規則を強化することができる場合には有効に動作することが期待される。特許文献１の技術は、アプリケーションプログラムの中で最もＣＰＵ資源を消費しているメソッド（Ｊａｖａ言語（登録商標）などにおける処理の記述単位・実行単位）を特定する技術である。また、特許文献２の技術は、ネットワーク機器においてボトルネックとなっている資源を検出する技術である。また、他の技術として、オペレーティングシステムに付属の動作監視用のアプリケーションプログラムなども、従来の障害検知には利用されている。
【０００４】
【特許文献１】特開２００３−１４０９２８号公報
【特許文献２】特開２００５−２７８０７９号公報
【非特許文献１】清水 淳也ら, "有効グラフの昇順探索に基づくWebシステムのボトルネック検出法−パフォーマンス統合分析ツールとしての実装−"ProVISION, 44, 2005
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、非特許文献１の技術は、情報システムの障害検出のような複雑な問題に対しては有効でない場合が多い。即ち、障害原因はハードウェア、ミドルウェア、または、アプリケーションプログラムなど多岐に渡り、それら全てについて有効な推論規則を作成するのは困難である。また、特定の分野について作られた推論規則を他の分野に応用することも困難である。また、症状から原因箇所を推定する一般的な推論規則はそもそも存在しない場合があり、多数の事例を用いても有効な推論規則が導き出せない場合がある。
【０００６】
一方、特許文献１および特許文献２の技術では、性能のボトルネックとなり得るメソッドやコンポーネントを見つけることができる場合がある。しかしながら、ＣＰＵ資源を消費しているメソッドは、一方では、ＣＰＵ資源を最大限有効に使用している場合もあり、一概に性能のボトルネックになっているとはいえない。さらに、この技術では、アプリケーションプログラムのバグ以外の障害原因を有効に検出することはできない。また、オペレーティングシステム付属の動作監視用のアプリケーションプログラムは、単体の情報処理装置に生じた障害を検出し得るものの、多数の情報処理装置の中から障害の生じた情報処理装置を検出する用途には適していない。さらに、動作監視用のアプリケーションプログラムの実行自体や、それらから監視結果を収集する処理が情報システムの処理負荷を増加させ、通常の運用の妨げとなり現実的ではない。
【０００７】
そこで本発明は、上記の課題を解決することのできる検出装置、プログラムおよび検出方法を提供することを目的とする。この目的は特許請求の範囲における独立項に記載の特徴の組み合わせにより達成される。また従属項は本発明の更なる有利な具体例を規定する。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、本発明においては、複数の情報処理装置を備えた情報処理システムにおいて、異常の生じた情報処理装置を検出する検出装置であって、それぞれの情報処理装置について、当該情報処理装置により提供される複数のサービスについて予め推定されたサービス毎の平均の処理時間を記憶する記憶部と、異常を検出する対象となる対象期間において、それぞれの情報処理装置が互いに送受信した複数の通信パケットを取得する取得部と、取得した複数の通信パケットに基づいて、それぞれの情報処理装置について、当該情報処理装置により提供されるサービスが他の情報処理装置から呼び出された呼出回数をサービス毎に算出する回数算出部と、それぞれの情報処理装置について、サービスの処理であるトランザクションを実行している時間の合計であるビジー時間を算出するビジー時間算出部と、それぞれの情報処理装置について、それぞれのサービスの呼出回数を示すそれぞれの座標軸とビジー時間を示す座標軸とから構成される多次元空間において、算出された呼出回数および算出されたビジー時間によって示される座標値が、予め推定されたサービス毎の平均の処理時間が示す超平面から所定の基準を超えて乖離しているかを判断する乖離判断部と、座標値が超平面から所定の基準を超えて乖離していると判断した情報処理装置を、対象期間において異常の生じた情報処理装置であるとして、当該情報処理装置を示す情報を出力する出力部とを備える検出装置を提供する。また、当該検出装置としてコンピュータを機能させるプログラム、および、当該検出装置を用いて異常を検出する検出方法を提供する。
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではなく、これらの特徴群のサブコンビネーションもまた、発明となりうる。
【発明の効果】
【０００９】
本発明によれば、情報処理システムに生じた異常の原因箇所を効率的に検出することができる。
【発明を実施するための最良の形態】
【００１０】
以下、発明を実施するための最良の形態（以下、実施形態と称す）を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではなく、また実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【００１１】
図１は、情報処理システム１０の構成と情報処理システム１０および検出装置２０の接続関係とを示す。情報処理システム１０は、複数の情報処理装置１００とルータ１１０とを有する。複数の情報処理装置１００の各々は互いにサービスを提供する。例えば、ウェブサーバである情報処理装置１００は、外部ネットワークからルータ１１０を介してウェブページのリクエストを受けると、ウェブページの内容を作成するために必要な処理を、アプリケーションサーバである他の情報処理装置１００に要求する。アプリケーションサーバである情報処理装置１００は、アプリケーションの実行に必要なデータを、データベースサーバである他の情報処理装置１００に要求する。アプリケーションサーバである情報処理装置１００は、データベースサーバである情報処理装置１００からデータの供給を受けると、そのデータを用いてプログラムの実行を完了し、ウェブサーバである情報処理装置１００にその実行結果を返答する。ウェブサーバである情報処理装置１００は、その実行結果に基づきウェブページを生成し、外部ネットワーク上の端末装置に返信する。このように、情報処理システム１０は、複数の情報処理装置１００が協調動作することにより、１つのウェブシステムとして機能する。
【００１２】
本実施形態に係る検出装置２０は、情報処理システム１０に含まれる複数の情報処理装置１００の中から、異常の生じた情報処理装置１００を検出することを目的とする。これにより、情報処理システム１０の内部構成が複雑で異常の発生原因の追究が困難な場合であっても、異常の発生箇所を知らせることができ、問題解決を迅速化できる。
【００１３】
図２は、検出装置２０の機能構成を示す。検出装置２０は、取得部２００と、解析部２１０と、サービスデマンド算出部２２０と、記憶部２３０と、乖離判断部２４０と、出力部２５０と、相違判断部２６０とを有する。本図を参照して、検出装置２０により情報処理システム１０に生じた異常を検出する２つの処理例を説明する。
【００１４】
（第１の処理例）
取得部２００は、異常を検出する対象となる対象期間に先立つ予め定められた試行期間において、それぞれの情報処理装置１００が互いに送受信した複数の通信パケットを取得する。一例として、取得部２００は、情報処理システム１０内の通信回線によって転送される通信パケットの複写データを、その通信回線に接続された通信装置、例えばネットワークスイッチなどから取得し、UNIX(登録商標)系オペレーティングシステムのtcpdumpコマンドなどを実行することによって、その複写データのダンプデータを生成してもよい。なお、この試行期間は、情報処理システム１０に何ら異常が生じていない期間であることが望ましい。
【００１５】
解析部２１０は、正常時におけるサービス毎の平均の処理時間を算出するべく、通信パケットの内容を解析する。具体的には、解析部２１０は、回数算出部２１５と、ビジー時間算出部２１８とを有する。回数算出部２１５は、試行期間を分割した複数の分割期間のそれぞれについて、それぞれの情報処理装置１００が他の情報処理装置１００から呼び出されたサービスの呼出回数を、当該分割期間に取得した通信パケットに基づいて、情報処理装置１００毎かつサービス毎に算出する。例えば、回数算出部２１５は、当該分割期間に取得したそれぞれの通信パケットがサービスを呼び出すための通信パケットか否かを、当該通信パケットに含まれる宛先ＵＲＬまたはサービスの識別情報によって判断し、それぞれのサービスを呼び出すための通信パケットの数を当該サービスの呼出回数として算出する。
【００１６】
また、ビジー時間算出部２１８は、複数の分割期間のそれぞれについて、それぞれの情報処理装置１００がトランザクションを実行している時間の合計であるビジー時間を、当該分割期間に取得した通信パケットに基づいて算出する。具体的には、ビジー時間算出部２１８は、それぞれの情報処理装置１００について、当該情報処理装置１００により提供される何れかのサービスを呼び出す通信パケットを取得してから、呼び出されたそれぞれのサービスの処理結果が当該情報処理装置から返答される通信パケットを取得するまでの期間を、当該情報処理装置１００がトランザクションを処理している処理中期間と判断し、当該処理中期間の長さをビジー時間として算出する。ビジー時間算出部２１８は、ビジー時間をより正確に算出するために、所定の処理待ち時間を当該処理中期間から除外してもよい。詳しくは後述する。
【００１７】
サービスデマンド算出部２２０は、それぞれの情報処理装置１００について、それぞれの分割期間についてのビジー時間と、当該分割期間におけるサービス毎の呼出回数に当該サービスを処理するトランザクションの平均の処理時間を乗じた合計との差の大きさを示す指標を最小化する、サービス毎の平均の処理時間を算出する。具体的には、この指標は、それぞれの分割期間における当該差の大きさの２乗和であってもよい。即ち、サービスデマンド算出部２２０は、それぞれの分割期間における当該差の大きさの２乗和を最小化する、サービス毎の平均の処理時間を求める正規方程式を生成し、その正規方程式を解くことにより、サービス毎の平均の処理時間を算出する。
【００１８】
さらに、サービスデマンド算出部２２０は、それぞれの情報処理装置１００について、ビジー時間と、サービス毎の平均の処理時間の当該サービスの呼出回数を乗じて各サービスについて合計した値との差分値を、分割期間毎に算出し、それぞれの分割期間における当該差分値の分散値を算出してもよい。記憶部２３０は、それぞれの情報処理装置１００について、算出されたサービス毎の平均の処理時間を、予め推定したサービス毎の平均の処理時間として記憶し、また、これに加えて、算出された当該分散値を記憶する。
【００１９】
試行期間の経過後、異常を検出する対象となる対象期間において、取得部２００は、それぞれの情報処理装置１００が互いに送受信した複数の通信パケットを取得する。回数算出部２１５は、取得した当該複数の通信パケットに基づいて、それぞれの情報処理装置１００について、当該情報処理装置１００により提供されるサービスが他の情報処理装置１００から呼び出された呼出回数をサービス毎に算出する。ビジー時間算出部２１８は、それぞれの情報処理装置１００について、サービスの処理であるトランザクションを実行している時間の合計であるビジー時間を算出する。それぞれの処理の具体例は、分割期間の場合と同様である。
【００２０】
乖離判断部２４０は、それぞれの情報処理装置１００について、それぞれのサービスの呼出回数を示すそれぞれの座標軸とビジー時間を示す座標軸とから構成される多次元空間において、対象期間において算出された呼出回数およびビジー時間によって示される座標値が、試行期間において予め推定されたサービス毎の平均の処理時間が示す超平面から所定の基準を超えて乖離しているかを判断する。そして、出力部２５０は、座標値が当該超平面から所定の基準を超えて乖離していると判断した情報処理装置を、対象期間において異常の生じた情報処理装置であるとして、当該情報処理装置を示す情報を外部に出力する。これにより、利用者は、正常時よりも特に時間がかかっているサービスを提供している情報処理装置を特定することができる。
【００２１】
（第２の処理例）
この処理例では、試行期間を設けずに異常の検出を開始する。まず、取得部２００は、順次経過する複数の対象期間のそれぞれについて、それぞれの情報処理装置１００が互いに送受信した複数の通信パケットを取得する。回数算出部２１５は、対象期間が経過する毎にその対象期間に取得した通信パケットに基づき、サービスの呼出回数を情報処理装置１００毎かつサービス毎に算出する。また、ビジー時間算出部２１８は、対象期間が経過する毎に、その対象期間に取得した通信パケットに基づき、それぞれの情報処理装置１００のビジー時間を算出する。サービスデマンド算出部２２０は、対象期間が経過する毎に、既に経過した対象期間において取得した複数の通信パケットに基づいて、それぞれの情報処理装置１００におけるサービス毎の平均の処理時間を算出し、サービス毎の平均の処理時間の推定値として記憶部２３０に記憶する。サービス毎の平均の処理時間は、上述の差の２乗和を最小化する処理を応用して、複数の対象期間を複数の分割期間とみなすことによって実現できる。
【００２２】
いま、新たに対象期間が経過すると、回数算出部２１５は、今回の対象期間に取得した複数の通信パケットに基づいて、呼出回数をサービス毎かつ情報処理装置１００毎に算出する。また、ビジー時間算出部２１８は、今回の対象期間に取得した複数の通信パケットに基づいて、それぞれの情報処理装置１００のビジー時間を算出する。そして、乖離判断部２４０は、それぞれの情報処理装置について、それぞれのサービスの呼出回数を示すそれぞれの座標軸とビジー時間を示す座標軸とから構成される多次元空間において、今回の対象期間について算出された呼出回数およびビジー時間によって示される座標値が、記憶部２３０に記憶されたサービス毎の平均に処理時間が示す超平面から所定の基準を超えて乖離しているかを判断する。出力部２５０は、当該座標値が当該超平面から当該所定の基準を超えて乖離していると判断した情報処理装置１００を、今回の対象期間において異常の生じた情報処理装置１００であるとして、当該情報処理装置を示す情報を出力する。
【００２３】
更にこの第２の処理例において、相違判断部２６０は、サービスデマンド算出部２２０によりサービス毎の平均の処理時間が算出される毎に、前回に算出されたサービス毎の平均の処理時間が、今回算出したサービス毎の平均の処理時間と予め定められた基準以上相違するかを、情報処理装置１００毎に判断する。そして、出力部２５０は、乖離判断部２４０によって座標値が超平面から乖離していないと判断した情報処理装置１００についても、サービス毎の平均の処理時間が基準以上相違したことを条件に、今回の対象期間において異常の生じた情報処理装置１００であるとして、当該情報処理装置１００を示す情報を出力する。これは、サービス毎の平均の処理時間が変化し、その推定値がその変化に直ちに追従して算出されたような場合であっても、異常の発生を適切に検出するためである。即ち、サービス毎の平均の処理時間が変化し、その推定値がその変化に直ちに追従する場合には、その推定値によって多次元空間上に描かれる超平面も直ちに変化することとなる。この場合、サービス毎の平均の処理時間が変化して何らかの異常が疑われるのにも拘らず、観測された呼出回数およびビジー時間によって示される座標値は当該超平面から乖離せず、乖離判断部２４０によっては異常が検出されないこととなる。本実施形態では、相違判断部２６０によって、サービス毎の平均の処理時間自体の変化を検出することで、このような異常も適切に検出することができる。
【００２４】
図３は、検出装置２０が異常の原因箇所を検出する処理の一例を示す。図３から図５を参照して、上記第１の処理例の詳細を説明する。まず、検出装置２０は、正常時におけるサービス毎の平均の処理時間の推定値を算出するべく、試行期間において通信パケットを取得してそれを解析する（Ｓ３００）。以降、この処理をトレーニングランと呼ぶ。具体的には回数算出部２１５は、複数の分割期間のそれぞれについて、それぞれの情報処理装置１００が他の情報処理装置１００から呼び出されたサービスの呼出回数を、情報処理装置１００かつサービス毎に算出する。また、ビジー時間算出部２１８は、複数の分割期間のそれぞれについて、それぞれの情報処理装置１００のビジー時間を算出する。それぞれの分割期間をインデックスｊの添え字を付けて期間ｊと呼ぶ。期間ｊは、例えば、以下の式（１）により定義される。但し、１≦ｊ≦ｍである。
【数１】
2008027061.tif 000003
【００２５】
それぞれの情報処理装置１００をインデックスｋにより示し、それぞれのサービスをインデックスｉによって示す。これらの定義に基づき、分割期間ｊにおける情報処理装置ｋのビジー時間をｂｊｋと表記する。また、分割期間ｊにおける情報処理装置ｋにより提供されるサービスｉの呼出回数をａｊｉｋと表記する。また、情報処理装置ｋによって提供されるサービスｉの平均の処理時間をｄｉｋと表記する。これらの間には以下の式（２）の関係が成立する。
【数２】
2008027061.tif 000004
【００２６】
但し、εｊｋは、分割期間ｊにおける情報処理装置ｋについてのビジー時間および呼出回数の観測誤差を示す。サービスデマンド算出部２２０は、それぞれの分割期間ｊにおけるこの観測誤差の２乗和を最小化する、サービス毎の平均の処理時間を情報処理装置毎に算出する。即ち、情報処理装置毎に、未知数をｄｉｋおよびεｊｋとするｍ個の連立１次方程式について、εｊｋの２乗和を最小化するｄｉｋを算出する正規方程式を生成し、その正規方程式を解くことにより、ｄｉｋ即ち、サービス毎の平均の処理時間の推定値を算出する。
【００２７】
さらに、サービスデマンド算出部２２０は、それぞれの情報処理装置１００について、ビジー時間と、サービス毎の平均の処理時間の当該サービスの呼出回数を乗じて各サービスについて合計した値との差分値を、分割期間毎に算出し、それぞれの分割期間における当該差分値の分散値を算出してもよい。この算出処理は、以下の式（３）のように表される。なお、トレーニングランにおいて推定されたサービス毎の平均の処理時間を、ｄｉｋに＾を付して示す。
【数３】
2008027061.tif 000005
【００２８】
次に、取得部２００は、予め定められた対象期間毎に、その期間内に情報処理システム１０内で伝送された通信パケットを取得する（Ｓ３１０）。通信パケットは、情報処理システム１０内に設けられたスイッチングハブのミラーポートなどから取得され、情報処理システム１０内の実際の通信には影響を与えないようにすることが望ましい。続いて、回数算出部２１５は、取得した複数の通信パケットに基づいて、それぞれの情報処理装置１００について、当該情報処理装置１００により提供されるサービスが他の情報処理装置１００から呼び出された呼出回数をサービス毎に算出する（Ｓ３２０）。
【００２９】
次に、ビジー時間算出部２１８は、当該対象期間に取得された通信パケットに基づいて、サービスの処理であるトランザクションを実行している時間の合計であるビジー時間を、情報処理装置１００毎に算出する（Ｓ３３０）。図４にその算出の具体例を示す。
図４ａは、ビジー時間を算出する処理の概念図である。まず、ビジー時間算出部２１８は、通信パケットの送信元と送信先の組毎に、同一方向に連続して送信される複数の通信パケットの中から最後に送信される通信パケットを選択する。これは、サイズの大きいデータが複数の通信パケットに分割して送信される場合に、それらを１回の通信とみなすためである。図４ａでは、選択された通信パケットの通信フローを太線で示す。ビジー時間算出部２１８は、選択したこの通信パケットに基づき、以下のようにビジー時間を判断する。
【００３０】
ある情報処理装置１００（サーバと呼ぶ）において１つのサービスのみが提供されていると仮定した場合、その情報処理装置１００が他の情報処理装置（リクエスターと呼ぶ）からサービスを要求する通信パケットを受けると、ビジー時間算出部２１８は、その通信パケットが伝送された時刻を、ビジー時間の開始時刻と判断する。また、ビジー時間算出部２１８は、サーバが、リクエスターに対しその要求に対応するサービスの処理結果を返送すると、その時刻をビジー時間の終了時刻と判断する。
【００３１】
しかしながら、サーバは、トランザクションの処理中に確認用の通信パケットをリクエスターに返信する場合がある。この場合には、確認用の通信パケットに対する確認の返信が為されるまでの間、サーバはトランザクションを中止している。この中止している時間は、リクエスターである情報処理装置１００において通信パケットの送信待ちが発生していたり、通信経路上で通信遅延が発生しているために発生する時間であり、サーバにおいてサービスの処理をしていないので、ビジー時間に算入すべきではない。即ち、この時間をサーバにおけるビジー時間に算入してしまうと、リクエスター側の情報処理装置１００において異常が発生して処理が遅れている場合であっても、サーバ側の情報処理装置１００においてビジー時間が通常よりも長くなる。即ち、乖離判断部２４０は、リクエスター側の情報処理装置１００に異常が発生しているのにも拘らず、サーバに異常が発生したと判断してしまう場合がある。確認用の通信パケットに限らず、SSLのハンドシェイクなどサーバからリクエスターへパケットが送出されることがある。
【００３２】
このため、ビジー時間算出部２１８は、何れかのサービスが呼び出されてからそれぞれのサービスの処理結果が返答されるまでの期間であっても、処理中のそれぞれのサービスに対応する通信パケットが他の情報処理装置１００（図４ａの場合のリクエスター）に対し送信されて返答の通信パケットが返信されていない期間は、ビジー時間から除外する。図４ｂにおいて、この除外の処理を更に詳しく説明する。
【００３３】
図４ｂは、ビジー時間を算出する処理の具体例を示す。図４ｂの例において、サービスを要求するある情報処理装置１００（リクエスター１と呼ぶ）から、サービスを提供する他の情報処理装置１００（サーバと呼ぶ）に対し、サービスの処理であるトランザクション１が要求される。この時点で、サーバで処理されるトランザクションの個数は１である。続いて、更に他の情報処理装置１００（リクエスター２と呼ぶ）から、サーバに対し、サービスの処理である他のトランザクション２が要求される。この結果、サーバで処理されるトランザクション数は２となる。
【００３４】
トランザクション１の実行中に、サーバは、確認用の通信パケットをリクエスター１に返信する。このとき、サーバで実行中のトランザクション数は２のままであるが、それらのうちトランザクション１は処理待ち状態となる。このような確認用の通信パケットは、例えば通信プロトコルの仕様などに従って送信されるものであり、サービスを提供するアプリケーションプログラムの処理において必要となるものではない。したがって、処理待ち状態を含めたトランザクションの数を、アプリケーションレベルのトランザクション数と呼び、処理待ち状態を除外したトランザクションの数をプロトコルレベルのトランザクション数と呼ぶ。即ち、アプリケーションレベルのトランザクション数は２であり、プロトコルレベルのトランザクション数は１である。
【００３５】
続いて、トランザクション２の実行中に、サーバは、確認用の通信パケットをリクエスター２に返信する。このとき、サーバで実行中のトランザクション数は２のままであるが、それら何れのトランザクションも処理待ち状態となる。したがって、アプリケーションレベルのトランザクション数は２であり、プロトコルレベルのトランザクション数は０である。続いて、リクエスター１から確認用の通信パケットの返信がサーバに対し送信される。この結果、サーバにおいてトランザクション１が再開される。したがって、プロトコルレベルのトランザクション数は１に戻る。さらに、リクエスター２から確認用の通信パケットの返信がサーバに対し送信される。この結果、サーバにおいてトランザクション２が再開される。したがって、プロトコルレベルのトランザクション数は２に戻る。
【００３６】
ビジー時間算出部２１８は、このような通信状態の変化を検出するべく、プロトコルレベルのトランザクション数を格納するためのカウンタを、情報処理装置１００毎に有している。そして、ビジー時間算出部２１８は、それぞれの情報処理装置１００について以下の処理を行う。まず、ビジー時間算出部２１８は、当該情報処理装置１００によって提供される何れかのサービスを呼び出す通信パケットを取得すると、当該情報処理装置１００に対応するカウンタをインクリメントする。また、ビジー時間算出部２１８は、当該情報処理装置１００によって提供される何れかのサービスの処理結果が当該情報処理装置１００から返答される通信パケットを取得すると、そのカウンタをデクリメントする。これにより、アプリケーションレベルのトランザクション数がカウンタ値として管理される。
【００３７】
さらに、ビジー時間算出部２１８は、カウンタ値が１以上の場合において、当該情報処理装置１００から他の情報処理装置１００に対し確認用の通信パケットが送信されると、そのカウンタ値をデクリメントする。また、ビジー時間算出部２１８は、当該情報処理装置１００に対し他の情報処理装置１００から確認用の通信パケットに対する返信が為されると、そのカウンタ値をインクリメントする。これにより、プロトコルレベルのトランザクション数がカウンタ値として管理される。ビジー時間算出部２１８は、カウンタ値が０から１に変化した時刻と、カウンタ値が１から０に変化した時刻との間の期間を、アプリケーションレベルのビジー時間と判断する。そして、ビジー時間算出部２１８は、アプリケーションレベルのビジー時間から、カウンタ値が０となっていた時間を除外する。この結果算出されるビジー時間は、プロトコルレベルのビジー時間となる。
【００３８】
図３に戻る。続いて、乖離判断部２４０は、それぞれの情報処理装置１００について、当該対象期間について算出された呼出回数およびビジー時間が、トレーニングランにおいて観測された呼出回数およびビジー時間に基づくサービス毎の平均の処理時間と対比して乖離するかを判断する（Ｓ３４０）。この処理は、例えば、残差分析等の方法を応用することで実現される。その概念図を図５に示す。
【００３９】
図５は、サービス毎の平均の処理時間が示す超平面の具体例を示す。図５を参照して、ある情報処理装置１００において提供されるサービスがａ１およびａ２のみである場合について説明する。正常時において、サービスａ１における平均の処理時間が１単位時間であり、サービスがａ２における平均の処理時間が２単位時間である場合、この情報処理装置１００におけるビジー時間をｂとすると、以下の式（４）が成り立つ。図５には、サービスａ１およびサービスａ２の呼出回数とビジー時間とをそれぞれ座標軸とした３次元空間を示す。また、トレーニングランにおいて推定されたサービス毎の平均の処理時間によって示される平面、即ち式（４）の平面を示す。平面上やその近傍には、トレーニングランに含まれるそれぞれの分割期間に観測された呼出回数およびビジー時間を示す座標値をプロットしている。
【数４】
2008027061.tif 000006
【００４０】
なお、サービスがａ１からａｎまでのｎ種類存在する場合に一般化すると、呼出回数およびビジー時間の観測値は、以下の式（５）に示す座標値によって表される。そして、これらの座標値は、ｎ＋１次元空間内の、サービス毎の平均の処理時間によって示される超平面の近傍に分布することとなる。
【数５】
2008027061.tif 000007
【００４１】
乖離判断部２４０は、対象期間において新たに算出された呼出回数およびビジー時間によって示される座標値が、この平面から所定の基準を超えて乖離しているかを判断する。例えば、図５上方の５つの座標値は、この平面から当該所定の基準を超えて乖離している。乖離の判断方法の一例として、乖離判断部２４０は、それぞれの情報処理装置１００について、ビジー時間と、サービス毎の平均の処理時間に当該サービスの呼出回数を乗じて各サービスについて合計した値との差分値を、当該対象期間について算出してもよい。算出式は例えば以下の式（６）の通りであり、この差分値のことを以降の説明では残差と呼ぶ。
【数６】
2008027061.tif 000008
【００４２】
図３に戻る。続いて、乖離判断部２４０は、それぞれの情報処理装置１００について、解析部２１０によって算出されたビジー時間および呼出回数によって表される座標値が、予め推定したサービス毎の平均の処理時間によって示される超平面から、予め定められた基準を超えて乖離しているかを判断する（Ｓ３５０）。具体的には、乖離判断部２４０は、式（６）によって算出された残差が、トレーニングランにおいて当該情報処理装置１００について推定され記憶部２３０に記憶されている分散値よりも所定以上大きいかを判断する。例えば、乖離判断部２４０は、当該残差が当該分散値の３倍以上かを判断してもよい（式（７））。そして、乖離判断部２４０は、当該残差が当該分散値よりも所定以上大きいことを条件に、対象期間におけるビジー時間等を示す座標値が、トレーニングランにおいて推定されたサービス毎の平均の処理時間を示す平面から乖離していると判断する。
【数７】
2008027061.tif 000009
【００４３】
これに代えて、乖離判断部２４０は、対象期間において、式（６）に示す残差を複数回計算して、それらの残差が、所定の分布に従うか否かによって、当該座標値が当該平面から乖離しているかを判断してもよい。所定の分布とは、例えば、正規分布であり、式（８）に従う。
【数８】
2008027061.tif 000010
【００４４】
但し、＜＞はアンサンブル平均を示し、δｐｒはクロネッカーのデルタを示し、情報処理装置ｑでの推定誤差の標準偏差を、σｑに＾を付して示す。乖離判断部２４０は、例えば、検定などの統計的手法によって、対象期間において式（６）によって算出された複数の残差が、式（８）に示すrの分布にどの程度従うかを判断してもよい。これにより、新たに算出されたビジー時間等の座標値が、図５に示す超平面を中心としてどの程度分散して存在しているかを知ることができる。なお、乖離判断部２４０による乖離の判断手法はこれらの方法に限られない。例えば、乖離判断部２４０は、トレーニングランにおいて予め推定されたサービス毎の平均の処理時間によって示される超平面から、対象期間において算出したビジー時間および呼出回数によって示される座標値までの距離を算出して、その距離が所定の大きさを超えるかどうかを判断してもよい。このように、乖離の判断手法は、当該超平面から当該座標値までの乖離の程度を判断できる手法であればその詳細は問わない。
【００４５】
続いて、出力部２５０は、それぞれの情報処理装置１００に異常が発生したか否かの判断を行う（Ｓ３５０）。具体的には、出力部２５０は、解析部２１０によって算出されたビジー時間および呼出回数によって表される座標値が、予め推定したサービス毎の平均の処理時間によって示される超平面から、予め定められた基準を超えて乖離していることを条件に（Ｓ３５０：ＹＥＳ）、当該情報処理装置１００を示す情報を出力する（Ｓ３６０）。なお、当該座標値が当該超平面から所定の基準を超えて乖離した回数が１回のみの場合には、出力部２５０は、異常が発生していないと判断してもよい。例えば、出力部２５０は、同一の情報処理装置１００について、座標値が超平面から所定の基準を超えて乖離した回数が、予め定められた基準（例えば３回）に達したことを条件に、当該情報処理装置１００を示す情報を出力してもよい。これにより、観測誤差や通信パケットの欠損などによって偶然に異常なビジー時間が観測された場合を検出の対象から排除して、異常検出の精度を高めることができる。座標値が基準を超えて乖離していなければ（Ｓ３５０：ＮＯ）、検出装置２０は、Ｓ３１０に処理を戻し、以降の対象期間についての判断を行う。
【００４６】
次に、図６から図８を参照して、実際の運用システムを模した情報処理システム１０に対し本実施形態に係る検出装置２０を適用した実験の結果を示す。この実験では、情報処理システム１０は３つの情報処理装置１００を含み、それぞれウェブサーバ、アプリケーションサーバ、および、データベースサーバであるとする。また、それぞれの情報処理装置１００では１ずつのサービスが提供されているものとする。
図６は、サービスの呼出回数とビジー時間との関係を示す。ダイヤの印はウェブサーバのサービスを示し、四角の印はアプリケーションサーバのサービスを示し、三角の印はデータベースサーバのサービスを示す。グラフの上側の横軸はデータベースサーバのサービスの呼出回数を示し、下側の横軸はウェブサーバおよびアプリケーションサーバのサービスの呼出回数を示す。また、右側の縦軸は、データベースサーバのビジー時間（単位はｍｓｅｃ。以下同様）を示し、左側の縦軸は、ウェブサーバおよびアプリケーションサーバのビジー時間を示す。
【００４７】
図６には、情報処理システム１０に対し送信するサービスの要求の集中度を変化させて、観測した呼出回数とビジー時間との関係を示す。集中度を変化させると、呼出回数やビジー時間は変化するものの、呼出回数およびビジー時間の比率はほぼ一定であることが分かる。即ち、サービス毎の平均の処理時間は、サービスの要求の集中度によらず普遍的であることが確かめられる。
【００４８】
図７ａは、サービス毎の平均の処理時間が時間の経過に伴ってどのように変化したかを示す。横軸は経過時間（単位は分）を示し、縦軸は各サービスの平均の処理時間の推定値を示す。実験開始から１６分経過後に、データベースサーバに対し擬似的な異常を発生させると、サービスの平均の処理時間の推定値は徐々に変化していく。このように、推定値が徐々に変化し真の値に直ちに追従しないのは、推定の精度を高めるために充分なトランザクションが短期間では処理されないからである。即ち、サービス毎の平均の処理時間を求めるには、ビジー時間ｂと呼出回数ａｉについての幾つかの組合せを式（２）に代入した連立１次方程式について、その正規方程式を解くことが必要であるが、その解を精度良く求めるためには、各サービスのトランザクションが様々な混合比で処理され、サービス毎の呼出回数ａｉの比率が大きく異なる複数の連立１次方程式が必要となる。このため、短期間のうちにサービスの呼出回数が大きく変化することは稀であり、推定値が真の値に追従するにはある程度の時間を要することとなる。
【００４９】
一方、図７ｂは、サービス毎の平均の処理時間の推定値に対する残差が、時間の経過に伴ってどの様に変化したかを示す。実験開始から１６分経過後に異常が発生すると、データベースサーバのサービスについての残差は急激に変化し、点線で示す所定の値（例えば分散の３倍）を超えることが分かる。
【００５０】
以上、図６を参照すれば、サービス毎の平均の処理時間は、異常が発生しない限り普遍的な値であることが確かめられる。さらに、図７を参照すれば、サービス毎の平均の処理時間の推定値ではなく、残差の変化を検出することによって、異常発生を迅速に検出できることが確かめられる。
【００５１】
図８は、検出装置２０が異常の原因箇所を検出する処理の他の例を示す。図８を参照して、上記第２の処理例における処理の流れを説明する。取得部２００は、順次経過する複数の対象期間のそれぞれについて、それぞれの情報処理装置１００が互いに送受信した複数の通信パケットを取得する（Ｓ８００）。回数算出部２１５は、対象期間が経過する毎にその対象期間に取得した通信パケットに基づき、サービスの呼出回数を情報処理装置１００毎かつサービス毎に算出する（Ｓ８１０）。また、ビジー時間算出部２１８は、対象期間が経過する毎に、その対象期間に取得した通信パケットに基づき、それぞれの情報処理装置１００のビジー時間を算出する（Ｓ８２０）。
【００５２】
次に、乖離判断部２４０は、それぞれの情報処理装置１００について、それぞれのサービスの呼出回数を示すそれぞれの座標軸とビジー時間を示す座標軸とから構成される多次元空間において、今回の対象期間について算出された呼出回数およびビジー時間によって示される座標値が、記憶部２３０に記憶されたサービス毎の平均に処理時間が示す超平面から乖離している程度を示す指標値を算出する（Ｓ８３０）。この指標値は、例えば、上述した残差である。
【００５３】
当該座標値が当該超平面から所定の基準を超えて乖離していることを条件に（Ｓ８４０：ＹＥＳ）、出力部２５０は、当該情報処理装置１００を示す情報を出力する（Ｓ８５０）。一方で、当該座標値が当該超平面から所定の基準を超えて乖離していなければ（Ｓ８４０：ＮＯ）、サービスデマンド算出部２２０は、記憶部２３０に記憶されているサービス毎の平均の処理時間を更新する（Ｓ８６０）。即ち、サービスデマンド算出部２２０は、既に経過した対象期間において取得した複数の通信パケットに基づいて、それぞれの情報処理装置１００におけるサービス毎の平均の処理時間を算出し、サービス毎の平均の処理時間の推定値として記憶部２３０に記憶する。
【００５４】
次に、相違判断部２６０は、前回に算出されたサービス毎の平均の処理時間が、今回算出したサービス毎の平均の処理時間と予め定められた基準以上相違するかを、情報処理装置１００毎に判断する（Ｓ８７０）。サービス毎の平均の処理時間の変化を検出するためには、変化点解析と呼ばれる既存の手法を応用可能である。例えば、相違判断部２６０は、シューハート管理チャート、累積和管理図や幾何移動平均などの手法によって、サービス毎の平均の処理時間の変化を検出してもよい。基準以上相違するならば（Ｓ８７０：ＹＥＳ）、出力部２５０は、当該情報処理装置１００を示す情報を出力する（Ｓ８８０）。一方で、基準以上相違していなければ（Ｓ８７０：ＮＯ）、検出装置２０は、Ｓ８００に処理を戻して以降の対象期間について処理を繰り返す。
【００５５】
図９は、検出装置２０として機能するコンピュータ５００のハードウェア構成の一例を示す。コンピュータ５００は、ホストコントローラ１０８２により相互に接続されるＣＰＵ１０００、ＲＡＭ１０２０、及びグラフィックコントローラ１０７５を有するＣＰＵ周辺部と、入出力コントローラ１０８４によりホストコントローラ１０８２に接続される通信インターフェイス１０３０、ハードディスクドライブ１０４０、及びＣＤ−ＲＯＭドライブ１０６０を有する入出力部と、入出力コントローラ１０８４に接続されるＲＯＭ１０１０、フレキシブルディスクドライブ１０５０、及び入出力チップ１０７０を有するレガシー入出力部とを備える。
【００５６】
ホストコントローラ１０８２は、ＲＡＭ１０２０と、高い転送レートでＲＡＭ１０２０をアクセスするＣＰＵ１０００及びグラフィックコントローラ１０７５とを接続する。ＣＰＵ１０００は、ＲＯＭ１０１０及びＲＡＭ１０２０に格納されたプログラムに基づいて動作し、各部の制御を行う。グラフィックコントローラ１０７５は、ＣＰＵ１０００等がＲＡＭ１０２０内に設けたフレームバッファ上に生成する画像データを取得し、表示装置１０８０上に表示させる。これに代えて、グラフィックコントローラ１０７５は、ＣＰＵ１０００等が生成する画像データを格納するフレームバッファを、内部に含んでもよい。
【００５７】
入出力コントローラ１０８４は、ホストコントローラ１０８２と、比較的高速な入出力装置である通信インターフェイス１０３０、ハードディスクドライブ１０４０、及びＣＤ−ＲＯＭドライブ１０６０を接続する。通信インターフェイス１０３０は、ネットワークを介して外部の装置と通信する。ハードディスクドライブ１０４０は、コンピュータ５００が使用するプログラム及びデータを格納する。ＣＤ−ＲＯＭドライブ１０６０は、ＣＤ−ＲＯＭ１０９５からプログラム又はデータを読み取り、ＲＡＭ１０２０又はハードディスクドライブ１０４０に提供する。
【００５８】
また、入出力コントローラ１０８４には、ＲＯＭ１０１０と、フレキシブルディスクドライブ１０５０や入出力チップ１０７０等の比較的低速な入出力装置とが接続される。ＲＯＭ１０１０は、コンピュータ５００の起動時にＣＰＵ１０００が実行するブートプログラムや、コンピュータ５００のハードウェアに依存するプログラム等を格納する。フレキシブルディスクドライブ１０５０は、フレキシブルディスク１０９０からプログラム又はデータを読み取り、入出力チップ１０７０を介してＲＡＭ１０２０またはハードディスクドライブ１０４０に提供する。入出力チップ１０７０は、フレキシブルディスク１０９０や、例えばパラレルポート、シリアルポート、キーボードポート、マウスポート等を介して各種の入出力装置を接続する。
【００５９】
コンピュータ５００に提供されるプログラムは、フレキシブルディスク１０９０、ＣＤ−ＲＯＭ１０９５、又はＩＣカード等の記録媒体に格納されて利用者によって提供される。プログラムは、入出力チップ１０７０及び/又は入出力コントローラ１０８４を介して、記録媒体から読み出されコンピュータ５００にインストールされて実行される。プログラムがコンピュータ５００等に働きかけて行わせる動作は、図１から図８において説明した検出装置２０における動作と同一であるから、説明を省略する。
【００６０】
以上に示したプログラムは、外部の記憶媒体に格納されてもよい。記憶媒体としては、フレキシブルディスク１０９０、ＣＤ−ＲＯＭ１０９５の他に、ＤＶＤやＰＤ等の光学記録媒体、ＭＤ等の光磁気記録媒体、テープ媒体、ＩＣカード等の半導体メモリ等を用いることができる。また、専用通信ネットワークやインターネットに接続されたサーバシステムに設けたハードディスク又はＲＡＭ等の記憶装置を記録媒体として使用し、ネットワークを介してプログラムをコンピュータ５００に提供してもよい。
【００６１】
以上、本実施形態に係る検出装置２０によれば、多数の情報処理装置１００が協調動作する複雑な情報処理システム１０についても、トランザクションの集中度や混合比によらず普遍的なサービス毎の平均の処理時間を観測することで、異常の発生箇所を迅速かつ精度良く検出して、障害対応を支援することができる。また、予めトレーニングランを行って正常時のデータを収集しておくことで、異常の検出動作中には残差の算出というわずかな計算により異常を検出でき、オンライン動作によって異常を迅速に検出できる。更に、トレーニングランを行わない場合であっても、残差と処理時間との双方を適宜監視することで、様々な性質の異常を適切に検出できる。また、ビジー時間の算出処理には、トランザクションの開始および終了のみならず、通信プロトコルの仕様に応じて発生する待ち時間を考慮することで、異常検出の精度を一層高めることができる。
【００６２】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【図面の簡単な説明】
【００６３】
【図１】図１は、情報処理システム１０の構成と情報処理システム１０および検出装置２０の接続関係とを示す。
【図２】図２は、検出装置２０の機能構成を示す。
【図３】図３は、検出装置２０が異常の原因箇所を検出する処理の一例を示す。
【図４ａ】図４ａは、ビジー時間を算出する処理の概念図である。
【図４ｂ】図４ｂは、ビジー時間を算出する処理の具体例を示す。
【図５】図５は、サービス毎の平均の処理時間が示す超平面の具体例を示す。
【図６】図６は、サービスの呼出回数とビジー時間との関係を示す。
【図７ａ】図７ａは、サービス毎の平均の処理時間が時間の経過に伴ってどのように変化したかを示す。
【図７ｂ】図７ｂは、サービス毎の平均の処理時間の推定値に対する残差が、時間の経過に伴ってどの様に変化したかを示す。
【図８】図８は、検出装置２０が異常の原因箇所を検出する処理の他の例を示す。
【図９】図９は、検出装置２０として機能するコンピュータ５００のハードウェア構成の一例を示す。
【符号の説明】
【００６４】
１０  情報処理システム
２０  検出装置
１００  情報処理装置
１１０  ルータ
２００  取得部
２１０  解析部
２１５  回数算出部
２１８  ビジー時間算出部
２２０  サービスデマンド算出部
２３０  記憶部
２４０  乖離判断部
２５０  出力部
２６０  相違判断部
５００  コンピュータ
【図１】
2008027061.tif 000011
【図２】
2008027061.tif 000012
【図３】
2008027061.tif 000013
【図４ａ】
2008027061.tif 000014
【図４ｂ】
2008027061.tif 000015
【図５】
2008027061.tif 000016
【図６】
2008027061.tif 000017
【図７ａ】
2008027061.tif 000018
【図７ｂ】
2008027061.tif 000019
【図８】
2008027061.tif 000020
【図９】
2008027061.tif 000021