(57)【特許請求の範囲】
【請求項１】
同一の構成であって、同一のサーバグループに属し、特定の処理を均等に分散して実行する複数のサーバと、
前記複数のサーバの各々に対する性能計測の対象となるリソースを示すサーバリソース情報、及び前記サーバグループ及び前記各サーバの識別情報を示すサーバ構成情報を指定するための入力制御部と、
前記各サーバから、前記サーバリソース情報に示されたリソース毎に性能データを収集する性能データ収集部と、
前記サーバリソース情報、前記サーバ構成情報、及び前記各サーバから収集した性能データを記憶する記憶装置と、
前記サーバリソース情報に示されたリソース毎に、前記各サーバの最新の性能データを母集団として取り出し、統計計算処理を実施し、前記最新の性能データの母集団に対する個々のサーバの最新の性能データの乖離具合を示す指標値を算出する統計計算部と、
前記指標値が前記各サーバの異常状態をあらわしているかどうかを判断して異常を検出する異常検出部と、
異常が検出された場合に外部に通知するための外部出力部と
を具備する
性能負荷異常検出システム。
【請求項２】
請求項１に記載の性能負荷異常検出システムであって、
前記性能データ収集部は、前記記憶装置内の前記サーバリソース情報、前記サーバ構成情報を参照し、前記性能データを収集する対象を把握し、前記サーバ構成情報の情報を基に前記各サーバヘアクセスし、前記サーバリソース情報の情報を基に対象のサーバリソースに関する前記性能データを取得するためのコマンドの発行、又は関数の実行を行い、前記性能データを、前記サーバリソース情報への参照、前記サーバ構成情報への参照、収集時刻と共に、前記記憶装置に記録する
性能負荷異常検出システム。
【請求項３】
請求項１又は２に記載の性能負荷異常検出システムであって、
前記統計計算部は、現時刻から所定の期間内に収集された前記性能データを、前記サーバリソース情報及び前記サーバグループを指定して前記記録装置から取り出し、統計処理を実施し、
前記異常検出部は、統計処理が施されたデータを検証し、異常があると判断された場合、前記外部出力部を介して利用者に通知する
性能負荷異常検出システム。
【請求項４】
請求項１乃至３のいずれか一項に記載の性能負荷異常検出システムであって、
前記統計計算部は、前記指標値として、次式：
【数１】
0004573179.tif 000005
を用いて、各サーバに対して偏差値を計算する
性能負荷異常検出システム。
【請求項５】
コンピュータにより実施される性能負荷異常検出方法であって、
同一の構成であって、同一のサーバグループに属し、特定の処理を均等に分散して実行する複数のサーバの各々を監視することと、
前記各サーバの識別情報と前記各サーバの性能データとのペアをリスト化したサーバ構成リストを作成することと、
前記各サーバの識別情報を示すサーバ構成情報、及び前記各サーバに対する性能計測の対象となるリソースを示すサーバリソース情報を指定して、所定の期間、前記サーバリソース情報に示されたリソース毎に、前記各サーバから性能データを収集して性能データリストを作成することと、
前記性能データリスト内に未処理の性能データが１件以上存在しているか確認することと、
前記性能データリスト内に前記未処理の性能データが存在している場合、収集時刻の古い順に前記性能データリストから前記未処理の性能データを取り出し、前記各サーバの識別情報をキーにして、前記取り出した性能データを前記サーバ構成リストに反映することと、
前記性能データリスト内に未処理の性能データが他に存在しているか確認することと、
前記性能データリスト内に前記未処理の性能データが存在していない場合、前記性能データリスト内の全データが前記サーバ構成リストに反映されているか確認することと、
前記性能データリスト内の全データが前記サーバ構成リストに反映されていることを確認した場合、前記サーバ構成リスト内の各サーバの最新の性能データを母集団として取り出し、統計計算処理を実施し、前記最新の性能データの母集団に対する個々のサーバの最新の性能データの乖離具合を示す指標値を計算することと、
前記サーバ構成リスト内の全サーバについて前記指標値の計算が完了した後、いずれかの指標値がサーバの異常状態をあらわしているかどうかを判断して異常を検出することと、
異常が検出された場合に外部に通知することと
を含む
性能負荷異常検出方法。
【請求項６】
請求項５に記載の性能負荷異常検出方法であって、
前記サーバ構成リスト内に前記性能データが反映されていないサーバが存在する場合、統計計算結果が不正となる可能性があるため、処理を中断すること
を更に含む
性能負荷異常検出方法。
【請求項７】
請求項５又は６に記載の性能負荷異常検出方法であって、
それぞれのサーバについて前記指標値を計算する際、
前記指標値として、次式：
【数１】
0004573179.tif 000006
を用いて、それぞれのサーバに対して偏差値を計算すること
を更に含む
性能負荷異常検出方法。
【請求項８】
請求項７に記載の性能負荷異常検出方法であって、
計算されたサーバ毎の偏差値について、偏差値３０未満又は７０を超える値となったサーバが存在しないかどうかを検証することと、
偏差値３０未満又は７０を超える値となったサーバが存在した場合、対象のサーバグループが異常な状態となっている可能性があるとして、利用者に対して通知することと、
偏差値３０未満又は７０を超える値となったサーバが存在しない場合、対象のサーバグループの状態は正常な状態であるとして処理を終了することと
を更に含む
性能負荷異常検出方法。
【請求項９】
請求項５乃至８のいずれか一項に記載の性能負荷異常検出方法を、コンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明では、性能負荷異常検出システムに関し、特にグループ化されたサーバ群に属するサーバ単体の性能異常を検出する性能負荷異常検出システムを提供する。
【背景技術】
【０００２】
現在の計算機システムにおいては、同スペックのサーバを複数台配置して、負荷を均等に分散し、高負荷に対応するという運用形態がとられることがある。そういった運用形態においては、急激に負荷が上昇した場合に配置されたサーバ群（以降、サーバグループと呼ぶ）が十分なリソースを保持しなくなるという問題に対して、負荷分散対象のサーバを増加し、サーバグループリソースを補充する処置がとられることが多い。
【０００３】
このサーバグループリソースの不足を検知する方法として、サーバグループの性能データの平均値を閾値を設けて監視することで、サーバグループのリソース不足を検知する方法が考えられる。しかし、この方法では、グループ内の単体サーバに発生した負荷異常を検知することは困難であり、単体サーバの負荷異常は、将来的なサーバグループリソースの不足につながりかねない。
【０００４】
また、単体サーバの負荷異常を検知する方法として、サーバの性能データを定期的に閾値を設けて監視する方法が考えられるが、リソースの種類（ＣＰＵ、メモリ、ディスク、ネットワークなど）によって、性能データの値のスケールなどが異なるため、適切な閾値の算定にはノウハウが必要となる。
【０００５】
関連する技術として、特開２００５−１６５６７３号公報（特許文献１）に性能監視システムが開示されている。
この性能監視システムは、複数の性能監視装置と管理サーバ装置とを通信ネットワークにより接続する。前記複数の性能監視装置は夫々、接続される一又は複数の情報処理装置の性能を監視する性能監視手段と、前記性能監視手段による監視結果を示す性能データを送信する性能データ送信手段とを有する。前記管理サーバ装置は、前記複数の性能監視装置から夫々性能データを受信する性能データ受信手段を有する。
【０００６】
また、特開２００５−３１６８０８号公報（特許文献２）に性能監視装置が開示されている。
この性能監視装置は、予め定められている採取間隔で、監視対象装置の性能値を採取する性能値採取手段と、該性能値採取手段が予め定められているサンプリング期間に採取した性能値から、それらの平均値との差分が除外レベル値以下の性能値を抽出する抽出手段と、該抽出手段で抽出された性能値に基づいて閾値を算出する閾値算出手段と、該閾値算出手段で算出した閾値と前記性能値採取手段で採取した性能値とに基づいて、前記監視対象装置に性能的問題が発生しているか否かを判定する判定手段とを備えたことを特徴とする。
【０００７】
特開２００５−３２７２６１号公報（特許文献３）に性能監視装置が開示されている。
この性能監視装置は、複数の情報処理装置が協調して動作する情報処理システムの性能を監視する。なお、この性能監視装置は、前記複数の情報処理装置の稼働状況、及び、前記複数の情報処理装置間を接続する各通信回線のデータ通信状況を監視する監視手段と、前記監視手段による監視データに基づいて、前記情報処理システムに現在発生している障害を検知、又は、前記情報処理システムに将来障害が発生する可能性を予測する障害検知／予測手段とを有することを特徴とする。
【０００８】
特開平５−９４３４２号公報（特許文献４）にコンピユータ性能監視装置が開示されている。
このコンピユータ性能監視装置は、中央処理部，主記憶部，入出力制御部，通信制御部の稼働データを検知する性能データ採取機構と、前記稼働データを受信し格納する性能情報蓄積部と、前記稼働データを解析し表示する手段とを有することを特徴とする。
【０００９】
【特許文献１】特開２００５−１６５６７３号公報
【特許文献２】特開２００５−３１６８０８号公報
【特許文献３】特開２００５−３２７２６１号公報
【特許文献４】特開平５−９４３４２号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
本発明の目的は、グループ化されたサーバ群に属するサーバ単体の性能異常を効率的に検出する性能負荷異常検出システムを提供することである。
【課題を解決するための手段】
【００１１】
以下に、［発明を実施するための最良の形態］で使用される番号を括弧付きで用いて、課題を解決するための手段を説明する。これらの番号は、［特許請求の範囲］の記載と［発明を実施するための最良の形態］との対応関係を明らかにするために付加されたものである。但し、それらの番号を、［特許請求の範囲］に記載されている発明の技術的範囲の解釈に用いてはならない。
【００１２】
本発明の性能負荷異常検出システムは、監視対象サーバが属するサーバグループ（１）と、前記監視対象サーバのリソース情報を有するサーバリソース情報（７）、前記サーバグループ（１）及び前記監視対象サーバの情報を有するサーバ構成情報（８）、前記監視対象サーバから収集した性能データ（９）を記憶する記憶装置（６）と、前記監視対象サーバから前記性能データ（９）を取得し、前記記憶装置（６）に前記性能データ（９）を保存する性能データ収集部（２）と、前記記憶装置（６）から指定の条件を満たした前記性能データ（９）を取り出し、統計計算処理を実施する統計計算部（３）と、前記統計計算部（３）で統計処理されたデータが前記監視対象サーバの異常状態をあらわしているかどうかを判断する異常検出部（４）と、異常が検出された場合に利用者に通知するための外部出力部（５）と、前記利用者により設定された前記サーバリソース情報（７）、及び前記サーバ構成情報（８）を、前記記憶装置（６）に記録する入力制御部（１０）とを具備する。
【００１３】
前記性能データ収集部（２）は、前記記憶装置（６）内の前記サーバリソース情報（７）、前記サーバ構成情報（８）を参照し、前記性能データ（９）を収集する対象を把握し、且つ、前記サーバ構成情報（８）の情報を基に前記監視対象サーバヘアクセスし、前記サーバリソース情報（７）の情報を基に対象のサーバリソースに関する前記性能データ（９）を取得するためのコマンドの発行、又は関数の実行を行い、且つ、前記性能データ（９）を、前記サーバリソース情報（７）への参照、前記サーバ構成情報（８）への参照、収集時刻と共に、前記記憶装置（６）に記録する。
【００１４】
前記統計計算部（３）は、現時刻から所定の期間内に収集された前記性能データ（９）を、前記サーバリソース情報（７）、前記サーバグループ（１）を指定して前記記録装置から取り出し、統計処理を実施する。前記異常検出部（４）は、統計処理が施されたデータを検証し、異常があると判断された場合、前記外部出力部（５）を介して利用者に通知する。
【００１５】
前記統計計算部（３）は、次式：
【数１】
0004573179.tif 000002
を用いて、サーバ構成リスト内のサーバの各々に対して偏差値を計算する。
【００１６】
本発明の性能負荷異常検出方法は、（ａ１）対象のサーバグループ（１）に属しているサーバに関する監視対象サーバ情報及び性能データ（９）のペアをリスト化したサーバ構成リストを作成するステップと、（ａ２）監視期間、前記監視対象サーバ情報、サーバリソース情報（７）を指定して、性能データ（９）一覧を取得し、性能データ（９）リストを作成するステップと、（ａ３）前記性能データ（９）リスト内に性能データ（９）が１件以上存在しているか確認するステップと、（ａ４）前記性能データ（９）リスト内に前記性能データ（９）が存在している場合、収集時刻の古い順に前記性能データ（９）リストからデータを取り出し、取り出したデータの参照しているサーバ情報と対応する前記サーバ構成リスト内の要素に前記性能データ（９）を反映するステップと、（ａ５）前記性能データ（９）リスト内の全データについて上記の操作が完了した後、前記サーバ構成リストを確認し、前記性能データ（９）が反映されてないサーバがないことを確認するステップと、（ａ６）前記サーバ構成リスト内の全サーバに対して前記性能データ（９）が反映されていることが確認できた場合、それぞれのサーバについての偏差値を計算するステップと、（ａ７）全てのサーバについての偏差値の計算が完了した後、異常検出部（４）の処理へ遷移するステップと、（ａ８）前記性能データ（９）が反映されていないサーバが１つでも存在した場合、統計計算結果が不正となる可能性があるため、処理を中断するステップとを具備する。
【００１７】
前記（ａ４）ステップは、（ａ４１）前記サーバ構成リスト内の全サーバに対して前記性能データ（９）を反映するステップと、（ａ４２）既に反映済みのサーバについては、新しい時刻情報を持つ性能データ（９）で上書きするステップとを具備する。
【００１８】
前記（ａ６）ステップは、（ａ６１）前記偏差値を、次式：
【数１】
0004573179.tif 000003
を用いて計算するステップを具備する。
【００１９】
本発明の性能負荷異常検出方法は、（ｂ１）計算されたサーバ毎の偏差値について、偏差値３０未満又は７０を超える値となったサーバが存在しないかどうかを検証するステップと、（ｂ２）偏差値３０未満又は７０を超える値となったサーバが存在した場合、対象のサーバグループ（１）が異常な状態となっている可能性があるとして、利用者に対して通知するステップと、（ｂ３）偏差値３０未満又は７０を超える値となったサーバが存在しない場合、対象のサーバグループ（１）の状態は正常な状態であるとして処理を終了するステップとを更に具備する。
【発明の効果】
【００２０】
第一の効果は、サーバグループ内のサーバになんらかの障害が発生した際の過剰な負荷上昇、障害によるボトルネックにより処理効率が悪化した際の異常な負荷減少を検知することができる点である。
第二の効果は、サーバ性能を監視する際に、リソース毎に閾値を設定する必要がない点である。その理由は、偏差値を利用することで、性能データの平均値からのズレが標準化されるためである。
【発明を実施するための最良の形態】
【００２１】
以下に本発明の第１実施形態について添付図面を参照して説明する。
図１に示すように、本発明の計算機システムは、性能監視対象サーバ群１と、性能データ収集部２と、統計計算部３と、異常検出部４と、外部出力部５と、記憶装置６と、サーバリソース情報７と、サーバ構成情報８と、性能データ９と、入力制御部１０と、外部入力部１１とを有する。
【００２２】
性能監視対象サーバ群（以降、サーバグループと呼ぶ）１は、監視対象となるサーバが属するサーバグループである。性能データ収集部２は、監視対象サーバから性能データを取得し、記憶装置６へ取得した性能データを保存する。統計計算部３は、記憶装置６から指定の条件を満たした性能データを取り出し、統計計算処理を実施する。異常検出部４は、統計計算部３で統計処理されたデータが監視対象サーバの異常状態をあらわしているかどうかを判断する。外部出力部５は、異常が検出された場合に、その旨を利用者に通知する。記憶装置６は、サーバリソース情報７、サーバ構成情報８、性能データ９を記憶する。サーバリソース情報７は、監視対象サーバのリソース情報を有する。サーバ構成情報８は、サーバグループ１と性能監視対象サーバのサーバ情報を有する。性能データ９は、監視対象サーバから収集した性能データである。入力制御部１０は、利用者から入力された設定情報を記憶装置６へ記録する。外部入力部１１は、利用者からの操作を受け付けるためのインターフェイスである。
【００２３】
図２を参照して、サーバリソース情報７の例について説明する。
図２では、サーバリソース情報の項目として、「ＣＰＵ使用率」「空き物理メモリ」「ディスク転送速度」「パケット転送速度」等が示されている。「ＣＰＵ使用率」は、ＣＰＵの処理能力（処理可能限界）に対して実際に実行されている処理の割合を示す。すなわち、ＣＰＵの混雑率を示す。「空き物理メモリ」は、物理メモリの最大容量から使用中の容量を差し引いた空き容量を示す。「ディスク転送速度」は、データの読み出しや書き込みの速度を示す。「パケット転送速度」は、サーバ間、或いは監視対象サーバと他の装置との間で通信した時のパケットの転送速度を示す。但し、実際には、これらの例に限定されるものではなく、他にも一般的に利用されているサーバリソース情報を使用することが可能である。
【００２４】
図３を参照して、サーバ構成情報８の例について説明する。
図３では、サーバ構成情報として、「サーバグループ毎の識別情報」と「監視対象サーバのＩＰアドレス」との組み合わせが示されている。これにより、どのサーバグループにどのサーバが属しているかを把握することが可能である。図３では、「グループ毎の識別情報」の例として、「サーバグループ１」「サーバグループ２」が示されている。但し、実際には、上記の例に限定されない。また、「監視対象サーバのＩＰアドレス」は、ＩＰアドレスに限定されるものではなく、監視対象サーバ毎に固有の識別情報（例えば、端末名）を代わりに用いても良い。すなわち、監視対象サーバを特定できる識別情報であれば良い。
【００２５】
図４を参照して、性能データ９の例について説明する。
図４では、性能データとして、「性能計測を実施した日時」「監視対象サーバのＩＰアドレス」「計測項目」「計測結果」の組み合わせが示されている。「性能計測を実施した日時」は、例えば「２００６／０１／０１  ００：００：００」のように、監視対象サーバの性能計測を実施した年月日及び時刻が示されている。「監視対象サーバのＩＰアドレス」は、監視対象サーバが有するＩＰアドレスを示す。なお、ＩＰアドレスの代わりに、監視対象サーバを特定できる識別情報を用いても良い。「計測項目」は、サーバリソース情報の項目として示した「ＣＰＵ使用率」「空き物理メモリ」「ディスク転送速度」「パケット転送速度」等である。「計測結果」は、前述した「ＣＰＵ使用率」「空き物理メモリ」「ディスク転送速度」「パケット転送速度」等の値を示している。
【００２６】
利用者は、外部入力部１１を利用し、監視したいサーバリソース情報（ＣＰＵ使用率、メモリ使用量など）と、監視対象としたいサーバ情報（ＩＰアドレス、ホスト名）を設定する。入力したデータは、入力制御部１０を通じて、記憶装置６内に記録される。
【００２７】
性能データ収集部２は、記憶装置６内のサーバリソース情報７、サーバ構成情報８を参照し、性能データを収集する対象を把握する。性能データ収集部２は、サーバ構成情報８の情報を基に監視対象サーバヘアクセスし、サーバリソース情報７の情報を基に対象のサーバリソースに関する性能データを取得するためのコマンドの発行、又は関数の実行を行う。取得された性能データは、サーバリソース情報への参照、サーバ情報への参照、収集時刻と共に、記憶装置６に記録される。
【００２８】
統計計算部３は、現時刻からある期間内に収集された性能データを、サーバリソース情報、サーバグループ１を指定して記録装置６から取り出し、統計処理を実施する。統計処理が施されたデータを異常検出部４で検証し、異常があると判断された場合は、外部出力部５を通じて利用者に通知される。
【００２９】
次に、図５のフローチャートを参照して、図１において統計計算部３として表されている部分の動作を説明する。
（１）ステップＳ１１
統計計算部３では、まずサーバ構成リストを作成する。サーバ構成リストとは、図６に示すように、対象のサーバグループ１に属している監視対象サーバ情報と性能データのペアをリスト化したものである。リスト作成時は、リストの要素の性能データ部分には情報が入っていない状態である。図６では、所定の時間内（例：５分間）におけるサーバ構成リストの例と、統計計算できない例とを示している。図６では、サーバ構成リストに、「監視対象サーバのＩＰアドレス」と「ＣＰＵ使用率」との組み合わせが示されている。統計計算できない例では、「ＣＰＵ使用率」の値が空（指定時間内にデータ無し）の場合についても例示している。なお、「ＣＰＵ使用率」と共に、或いは代わりに、「空き物理メモリ」「ディスク転送速度」「パケット転送速度」のいずれか又は全てをサーバ構成リストに含むようにしても良い。
（２）ステップＳ１２
次に、期間、対象のサーバグループ１に属している監視対象サーバ情報、サーバリソース情報を指定して、記憶装置６から性能データ一覧を取得し、性能データリストを作成する。
（３）ステップＳ１３
次に、性能データリスト内に性能データが１件以上存在しているか確認する。
（４）ステップＳ１４
性能データリスト内に性能データが存在している場合、収集時刻の古い順に性能データリストからデータを取り出し、取り出したデータの参照しているサーバ情報と対応するサーバ構成リスト内の要素に性能データを反映する。この操作を性能データリストの全データについて実施する。既に反映済みのサーバについては、より新しい時刻情報を持つ性能データで上書きする。
（５）ステップＳ１５
性能データリスト内の全データについて上記の操作が完了した後、サーバ構成リストを確認し、性能データが反映されてないサーバがないことを確認する。
（６）ステップＳ１６
サーバ構成リスト内の全サーバに対して性能データが反映されていることが確認できた場合、それぞれのサーバについての偏差値を計算する。偏差値の算出式を以下に示す。
【数１】
0004573179.tif 000004
（７）ステップＳ１７
全てのサーバについての偏差値の計算が完了した後、異常検出部の処理へ遷移する。
（８）ステップＳ１８
性能データが反映されていないサーバが１つでも存在した場合、統計計算結果が不正となる可能性があるため、処理を中断する。
【００３０】
次に、図７のフローチャートを参照して、図１において異常検出部４として表されている部分の動作を説明する。
【００３１】
（１）ステップＳ２１
異常検出部４では、まず統計計算部３で計算されたサーバ毎の偏差値について、３０未満又は７０を超える値となったサーバが存在しないかどうかを検証する。偏差値３０以上、７０以下の範囲には、全性能データの約９５％が含まれるため、この範囲に含まれない性能データは特異な値であるといえる。
（２）ステップＳ２２
３０未満又は７０を超える値となったサーバが存在した場合、対象のサーバグループ１が異常な状態となっている可能性があるとして、利用者に対して外部出力部（図１の５）を通して通知する。
（３）ステップＳ２３
３０未満又は７０を超える値となったサーバが存在しない場合は、対象のサーバグループ１の状態は正常な状態であるとして、処理を終了する。
【００３２】
なお、本発明において、偏差値の閾値を利用者が設定可能とすることで、異常検出の感度のカスタマイズを可能とすることが考えられる。また、サーバグループの平均値の監視と組み合わせて利用することにより、より厳密な監視システムが実現できる。
【図面の簡単な説明】
【００３３】
【図１】図１は、本発明の構成例のブロック図である。
【図２】図２は、サーバリソース情報の例を示す図である。
【図３】図３は、サーバ構成情報の例を示す図である。
【図４】図４は、性能データの例を示す図である。
【図５】図５は、サーバグループの性能データの統計計算を示すフローチャートである。
【図６】図６は、サーバ構成リストの例を示す図である。
【図７】図７は、サーバグループの性能データの異常検出を示すフローチャートである。
【符号の説明】
【００３４】
１…  性能監視対象サーバ群（サーバグループ）
２…  性能データ収集部
３…  統計計算部
４…  異常検出部
５…  外部出力部
６…  記憶装置
７…  サーバリソース情報
８…  サーバ構成情報
９…  性能データ
１０…  入力制御部
１１…  外部入力部
【図１】
0004573179.tif 000007
【図２】
0004573179.tif 000008
【図３】
0004573179.tif 000009
【図４】
0004573179.tif 000010
【図５】
0004573179.tif 000011
【図６】
0004573179.tif 000012
【図７】
0004573179.tif 000013