(57)【要約】  資源利用状況取得ステップにより取得された資源利用状況とリクエスト発生頻度取得ステップにより取得されたリクエストの発生頻度に関する情報と、性能異常有無判断ステップにより判断された性能異常の有無に関する情報とに基づき、性能異常の発生割合が高くなる場合の条件を判断するに際し、決定木の手法を用いて、決定木のある状況を表す親ノードを２つの子ノードに分岐する際に、親ノードに属する正常サンプルの大部分が一方の子ノードに所属し、親ノードに属する異常値の大部分が他方の子ノードに属するように分岐を行うような評価関数を用いて決定木を生成するようにした。
2007052327.tif 000002
【特許請求の範囲】
【請求項１】
複数のコンピュータからなるシステムの性能異常の分析をコンピュータに実行させる性能異常分析プログラムであって、
システムの資源利用状況を取得する資源利用状況取得ステップと、
システムに送信されるリクエストの発生頻度を取得するリクエスト発生頻度取得ステップと、
システムに送信されるリクエストをシステムが処理するのに要した時間を取得する処理時間取得ステップと、
性能異常の有無を判断する性能異常有無判断ステップと、
前記資源利用状況取得ステップにより取得された資源利用状況とリクエスト発生頻度取得ステップにより取得されたリクエストの発生頻度に関する情報と、前記性能異常有無判断ステップにより判断された性能異常の有無に関する情報とに基づき、性能異常の発生割合が高くなる場合の条件を分析する条件分析ステップであって、決定木の手法を用いて、決定木のある状況を表す親ノードを２つの子ノードに分岐する際に、親ノードに属する正常サンプルの大部分が一方の子ノードに所属し、親ノードに属する異常値の大部分が他方の子ノードに属するように分岐を行うような評価関数を用いて前記決定木を生成し、性能異常の割合が高い場合の条件を判断する前記条件分析ステップと
を備えてコンピュータに実行させる性能異常分析プログラム。
【請求項２】
請求項１に記載の性能異常分析プログラムにおいて、
前記条件分析ステップは、前記評価関数として、親ノードに属する正常サンプルの数Ｎ0及び異常サンプルの数Ａ0と、
一方の子ノードに属する異常サンプルの数Ａ1及び他方の子ノードに属する正常サンプルの数Ｎ2の組、又は一方の子ノードに属する正常サンプルの数Ｎ1及び他方の子ノードに属する異常サンプルの数Ａ2の組とのいずれかの組におけるそれぞれのサンプルの数と
を用いた評価関数を用いることを特徴とする性能異常分析プログラム。
【請求項３】
請求項２に記載の性能異常分析プログラムにおいて、
前記条件分析ステップは、前記評価関数として、Ａ1/Ａ0とＮ2/Ｎ0との積を用いることを特徴とする性能異常分析プログラム。
【請求項４】
請求項１に記載の性能異常分析プログラムにおいて、
前記条件分析ステップは、決定木を生成する際に、使用するパラメータの集合を探索的に変化させながら、複数の決定木を生成し、その中から所定の一つの決定木を選択することで、性能異常の発生割合が高い場合の条件を判断する性能異常分析プログラム。
【請求項５】
請求項１に記載の性能異常分析プログラムにおいて、
性能異常の発生割合が高くなる場合の条件を、パラメータとその閾値の集合で表し、性能異常の発生頻度又は発生割合と、それらの性能異常が発生したときの条件を、表形式又はベン図形式で出力する分析結果出力ステップを備えることを特徴とする性能異常分析プログラム。
【請求項６】
複数のコンピュータからなるシステムの性能異常の分析を行う性能異常分析方法であって、
システムの資源利用状況を取得する資源利用状況取得ステップと、
システムに送信されるリクエストの発生頻度を取得するリクエスト発生頻度取得ステップと、
システムに送信されるリクエストをシステムが処理するのに要した時間を取得する処理時間取得ステップと、
性能異常の有無を判断する性能異常有無判断ステップと、
前記資源利用状況取得ステップにより取得された資源利用状況とリクエスト発生頻度取得ステップにより取得されたリクエストの発生頻度に関する情報と、前記性能異常有無判断ステップにより判断された性能異常の有無に関する情報とに基づき、性能異常の発生割合が高くなる場合の条件を分析する条件分析ステップであって、決定木の手法を用いて、決定木のある状況を表す親ノードを２つの子ノードに分岐する際に、親ノードに属する正常サンプルの大部分が一方の子ノードに所属し、親ノードに属する異常値の大部分が他方の子ノードに属するように分岐を行うような評価関数を用いて前記決定木を生成し、性能異常の割合が高い場合の条件を判断する前記条件分析ステップと
を備える性能異常分析方法。
【請求項７】
請求項６に記載の性能異常分析方法において、
前記条件分析ステップは、前記評価関数として、親ノードに属する正常サンプルの数Ｎ0及び異常サンプルの数Ａ0と、
一方の子ノードに属する異常サンプルの数Ａ1及び他方の子ノードに属する正常サンプルの数Ｎ2の組、又は一方の子ノードに属する正常サンプルの数Ｎ1及び他方の子ノードに属する異常サンプルの数Ａ2の組とのいずれかの組におけるそれぞれのサンプルの数と
を用いた評価関数を用いることを特徴とする性能異常分析方法。
【請求項８】
請求項７に記載の性能異常分析方法において、
前記条件分析ステップは、前記評価関数として、Ａ1/Ａ0とＮ2/Ｎ0の積を用いることを特徴とする性能異常分析方法。
【請求項９】
請求項６に記載の性能異常分析方法において、
前記条件分析ステップは、決定木を生成する際に、使用するパラメータの集合を探索的に変化させながら、複数の決定木を生成し、その中から所定の一つの決定木を選択することで、性能異常の発生割合が高い場合の条件を判断する性能異常分析方法。
【請求項１０】
請求項６に記載の性能異常分析方法において、
性能異常の発生割合が高くなる場合の条件を、パラメータとその閾値の集合で表し、性能異常の発生頻度又は発生割合と、それらの性能異常が発生したときの条件を、表形式又はベン図形式で出力する分析結果出力ステップを備えることを特徴とする性能異常分析方法。
【請求項１１】
複数のコンピュータからなるシステムの性能異常を分析する性能異常分析装置であって、
システムの資源利用状況を取得する資源利用状況取得部と、
システムに送信されるリクエストの発生頻度を取得するリクエスト発生頻度取得部と、
システムに送信されるリクエストをシステムが処理するのに要した時間を取得する処理時間取得部と、
性能異常の有無を判断する性能異常有無判断部と、
前記資源利用状況取得部により取得された資源利用状況とリクエスト発生頻度取得部により取得されたリクエストの発生頻度に関する情報と、前記性能異常有無判断部により判断された性能異常の有無に関する情報とに基づき、性能異常の発生割合が高くなる場合の条件を分析する条件分析部であって、決定木の手法を用いて、決定木のある状況を表す親ノードを２つの子ノードに分岐する際に、親ノードに属する正常サンプルの大部分が一方の子ノードに所属し、親ノードに属する異常値の大部分が他方の子ノードに属するように分岐を行うような評価関数を用いて前記決定木を生成し、性能異常の割合が高い場合の条件を判断する前記条件分析部と
を備えてなる性能異常分析装置。
【請求項１２】
請求項１１に記載の性能異常分析装置において、
前記条件分析部は、前記評価関数として、親ノードに属する正常サンプルの数Ｎ0及び異常サンプルの数Ａ0と、
一方の子ノードに属する異常サンプルの数Ａ1及び他方の子ノードに属する正常サンプルの数Ｎ2の組、又は一方の子ノードに属する正常サンプルの数Ｎ1及び他方の子ノードに属する異常サンプルの数Ａ2の組とのいずれかの組におけるそれぞれのサンプルの数と
を用いた評価関数を用いることを特徴とする性能異常分析装置。
【請求項１３】
請求項１２に記載の性能異常分析装置において、
前記条件分析部は、前記評価関数として、Ａ1/Ａ0とＮ2/Ｎ0の積を用いることを特徴とする性能異常分析装置。
【請求項１４】
請求項１１に記載の性能異常分析装置において、
前記条件分析部は、決定木を生成する際に、使用するパラメータの集合を探索的に変化させながら、複数の決定木を生成し、その中から所定の一つの決定木を選択することで、性能異常の発生割合が高い場合の条件を判断する分析装置
【請求項１５】
請求項１１の性能異常分析装置において、
性能異常の発生割合が高くなる場合の条件を、パラメータとその閾値の集合で表し、性能異常の発生頻度又は発生割合と、それらの性能異常が発生したときの条件を、表形式又はベン図形式で出力する分析結果出力部を備えることを特徴とする性能異常分析装置。
【請求項１６】
請求項１５に記載の性能異常分析装置において、
前記分析結果出力部は、ベン図の各領域の描画方法を、各領域が表す状況下における性能異常発生頻度又は発生回数に対応させて変化させることで、異なる条件下における性能異常発生頻度の差異を視覚的に表すことを特徴とする性能異常分析装置。
【請求項１７】
請求項１５に記載の性能異常分析装置において、
前記分析結果出力部は、分析の出力結果におけるパラメータ又は閾値を任意に変更する手段と、その変更による結果を図表に反映する手段を備えることを特徴とする性能異常分析装置。
【請求項１８】
性能異常の発生割合が高くなる場合の条件をパラメータとその閾値の集合で表し、性能異常の発生割合と該性能異常が発生するときの条件をベン図形式で表示するようにした性能異常分析装置の分析結果表示方法。
【請求項１９】
請求項８に記載の性能異常分析装置の分析結果表示方法において、
ベン図の各領域の描画方法を、各領域が表す状況下における性能異常発生頻度又は発生回数に対応させて変化させることで、異なる条件下における性能異常発生頻度の差異を視覚的に表すことを特徴とする性能異常分析装置の分析結果表示方法。
【請求項２０】
請求項１８に記載の性能異常分析装置の分析結果表示方法において、
分析の出力結果におけるパラメータ又は閾値を任意に変更することができ、その変更による結果を図表に反映することを特徴とする性能異常分析装置の分析結果表示方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば、複層サーバシステムなどの複雑なネットワークシステムにおいて、性能異常の発生パターンを解析して明確にすることで、性能異常の早期原因特定や早期異常解消を支援する性能異常分析装置、性能異常分析方法及び性能異常分析プログラム、並びに性能異常分析装置の分析結果表示方法に関するものである。
【背景技術】
【０００２】
従来より、システムの性能異常の原因を解析する方法はいくつか研究されてきている。下記非特許文献１は、イベントトレーサという測定手段をリナックス（Linux）のカーネルに埋め込み、資源の利用状況をより直接的に観測し、その挙動の分析を行っている。この方法は、より詳細なデータを直接採取するので、システムのベンチマークテストなどの環境においては、非常に有効である。【０００３】
しかし、運用中のシステムにおいて、カーネルに測定手段を埋め込むのは非常に困難である。また、この手段はオープンソースのＯＳにしか適用できない。【０００４】
また、下記非特許文献２は、システム性能分析の方法として、”automated drill down”を提案している。この手法は、時間→分、サブネット→ホストというように、パラメータを観測する粒度を変化させながら分析を行い、性能異常の割合の大きい粒度を割り出している。【０００５】
しかし、この手法においては、リソース消費量など、連続量で表されるパラメータについては、粒度を設定することのできないパラメータは分析が困難である。よって、分析に用いることのできるパラメータが非常に限られてしまうため、本発明の目的である、多数の数値パラメータの分析には適用することは困難である。【０００６】
決定木を利用した障害分析の方法としては、非特許文献３において、オープンソースのデータマイニングツール（Weka 3: Data Mining Software in Java, http://www.cs.waikato.ac.nz/ml/weka/)を用いて、オークションサイトのeBayで発生した障害を分析している。しかし、この手法における環境においては、分析に用いられるパラメータの種類が6つしかなく、それらはリクエストのタイプやホスト名など、全て離散的な情報であり、数値情報ではなく、それぞれのパラメータが取りうる値の数の上限は非常に限られている。そして、どのシステム内のどの機器が障害の原因となっているかなどについて分析を行うが、その機器がどのような状態(パラメータの値の範囲)になると障害が発生するかということを知ることはできない。【０００７】
さらに、この手法では、「C4.5」（分割統治法に基づくアルゴリズムを有し、各ノードを構築構築するための関数を再帰的に呼び出して木を構築し、木を構築する対象となるデータから、各ノードにおける分割情報を取得して分割対象となる属性を選択する手法）や「MinEntropy」などの既存の手法を用いて決定木を生成している。
【非特許文献１】T.Horikawa, Application of Event Trace Framework for Performance Problem Solutions, IPSJ SIG Technical Report, 2003.
【非特許文献２】D.G.Hart, J.L.Hellerstein, and P.C.Yue, Failure Diagnosis Using Detection Trees Automated Drill Down: An Approach to Automated Problem Isolation for Performance Management, Proc. of the Computer Measurement Group, 1999.
【非特許文献３】M.Chen, A.X.Zheng, J.Lloyd, M.I.Jordan, and E.Brewer, Failure Diagnosis Using Detection Trees, Proc. of International Conference on Autonomic Computing, 2004.
【発明の開示】
【発明が解決しようとする課題】
【０００８】
ところで、近年のネットワークサービスの発展に伴い、そのサービスの品質の高さが問われるようになってきている。例えば、事業者とサービスプロバイダの間でService level agreement (SLA)が締結され、サービス品質の劣化に対して、サービスプロバイダにペナルティが課せられるケースも出てきている。このため、システム管理者はサービス品質を常に監視し、性能異常を減らすよう努める必要がある。【０００９】
しかしながら、近年はWebシステムに代表されるネットワークシステムが大規模／複雑化してきている。従って、上述した従来の技術においては、それらを構成する機器の稼働状況を示す多種多様なパラメータから、システムの挙動を把握し、異常が発生した状況の特徴を分析し、異常の原因を特定するのは困難であるという問題がある。【００１０】
本発明は上述した問題点を解決するためになされたものであり、実運用中のシステムに容易に適用可能になるように、サーバのログや基本コマンドの利用のみで採取可能な多種多様なパラメータを扱うことができ、精度が高く、信頼度の高い性能異常分析装置、方法及びプログラム、並びにその表示方法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上述した課題を解決するため、本発明は、複数のコンピュータからなるシステムの性能異常の分析をコンピュータに実行させる性能異常分析プログラムであって、システムの資源利用状況を取得する資源利用状況取得ステップと、システムに送信されるリクエストの発生頻度を取得するリクエスト発生頻度取得ステップと、システムに送信されるリクエストをシステムが処理するのに要した時間を取得する処理時間取得ステップと、性能異常の有無を判断する性能異常有無判断ステップと、前記資源利用状況取得ステップにより取得された資源利用状況とリクエスト発生頻度取得ステップにより取得されたリクエストの発生頻度に関する情報と、前記性能異常有無判断ステップにより判断された性能異常の有無に関する情報とに基づき、性能異常の発生割合が高くなる場合の条件を分析する条件分析ステップであって、決定木の手法を用いて、決定木のある状況を表す親ノードを２つの子ノードに分岐する際に、親ノードに属する正常サンプルの大部分が一方の子ノードに所属し、親ノードに属する異常値の大部分が他方の子ノードに属するように分岐を行うような評価関数を用いて前記決定木を生成し、性能異常の割合が高い場合の条件を判断する前記条件分析ステップとを備えてコンピュータに実行させるものである。【００１２】
また、本発明の性能異常分析プログラムにおいて、前記条件分析ステップは、前記評価関数として、親ノードに属する正常サンプルの数Ｎ0及び異常サンプルの数Ａ0と、一方の子ノードに属する異常サンプルの数Ａ1及び他方の子ノードに属する正常サンプルの数Ｎ2の組、又は一方の子ノードに属する正常サンプルの数Ｎ1及び他方の子ノードに属する異常サンプルの数Ａ2の組とのいずれかの組におけるそれぞれのサンプルの数と
を用いた評価関数を用いることを特徴とする。【００１３】
また、本発明の性能異常分析プログラムにおいて、前記条件分析ステップは、前記評価関数として、Ａ1/Ａ0とＮ2/Ｎ0の積を用いることを特徴とする。【００１４】
また、本発明の性能異常分析プログラムにおいて、前記条件分析ステップは、決定木を生成する際に、使用するパラメータの集合を探索的に変化させながら、複数の決定木を生成し、その中から所定の一つの決定木を選択することで、性能異常の発生割合が高い場合の条件を判断する。【００１５】
また、本発明の性能異常分析プログラムにおいて、性能異常の発生割合が高くなる場合の条件を、パラメータとその閾値の集合で表し、性能異常の発生頻度又は発生割合と、それらの性能異常が発生したときの条件を、表形式又はベン図形式で出力する分析結果出力ステップを備えることを特徴とする。【００１６】
また、本発明は、複数のコンピュータからなるシステムの性能異常の分析を行う性能異常分析方法であって、システムの資源利用状況を取得する資源利用状況取得ステップと、システムに送信されるリクエストの発生頻度を取得するリクエスト発生頻度取得ステップと、システムに送信されるリクエストをシステムが処理するのに要した時間を取得する処理時間取得ステップと、性能異常の有無を判断する性能異常有無判断ステップと、前記資源利用状況取得ステップにより取得された資源利用状況とリクエスト発生頻度取得ステップにより取得されたリクエストの発生頻度に関する情報と、前記性能異常有無判断ステップにより判断された性能異常の有無に関する情報とに基づき、性能異常の発生割合が高くなる場合の条件を分析する条件分析ステップであって、決定木の手法を用いて、決定木のある状況を表す親ノードを２つの子ノードに分岐する際に、親ノードに属する正常サンプルの大部分が一方の子ノードに所属し、親ノードに属する異常値の大部分が他方の子ノードに属するように分岐を行うような評価関数を用いて前記決定木を生成し、性能異常の割合が高い場合の条件を判断する前記条件分析ステップとを備える。【００１７】
また、本発明は、複数のコンピュータからなるシステムの性能異常を分析する性能異常分析装置であって、システムの資源利用状況を取得する資源利用状況取得部と、システムに送信されるリクエストの発生頻度を取得するリクエスト発生頻度取得部と、システムに送信されるリクエストをシステムが処理するのに要した時間を取得する処理時間取得部と、性能異常の有無を判断する性能異常有無判断部と、前記資源利用状況取得部により取得された資源利用状況とリクエスト発生頻度取得部により取得されたリクエストの発生頻度に関する情報と、前記性能異常有無判断部により判断された性能異常の有無に関する情報とに基づき、性能異常の発生割合が高くなる場合の条件を分析する条件分析部であって、決定木の手法を用いて、決定木のある状況を表す親ノードを２つの子ノードに分岐する際に、親ノードに属する正常サンプルの大部分が一方の子ノードに所属し、親ノードに属する異常値の大部分が他方の子ノードに属するように分岐を行うような評価関数を用いて前記決定木を生成し、性能異常の割合が高い場合の条件を判断する前記条件分析部とを備えてなる。【００１８】
また、本発明に係る性能異常分析装置の分析結果表示方法は、性能異常の発生割合が高くなる場合の条件をパラメータとその閾値の集合で表し、性能異常の発生割合と該性能異常が発生するときの条件をベン図形式で表示するようにした。【００１９】
この性能異常分析装置の分析結果表示方法において、ベン図の各領域の描画方法を、各領域が表す状況下における性能異常発生頻度又は発生回数に対応させて変化させることで、異なる条件下における性能異常発生頻度の差異を視覚的に表すことを特徴とすることができる。【００２０】
また、分析の出力結果におけるパラメータ又は閾値を任意に変更することができ、その変更による結果を図表に反映することを特徴とすることもできる。
【図面の簡単な説明】
【００２１】
【図１】実施の形態１に係るの構成の一例を示すブロック図である。
【図２】構造体形式で記述した分析用データ構造の一例を示す図である。
【図３】決定木によって状況分析を行う方法の一例を示す図である。
【図４】異常サンプルをほとんど含まないような葉を多数生成するような分岐を示す図である。
【図５】条件分析ステップのフローチャートである。
【図６】決定木の一例を示す図である。
【図７】図６に示した決定木を表形式で示した図である。
【図８】図６に示した決定木をベン図形式で表した例を示す図である。
【図９】ベン図インタフェースを示す図である。
【図１０】分析対象システムの概要を示すブロック図である。
【図１１】リソース利用状況に関する情報を示す図である。
【図１２】実験条件下それぞれにおける評価関数(TEF)の値を示す図である。
【図１３】図１２に示した実験条件下で生成された決定木において個々の異常状態の説明に必要なパラメータの平均個数を示す図である。
【図１４】パターン１（ゲイン）とパターン３（本実施の形態）における時間とパラメータ探索のためのループ回数の関係を示す図である。
【図１５】本実施の形態における評価関数(FFS)の値が最大となる場合のベン図形式での出力結果を示す図である。
【発明を実施するための最良の形態】
【００２２】
以下、本発明の実施の形態について図面を参照しつつ説明する。【００２３】
［分析ターゲット］
本実施の形態において、性能異常の分析対象とするシステムは、一例としてWebを基本としたシステムであり、複数のUNIXサーバなどが連携してトランザクション処理を行うようなシステムを対象としている。例えば、e-commerceシステムや、エンタプライズにおける基幹業務システムなどが挙げられる。【００２４】
監視対象となるサービスレベルを示すパラメータは、Webトランザクションのレスポンスタイムとし、管理者が着目するトランザクションのレスポンスが、設定された閾値を越えた場合、性能異常が発生したと判断する。【００２５】
［アプローチ］
分析対象となるシステムを監視し、それらの挙動を示すパラメータを獲得するための手法には様々なものが存在している。例えば、監視のためのコードをＯＳに埋め込んだり、特別な監視用機器をネットワークに挿入したりする方法がある。しかし、それらの方法は、実際に稼働中のシステムに導入するのに困難が伴う場合が多い。【００２６】
本実施の形態では、より実装が容易な方法として、サーバのログや基本的なコマンド操作から得られる情報のみを利用して分析を行うこととしている。なお、この手法は上記の手法の採用を妨げるものではない。このような前提に基づき、設定した本実施の形態の構成を図１に示す。図１において、１は分析対象を表し、１ＡはWebサーバ、１Ｂはアプリケーションサーバ、１Ｃはデータベースサーバを示す。性能異常分析装置１０は分析に必要な情報を測定データとして取得し記憶するデータベース１１、性能異常の条件を分析し判断する性能異常分析部１２、及びその分析結果を表示する分析結果表示部１３を有する。【００２７】
本実施の形態のシステムにおいて、監視対象であるトランザクションの発生頻度やレスポンスタイムは、Webサーバのログから取得する。広く普及しているApache（登録商標）等のWebサーバ（Apache HTTP Server Project, http://www.apache.org/）であれば、オプションを指定することにより、msec単位でのレスポンスタイムをログに記録することが可能である。【００２８】
また、各サーバのリソース利用状況を示すパラメータを、sar,mpstat,iostatなど、標準的に利用できるコマンドを利用して、監視対象システムの全てのサーバから定期的に採取する。これらのパラメータを決定木によって分析し、レスポンスタイムの閾値超えが発生した時点でのリクエスト発生頻度やリソースの使用率を分析し、性能異常が発生する条件を特定するものとする。ここにおいて、後述するように、性能異常分析装置１０は、本発明の資源利用状況取得部と、リクエスト発生頻度取得部と、処理時間取得部と、性能異常有無判断部と条件分析部とを有している。【００２９】
［分析アルゴリズム］
（決定木）
決定木（L.Breiman, J.H.Friedman, R.A.Olsen, and C.J.Stone, Classification and Regression Trees, Wadsworth, 1984.）は、一般的には自動制御などの意思決定や事象の判断に用いられることが多い分類手法である。この決定木は、クラスタ分析など他の分類手法に比べて、分類や状況分析の理由を説明するのに適している。そこで、本実施の形態では、この手法を性能異常が発生した状況の分析に用いることにする。【００３０】
（データ構造）
分析に用いるデータの構造を構造体形式で記述したものを図２に示す。データは（１）日時、（２）リクエスト頻度、（３）リソース消費量、そして（４）正常／異常を区別するフラグの４つのカテゴリの情報によって構成されている。本実施の形態の手法においては、各パラメータを一定間隔のタイムスライスでサンプリングし、そのタイムスライス１個分のデータを１サンプルとして定義し、決定木による分析に用いる。【００３１】
各カテゴリに属するパラメータの種類は、管理者の着目するトランザクションや、システムから取得可能なパラメータによって任意に変更可能であるが、例えば、以下のような情報などの利用が想定される。【００３２】
（１）日時情報：データのサンプリング日時
年、月、日、時、分
（２）リクエスト頻度：タイムスライス内で発生したHTTPリクエストの数を、以下の種類別にカウントしたもの
レスポンスコード(200, 304, 404, etc)
拡張子(.html, .gif, .jsp, .cgi, etc)
リクエストタイプ(GET or POST)
性能異常監視対象のリクエスト(URL)
（３）リソース消費量：以下の場合を一例とする。
CPU使用率 (Usr, Sys, I/O wait, total, キュー長, etc)
Disk (読込／書込回数, R/W 待ち時間等)
Memory (空きメモリ, ページフォルト数等)
Process(アクティブプロセス数)
（４）フラグ属性： 各タイムスライスについて、そのタイムスライス内の着目リクエストのレスポンスタイムが所定の性能異常判定条件を満たした場合に、そのタイムスライスを性能異常サンプルと判定し、条件を満たさない場合は、正常サンプルと判定する。【００３３】
性能異常判定条件とは、例えば、タイムスライス内で、以下を満たす場合を含み得る。これらの条件は適宜設定することができるものとする。
（１）着目リクエストの閾値越えが１回でも発生した。
（２）着目リクエストの閾値越えが所定の回数以上（例えば５回以上） 発生した。
（３）着目リクエストの閾値越えが所定の割合以上(例えば、そのタイムスライス内での着目リクエストの発生回数の５０％以上) 発生した。
（４）着目リクエストのレスポンスタイムが長いものから上位２０％のレスポンスタイムが閾値を超えた。【００３４】
（決定木の構成）
上記で定義したサンプルを、決定木によって状況分析を行う方法の例を図３に示す。図３には、１つの親ノードＰと、２つの子ノードＣ１，Ｃ２からなる木が示されている。【００３５】
それぞれのノードは「状況」を表しており、その状況に合致するサンプルがそのノードに属していると考えることができる。ここでは、親ノードＰには、Ｎ0個の正常サンプルとＡ0個の異常サンプルが含まれているものとする。そして、親ノードＰが表す状況を、パラメータαがＴ未満である状況Ｃ１(正常サンプルＮ1個と異常サンプルＡ1個が属する)と、αがＴ以上である状況Ｃ２(正常サンプルＮ2個と、異常サンプルＡ2個を含む)に分岐している。【００３６】
このような分岐を各ノードで再帰的に繰り返していき、状況を細分化することで、決定木を構築していく。そして、生成された決定木の葉のうち、異常サンプルを多く含む葉から根までのパスに存在する分岐条件をリストアップすることで、異常が発生しやすい条件を明らかにする。【００３７】
決定木を生成する際に重要なことは、分岐に用いるパラメータとその閾値の選択方法である。一般的な決定木においては、決定木の葉に含まれるサンプルの属性から、その葉が表す属性の「代表値」を多数決によって決定する場合が多い。このようなことから、決定木の葉には、なるべく１つの属性値を持つサンプルが多数含まれ、他の属性値を持つサンプルがあまり含まれないように分割をする。【００３８】
例えば、代表的な決定木構築手法ＩＤ３においては、式（１）（２）に示される情報利得という評価関数を用いて、分岐に利用するパラメータの選択を行う（S.J.Russell, and P.Norvig, Artificial Intelligence, Prentice-Hall, 1995.）。【００３９】
【数１】
2007052327.tif 000003
【００４０】
しかし、本発明の目的である性能異常の発生状況の分析においては、性能異常の発生確率が低く、異常サンプルよりも正常サンプルの方がはるかに多い場合(N0≧A0)が多数存在すると考えられる。このような条件下においては、【００４１】
【数２】
2007052327.tif 000004
【００４２】
となり、常にゲインが非常に小さくなってしまい、有用な結果が導出しにくい可能性もある。【００４３】
さらに、このような分岐方法では、数の多い正常サンプルのみが発生する条件の抽出が容易になるため、図４に示したように、異常サンプルほとんど含まないような葉を多数生成するような分岐が現れる可能性も高い。このような分岐を多数行っても、分岐前のノード(P)と分岐後のノード(C4)において、それらが表す状況(含まれる異常サンプル)はほとんど変化しない。【００４４】
それにも関わらず、状況の説明に必要な条件式の数はどんどん大きくなってしまう。本発明の目的である「異常が発生する状況の分析」においては、分析結果が簡潔である(状況の説明に必要な条件式が少ない)方が好ましいので、このような分岐方法は本実施の形態には適さない。【００４５】
上記の問題を解決するため、本実施の形態においては、状況を「異常値の発生割合が多い状況」と「正常値の発生割合が多い状況」に分類するための評価関数SSF(Situation Separating Function)を考案し採用した。この評価関数を最大にするようなパラメータと閾値の組を選択し、決定木の分岐を行うものとする。【００４６】
【数３】
2007052327.tif 000005
【００４７】
図３に示すように、1つの親ノードPP(正常サンプルN0個、異常サンプルA0個)を２つの子ノードに分割する場合、片方の子ノードC1(異常サンプルN1個)に、親ノードに含まれる異常サンプルA0の大部分が含まれ、もう一方の子ノードC2(正常サンプルN2個)に、親ノードに含まれる正常サンプルN0の大部分が含まれる場合、評価関数SSFの値は大きくなる。【００４８】
この方法であれば、正常サンプル数と異常サンプル数の比率（Ａ0/Ｎ0）によらず、それらのサンプルを「異常が"比較的"発生しやすい状況」と「異常がほとんど発生しない状況」を適切に分離することが可能である。なお、本実施の形態では、評価関数として、親ノードに属する正常サンプルの数Ｎ0及び異常サンプルの数Ａ0と、一方の子ノードに属する異常サンプルの数Ａ1及び他方の子ノードに属する正常サンプルの数Ｎ2の組を用いるようにしたが、これに代えて、親ノードに属する正常サンプルの数Ｎ0及び異常サンプルの数Ａ0と、一方の子ノードに属する正常サンプルの数Ｎ1及び他方の子ノードに属する異常サンプルの数Ａ2の組とを用いて同様の効果を有する評価関数を用いるようにしても良いことはいうまでもない。【００４９】
本実施の形態においては、上記の評価関数を用いて、状況の分岐を再帰的に行い、決定木を構築する。なお、決定木により状況が過度に細かく分解されないように閾値を設け、ノードCzに属する異常サンプル数Azと異常サンプル全体A0の比Ax/A0がその閾値を下回ったら、そのノードを終端するものとする。【００５０】
（パラメータ選択）
決定木アルゴリズムは多数のパラメータの中から、分岐に適切と思われるパラメータを１つずつ抽出して、状況の分岐を行うことで決定木を構築していくが、本発明の目的であるシステムの性能異常分析の場合のように、利用可能なパラメータの数が非常に大きかったり、独立でないパラメータが多数存在する場合には、最適なパラメータ選択を行うことができずに、状況を適切に表す決定木を獲得できないような状況も発生する。【００５１】
このような問題を解決するために、本実施の形態においては、条件分析において、決定木の生成に使用するパラメータを探索的に選択変更させながら、複数の決定木を生成し、その中から最良の結果を選択する。本発明の条件分析部における条件分析のアルゴリズムのフローチャートを図５に示す。このアルゴリズムでは、以下のような手順でパラメータの選択を行う。【００５２】
（Phase１：初期化）
パラメータとして使用可能なパラメータがn個あり、それらの集合が[α1,α2,…,αn]であるとき、V=[α1,α2,…,αn]とおく。また、評価関数の最大値を表すパラメータMAXを0とおく（ステップＳ１）。【００５３】
（Phase２：決定木構築）
パラメータの集合Vを使って決定木T0を構築する（ステップＳ２）。このとき、集合V中の全てのパラメータが決定木の生成に使用されるとは限らない。集合Vのうち、T0の構築に実際に使用されたパラメータの集合をV0とする。そして、以下のように、V0にパラメータαiを加える、もしくはV0からパラメータαiを削除した集合をViとする。【００５４】
【数４】
2007052327.tif 000006
【００５５】
上記のVi(1≦i≦n)を利用して、n個の決定木Ti(1≦i≦n)を構築する。【００５６】
（Phase３：決定木評価と選択）
ここでは、Phase２で構築したn+１個の決定木T0,T1,…,Tnの中から、もっとも適切な決定木の選択を行う（ステップＳ３）。決定木の適切さを評価する関数としては、一般的には「False positive rate」や「False negative rate」、そしてそれらの複合的な関数である「F-Measure」の値などが用いられている。しかし、前述したように、異常サンプルに比べて正常サンプルの数が非常に大きいような場合には、あらゆる葉で異常サンプルよりも正常サンプルの方が多く、全ての結果において「False negative」になるような場合も存在するため、これらの評価関数は本実施の形態が適用される分析対象には適さない。【００５７】
このようなことから、本実施の形態では、以下の独自の評価関数Tree Evaluation Function (TEF)を用いて、決定木の適切さを判断するものとする。【００５８】
【数５】
2007052327.tif 000007
【００５９】
ここで、T: 決定木
N: 正常サンプル全体の数
A: 異常サンプル全体の数
T: 閾値
Lj: 決定木Tの葉ノード
Aj: 葉Ljに属する異常サンプルの数
Nj: 葉Ljに属する正常サンプルの数【００６０】
この関数の考え方は基本的には分岐に用いた関数SSFと同様であり、決定木の葉ノードLjに属する異常サンプルの、異常サンプル全体に対する割合(Aj/A)が大きく、かつそのLjに属する正常サンプルの、正常サンプル全体に対する割合(Nj/N)が小さい場合に、評価関数TEFは大きくなる。また、異常サンプル数が極度に少ない葉については、異常発生状況の説明にほとんど意味を持たないものと考え、そのような葉の影響を除去するために、一定の閾値を設け、その閾値以上の割合の異常サンプルを含むような葉のみを用いて上記の評価関数TEFを評価するものとする。【００６１】
この評価関数TEFを用いて決定木T0,T1,…,Tnの評価を行い、TEF(TM)≧TEF(TM)≧TEF(Ti)（0≦i≦n）となるMを導出し、V=VMと設定する。【００６２】
（Phase４：判定）
ここでは、TEFの値が極大値になったかどうかを調査する（ステップＳ４）。Phase3で得られたTEF(TM)を、以前のループにおけるTEFの最大値MAXと比較し、TEF(TM)＞MAXの場合は、MAX=TEF(TM)と代入し（ステップＳ５）、再度Phase２よりループを繰り返す。TEF(TM)=MAXの場合は、TEF(TM)の値が極大値に達したと判断し、ループを終了し、TMを最終的に得られた決定木として採択する（ステップＳ６）。【００６３】
（出力）
決定木により、性能異常が発生しやすい状況を特定することは可能になるが、決定木のサイズが大きくなり、ノードの数が増加すると、決定木を見ただけでは、その決定木の分析結果を解釈することが非常に困難になる。実際、決定木を目にしたこともないシステム管理者も多数存在すると考えられる。本実施の形態では、管理者がより直感的に状況を把握できるように、決定木をそのまま出力するのではなく、その決定木の分析結果を表形式とベン図形式という、より分かりやすい形式で出力する。【００６４】
（テーブル形式）
決定木の分析結果を表形式に変換するために、異常サンプルを含むような状況を表す決定木の葉に対して、根からそれらの葉までのそれぞれのパスに現れる条件式を抽出する。そして、その条件式を、日時、リクエスト頻度、リソース消費量の３つのカテゴリにまとめて表形式で表示する。例として、図６に決定木を、図７にその決定木を表形式で現したものを示す。【００６５】
（ベン図形式）
ベン図には、異常状態と関係の大きい３つの条件式と、その AND/ORで構成されるエリアに、それぞれのエリアに該当する全サンプル数と異常サンプルの数及びそれらの比を表示する。【００６６】
このベン図により、表形式で表されている条件のうち、どれが重要なのかを直感的に把握することができる。また、条件の間の関係(例えば、「条件Aかつ条件B」のときに異常が発生するのか、それとも「条件Aまたは条件B」のときに異常が発生するのかなど)を瞬時に把握することが可能になる。【００６７】
ベン図の生成に用いる３つの条件式は、決定木中に存在する全ての条件式について、それぞれの条件式を用いて全サンプルを分割したときの評価関数SSFを評価し、これらの条件式のうち、SSFが大きかったもの３つを、ベン図で使用するものとする。また、ベン図内のそれぞれのエリアについて、異常発生割合が高いケースほど色が濃く表示されるようにし、より着目すべきポイントを分かりやすく表示する。【００６８】
図６の決定木をベン図形式で表した例を図８に示す。この図からは、異常が最も発生しやすい状況は、(1)日付が２６日以降、(2)*.htmlに対するリクエストが１００req/sec以上、(3)CPU使用率が７０％以上という３つの条件が同時に発生している場合であるということが直感的に理解できる。【００６９】
本実施の形態においては、ベン図を用いて単に結果を出力するだけでなく、ベン図そのものにインタフェースとしての機能を持たせ、インタラクティブに解析結果に手を加えて、新たな分析を行うことを可能にすることで、より柔軟な状況解析を可能にする。このベン図インタフェースをJava Appletで作成したものスクリーンショットを図９に示す。【００７０】
このプロトタイプにおいては、ベン図のそれぞれのエリアにおける条件式のパラメータの種類をプルダウンメニューで、またパラメータの閾値をテキストボックスに値を直接入力することで変更することが可能になっている。そして、ベン図の右下に用意されたUpdateボタンを押すと、ユーザが変更した条件式に沿って、ベン図中の値やエリアの色の濃さが変化するようになっている。【００７１】
［調査］
（条件）
本実施の形態を実際に多数のユーザによって利用されている環境に適用し、その分析および評価を行った。【００７２】
図１０に分析対象システムの概要を示す。分析対象システムは、４台のWebサーバ兼アプリサーバと、１台のDBサーバからなるWebシステムである。４つずつCPUが搭載されているWebサーバ兼アプリサーバには、ロードバランサによりユーザリクエストが均等に分配されるようになっている。【００７３】
DBサーバは８つのCPUを持っている。これら全てのサーバのOSはSolaris８（登録商標）であり、WebサーバにはApache, アプリサーバにはFujitsu Interstage（Fujitsu Interstage, http://interstage.fujitsu.com/ ）、DBサーバにはFujitsu Symfoware（Fujitsu Symfoware, http://www.fujitsu.com/services/software/symfoware/）を利用している。【００７４】
ユーザから上記システムに送信されてくるリクエストのうち、比較的発生回数およびレスポンスタイムの大きいリクエスト(URL)を１つ選択し、それを、本実施の形態における分析対象リクエストとした。そのリクエストのレスポンスタイムは、Apache Webサーバのログから収集した。【００７５】
また、ユーザリクエストをレスポンスコードや拡張子によって１７種類(タイプ)に分類し、それぞれのタイプに属するリクエストの発生頻度を、Webログからカウントした。【００７６】
また、図１１に示す計９６種類のリソース利用状況に関する情報を、５台のサーバより標準的なUnixコマンドによってそれぞれ獲得した。これらの情報を２６日間にわたり１０分間隔でサンプリングし、それらに５種類の時刻情報(年、月、日、時、分)を加え、総計５０２種類のパラメータを、性能異常分析のためのパラメータとして準備した。【００７７】
上記のデータを分析するために、本実施の形態に係る異常分析装置を、C言語を用いてRed Hat Enterprise Linux（Red Hat Enterprise Linux, http://www.redhat.com/software/rhel/）上に実装した。なお、前述の通りベン図インタフェースの部分のみJava appletにより実装した。分析に用いたPCのCPUはPentium(登録商標)４、３EGhz, メモリは１Gbyteである。【００７８】
本発明の評価関数およびパラメータ選択手法の効果を確認するために、以下のように条件を変化させ分析を行った。【００７９】
（パターン１：ゲイン）
比較のため、本実施の形態で説明したアルゴリズムにおいて、評価関数SSFの代わりに、Information Gainを用いて分析を行う。【００８０】
（パターン２：パラメータの選択をしない場合）
決定木生成の評価関数にはSSFを用いるが、全パラメータを使用した場合の決定木のみを採用し、パラメータ探索のためのループを行わない。【００８１】
（パターン３：本実施の形態）
本発明の実施の形態のアプローチそのものを使用する。評価関数SSFを利用し、パラメータの探索を行う。
また、それぞれの条件下における分析結果の評価を行うために、以下の3つの指標を設定した。【００８２】
（確度）
作成された決定木を、評価関数TEF(式５)によって評価する。この値が大きいほど、正常サンプルと異常サンプルが適切に分離できていると評価できる。【００８３】
（簡易性）
決定木において、異常サンプル全体の１０％以上の異常サンプルを含む決定木の葉に対し、根から葉に至る経路に現れるパラメータの個数をカウントし、決定木全体で平均する。この値が小さければ小さいほど、少ないパラメータで状況が分析できており、好ましいと評価できる。【００８４】
（計算時間）
決定木の生成にかかった時間およびパラメータ選択におけるループ回数をカウントし、その値を評価する。計算時間が小さい方が好ましい。【００８５】
[結果]
（確度）
図１２に、それぞれの実験条件下における評価関数TEFの値を示す。図より、決定木の生成にゲインを用いた場合や、パラメータ探索を行わなかった場合に比べて、本実施の形態におけるアルゴリズムは高いTEFの値を示している。このことから、本実施の形態における評価関数およびパラメータ選択手法は、分析の精度向上に大きく寄与している。【００８６】
（簡易性）
図１３に、各条件下で生成された決定木において、個々の異常状態の説明に必要なパラメータの平均個数を示す。図１３より、評価関数としてゲインを用いた場合よりも、SSFを利用した場合の方が説明に必要なパラメータの個数が少なかった。よって、評価関数SSFの利用は、状況の記述の簡潔化に寄与していると言える。【００８７】
（計算時間）
図１４に実験パターン１(ゲイン)とパターン３(本実施の形態)における、計算時間とパラメータ探索のためのループ回数の関係を示す。図より、ゲインを用いた場合よりも、SSFを用いた場合の方が、結果が収束するまでにかかるループの回数は多いが、決定木の生成にかかる時間は非常に小さいことがわかる。また、ループ1回あたりの平均計算時間は、ゲインの場合が334.11秒なのに対し、SSFの方は21.308秒と、約1/15になっている。これは、ゲインの算出に必要な対数の計算に時間がかかることや、生成される決定木のサイズが大きくなるために、1つの決定木を生成するのにかかる時間が大きくなることなどが原因であると考えられる。このことから、評価関数SSFの採用は、精度や説明の簡潔さのみならず、計算時間の短縮にも寄与していると言える。【００８８】
（ベン図出力）
上記の実験のうち、評価関数TEFの値が一番大きかった場合(Pattern 3(本実施の形態)閾値5秒)のときのベン図形式での出力結果を図１５に例として示す。この図においては、DB（データベース）サーバのI/O read回数が143203回/10分という条件と、DBサーバの総Disk busy時間が445秒以上605秒以下/10分という条件(Diskが複数あるので、総計が600秒/10分以上になる場合もある)と、４台目のアプリサーバのプロセス間通信メッセージ関連システムコールの発行回数が840回/10分という３つの条件によりベン図が構成されている。【００８９】
ベン図を見ると、DBサーバに関する２つの条件のいずれかにあてはまる状況下における異常発生割合は、ほとんどの場合においてサンプル全体における平均異常発生割合(14.3%)を大きく上回っている。よって、このシステムにおける性能異常の原因は、データベースサーバへのディスクアクセスの集中にあると考えられる。よって、データベースサーバアプリケーションにおけるディスクアクセス方法を改善したり、分散データベースサーバを利用したりすることにより、ディスクアクセスの集中を防ぐことにより、性能異常の大部分を解消できると考えられる。【００９０】
上述した本実施の形態によれば、次のような効果を奏する。
（１）多種多様なパラメータを出力する大規模システムにおいて、どのようなパラメータがどれくらいの値になると性能異常が発生しやすくなるかを瞬時に把握でき、システムの性能改善にかかる時間やコストを大幅に削減することが可能になる。
（２）また、決定木の手法を利用して、観測時の状況を、性能異常の発生割合が高い状況と、性能異常の発生割合が低い状況に分離し、性能異常の発生割合が高い場合の条件を判断することで、また、決定木中のある状況を表す親ノードを、２つの子ノードに分岐する際に、親ノードに属する正常値の大部分が一方の子ノードに所属し、親ノードに属する異常値の大部分が他方の子ノードに属するように分岐を行うような評価関数を用いて決定木を生成し、性能異常の発生割合が高い場合の条件を判断することで、異常が発生しやすい状況と正常な状況を、より少ない条件式で分離することが可能になるため、より少ない条件で異常が発生しやすい状況を説明することが可能になる。
（３）決定木を生成する際に、使用するパラメータの集合を探索的に変化させながら、複数の決定木を生成し、その中から最適な一つの決定木を選択することで、性能異常の発生割合が高い場合の条件を判断することで、より妥当な分析結果を得ることが可能になる。
（４）性能異常の発生割合が高くなる場合の条件を、パラメータとその閾値の集合で表し、性能異常の発生頻度や発生割合と、それらの性能異常が発生したときの条件を、表形式およびベン図形式で出力することで、決定木そのものを出力するよりも、性能異常が発生しやすい条件をより直感的に把握することが可能になる。
（５）ベン図の各領域の描画方法(色や模様など)を、各領域が表す状況下における性能異常発生頻度や発生回数に対応させて変化させることで、異なる条件下における性能異常発生頻度や割合の差異をより直感的に把握することが可能になる。
（６）分析の出力結果におけるパラメータや閾値を任意に変更する手段と、その変更による結果を図表に反映する手段を備えることにより、分析の結果として得られた条件を任意に変更し、その変更した条件下における性能異常発生割合や発生頻度を容易に確認することが可能になる。【００９１】
以上、本発明の実施の形態において、性能異常分析及びその表示方法をコンピュータにおいて実行させるプログラムを、性能異常分析プログラムとして提供することができる。上述したプログラムは、コンピュータにより読取り可能な記録媒体に記憶させることによって、性能異常分析装置を構成するコンピュータに実行させることが可能となる。ここで、上記コンピュータにより読取り可能な記録媒体としては、ＲＯＭやＲＡＭ等のコンピュータに内部実装される内部記憶装置、ＣＤ−ＲＯＭやフレキシブルディスク、ＤＶＤディスク、光磁気ディスク、ＩＣカード等の可搬型記憶媒体や、コンピュータプログラムを保持するデータベース、或いは、他のコンピュータ並びにそのデータベースや、更に回線上の伝送媒体をも含むものである。
【産業上の利用可能性】
【００９２】
以上説明したように、本発明によれば、実運用中のシステムに容易に適用可能になるように、サーバのログや基本コマンドの利用のみで採取可能な多種多様なパラメータを扱うことができ、精度が高く、信頼度の高い性能異常分析装置、方法及びプログラム、並びにその表示方法を提供することができるという効果を奏する。
【図１】
2007052327.tif 000008
【図２】
2007052327.tif 000009
【図３】
2007052327.tif 000010
【図４】
2007052327.tif 000011
【図５】
2007052327.tif 000012
【図６】
2007052327.tif 000013
【図７】
2007052327.tif 000014
【図８】
2007052327.tif 000015
【図９】
2007052327.tif 000016
【図１０】
2007052327.tif 000017
【図１１】
2007052327.tif 000018
【図１２】
2007052327.tif 000019
【図１３】
2007052327.tif 000020
【図１４】
2007052327.tif 000021
【図１５】
2007052327.tif 000022
【手続補正書】
【提出日】平成19年11月26日(2007.11.26)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数のコンピュータからなるシステムの性能異常の分析をコンピュータに実行させる性能異常分析プログラムであって、
システムの資源利用状況を取得する資源利用状況取得ステップと、
システムに送信されるリクエストの発生頻度を取得するリクエスト発生頻度取得ステップと、
システムに送信されるリクエストをシステムが処理するのに要した時間を取得する処理時間取得ステップと、
性能異常の有無を判断する性能異常有無判断ステップと、
前記資源利用状況取得ステップにより取得された資源利用状況とリクエスト発生頻度取得ステップにより取得されたリクエストの発生頻度に関する情報と、前記性能異常有無判断ステップにより判断された性能異常の有無に関する情報とに基づき、性能異常の発生割合が高くなる場合の条件を分析する条件分析ステップであって、決定木の手法を用いて、決定木のある状況を表す親ノードを２つの子ノードに分岐する際に、親ノードに属する正常サンプルの大部分が一方の子ノードに所属し、親ノードに属する異常値の大部分が他方の子ノードに属するように分岐を行うような評価関数を用いて前記決定木を生成し、性能異常の割合が高い場合の条件を判断する前記条件分析ステップと
を備えてコンピュータに実行させる性能異常分析プログラム。
【請求項２】
請求項１に記載の性能異常分析プログラムにおいて、
前記条件分析ステップは、前記評価関数として、親ノードに属する正常サンプルの数Ｎ0及び異常サンプルの数Ａ0と、
一方の子ノードに属する異常サンプルの数Ａ1及び他方の子ノードに属する正常サンプルの数Ｎ2の組、又は一方の子ノードに属する正常サンプルの数Ｎ1及び他方の子ノードに属する異常サンプルの数Ａ2の組とのいずれかの組におけるそれぞれのサンプルの数と
を用いた評価関数を用いることを特徴とする性能異常分析プログラム。
【請求項３】
請求項２に記載の性能異常分析プログラムにおいて、
前記条件分析ステップは、前記評価関数として、Ａ1/Ａ0とＮ2/Ｎ0との積を用いることを特徴とする性能異常分析プログラム。
【請求項４】
請求項１に記載の性能異常分析プログラムにおいて、
前記条件分析ステップは、決定木を生成する際に、使用するパラメータの集合を探索的に変化させながら、複数の決定木を生成し、その中から所定の一つの決定木を選択することで、性能異常の発生割合が高い場合の条件を判断する性能異常分析プログラム。
【請求項５】
請求項１に記載の性能異常分析プログラムにおいて、
性能異常の発生割合が高くなる場合の条件を、パラメータとその閾値の集合で表し、性能異常の発生頻度又は発生割合と、それらの性能異常が発生したときの条件を、表形式又はベン図形式で出力する分析結果出力ステップを備えることを特徴とする性能異常分析プログラム。
【請求項６】
複数のコンピュータからなるシステムの性能異常の分析を行う性能異常分析方法であって、
システムの資源利用状況を取得する資源利用状況取得ステップと、
システムに送信されるリクエストの発生頻度を取得するリクエスト発生頻度取得ステップと、
システムに送信されるリクエストをシステムが処理するのに要した時間を取得する処理時間取得ステップと、
性能異常の有無を判断する性能異常有無判断ステップと、
前記資源利用状況取得ステップにより取得された資源利用状況とリクエスト発生頻度取得ステップにより取得されたリクエストの発生頻度に関する情報と、前記性能異常有無判断ステップにより判断された性能異常の有無に関する情報とに基づき、性能異常の発生割合が高くなる場合の条件を分析する条件分析ステップであって、決定木の手法を用いて、決定木のある状況を表す親ノードを２つの子ノードに分岐する際に、親ノードに属する正常サンプルの大部分が一方の子ノードに所属し、親ノードに属する異常値の大部分が他方の子ノードに属するように分岐を行うような評価関数を用いて前記決定木を生成し、性能異常の割合が高い場合の条件を判断する前記条件分析ステップと
を備える性能異常分析方法。
【請求項７】
複数のコンピュータからなるシステムの性能異常を分析する性能異常分析装置であって、
システムの資源利用状況を取得する資源利用状況取得部と、
システムに送信されるリクエストの発生頻度を取得するリクエスト発生頻度取得部と、
システムに送信されるリクエストをシステムが処理するのに要した時間を取得する処理時間取得部と、
性能異常の有無を判断する性能異常有無判断部と、
前記資源利用状況取得部により取得された資源利用状況とリクエスト発生頻度取得部により取得されたリクエストの発生頻度に関する情報と、前記性能異常有無判断部により判断された性能異常の有無に関する情報とに基づき、性能異常の発生割合が高くなる場合の条件を分析する条件分析部であって、決定木の手法を用いて、決定木のある状況を表す親ノードを２つの子ノードに分岐する際に、親ノードに属する正常サンプルの大部分が一方の子ノードに所属し、親ノードに属する異常値の大部分が他方の子ノードに属するように分岐を行うような評価関数を用いて前記決定木を生成し、性能異常の割合が高い場合の条件を判断する前記条件分析部と
を備えてなる性能異常分析装置。
【請求項８】
請求項７に記載の性能異常分析装置において、
前記条件分析部は、前記評価関数として、親ノードに属する正常サンプルの数Ｎ0及び異常サンプルの数Ａ0と、
一方の子ノードに属する異常サンプルの数Ａ1及び他方の子ノードに属する正常サンプルの数Ｎ2の組、又は一方の子ノードに属する正常サンプルの数Ｎ1及び他方の子ノードに属する異常サンプルの数Ａ2の組とのいずれかの組におけるそれぞれのサンプルの数と
を用いた評価関数を用いることを特徴とする性能異常分析装置。
【請求項９】
請求項８に記載の性能異常分析装置において、
前記条件分析部は、前記評価関数として、Ａ1/Ａ0とＮ2/Ｎ0の積を用いることを特徴とする性能異常分析装置。
【請求項１０】
性能異常の発生割合が高くなる場合の条件をパラメータとその閾値の集合で表し、性能異常の発生割合と該性能異常が発生するときの条件をベン図形式で表示するようにした性能異常分析装置の分析結果表示方法。
【国際調査報告】
2007052327.tif 000023
2007052327.tif 000024
2007052327.tif 000025
2007052327.tif 000026