(57)【特許請求の範囲】
【請求項１】
分析対象装置に対して処理要求が入力された要求時刻と、該処理要求に応じて実行された処理の応答が前記分析対象装置から出力された応答時刻とを含む処理期間情報が、記憶手段に格納されており、該記憶手段から、要求時刻から応答時刻までの応答時間が閾値を超えている処理の処理期間情報を抽出し、
抽出した処理期間情報の要求時刻に基づいて、応答時間が前記閾値を超えている処理に関する、処理要求の入力頻度の推移を分析し、
抽出した処理期間情報の応答時刻に基づいて、応答時間が前記閾値を超えている処理に関する、応答の出力頻度の推移を分析し、
処理要求の入力頻度の推移と応答の出力頻度の推移とに基づいて、応答時間が前記閾値を超えている処理の発生要因を判定する、
処理を情報処理装置に実行させるプログラム。
【請求項２】
処理要求の入力頻度の推移の分析では、処理要求の入力頻度の推移に応じて、処理要求の入力頻度が一時的に高レベルである一時高レベル、処理要求の入力頻度が継続して高レベルである一定高レベル、処理要求の入力頻度が継続して低レベルである一定低レベルのいずれかに、入力タイプを決定し、
応答の出力頻度の推移の分析では、応答の出力頻度の推移に応じて、応答の出力頻度が一時的に高レベルである一時高レベル、応答の出力頻度が継続して高レベルである一定高レベル、応答の出力頻度が継続して低レベルである一定低レベルのいずれかに、出力タイプを決定し、
発生要因の判定では、入力タイプと出力タイプとの組み合わせに応じて、応答時間が前記閾値を超えている処理の発生要因を判定する、
処理を情報処理装置に実行させる請求項１記載のプログラム。
【請求項３】
処理要求の入力頻度の推移の分析では、分析対象の分析期間を、該分析期間内に入力された処理要求数以上の数の小時間枠に分割し、各小時間枠内での処理要求の入力の有無を判断し、処理要求の入力が少なくとも１回あった小時間枠の割合が所定値以下であれば、入力タイプを一時高レベルと決定し、
応答の出力頻度の推移の分析では、分析対象とする分析期間を、該分析期間内に出力された応答数以上の数の小時間枠に分割し、各小時間枠内での応答の出力の有無を判断し、応答の出力が少なくとも１回あった小時間枠の割合が所定値以下であれば、出力タイプを一時高レベルと決定する、
処理を情報処理装置に実行させる請求項２記載のプログラム。
【請求項４】
処理要求の入力頻度の推移の分析では、分析の対象とする分析期間を、該分析期間内に入力された処理要求数以上の数で小時間枠に分割したときの該小時間枠の時間幅が、該分析期間内に入力された処理要求に応じた処理の平均応答時間以上であれば、入力タイプを一定低レベルと決定し、該時間幅が該平均応答時間よりも小さければ、入力タイプを一定高レベルと決定し、
応答の出力頻度の推移の分析では、分析対象とする分析期間を、該分析期間内に出力された応答数以上の数で小時間枠に分割したときの該小時間枠の時間幅が、該分析期間内に応答した処理の平均応答時間以上であれば、出力タイプを一定低レベルと決定し、該時間幅が該平均応答時間よりも小さければ、出力タイプを一定高レベルと決定する、
処理を情報処理装置に実行させる請求項２または３のいずれかに記載のプログラム。
【請求項５】
処理要求の入力頻度の推移の分析および応答の出力頻度の推移の分析では、応答時間が前記閾値を超えている処理が実行されていない期間を除外した期間を、分析期間とする、
処理を情報処理装置に実行させる請求項３または４のいずれかに記載のプログラム。
【請求項６】
発生要因の判定では、入力タイプが一定高レベル、出力タイプが一定高レベルであれば、応答時間が前記閾値を超えている処理の発生要因を、過負荷と判定する、
処理を情報処理装置に実行させる請求項２乃至５のいずれかに記載のプログラム。
【請求項７】
発生要因の判定では、入力タイプが一時高レベル、出力タイプが一定高レベルであれば、応答時間が前記閾値を超えている処理の発生要因を、処理要求の短時間の集中と判定する、
処理を情報処理装置に実行させる請求項２乃至６のいずれかに記載のプログラム。
【請求項８】
発生要因の判定では、入力タイプが一定低レベル、出力タイプが一時高レベルであれば、応答時間が前記閾値を超えている処理の発生要因を、処理で使用する資源の競合と判定する、
処理を情報処理装置に実行させる請求項２乃至７のいずれかに記載のプログラム。
【請求項９】
発生要因の判定では、入力タイプが一時高レベル、出力タイプが一時高レベルであれば、応答時間が前記閾値を超えている処理の発生要因を、処理要求の短時間の集中と、処理で使用する資源の競合との複合要因と判定する、
処理を情報処理装置に実行させる請求項２乃至８のいずれかに記載のプログラム。
【請求項１０】
さらに、
表示方法を指定する入力に応答し、前記記憶手段を参照し、横軸に要求時刻、縦軸に応答時間とする第１の散布図と、横軸に応答時刻、縦軸に応答時間とする第２の散布図とのいずれかを表示する、
処理を情報処理装置に実行させる請求項１乃至９のいずれかに記載のプログラム。
【請求項１１】
情報処理装置が、
分析対象装置に対して処理要求が入力された要求時刻と、該処理要求に応じて実行された処理の応答が前記分析対象装置から出力された応答時刻とを含む処理期間情報が、記憶手段に格納されており、該記憶手段から、要求時刻から応答時刻までの応答時間が閾値を超えている処理の処理期間情報を抽出し、
抽出した処理期間情報の要求時刻に基づいて、応答時間が前記閾値を超えている処理に関する、処理要求の入力頻度の推移を分析し、
抽出した処理期間情報の応答時刻に基づいて、応答時間が前記閾値を超えている処理に関する、応答の出力頻度の推移を分析し、
処理要求の入力頻度の推移と応答の出力頻度の推移とに基づいて、応答時間が前記閾値を超えている処理の発生要因を判定する、
分析方法。
【請求項１２】
分析対象装置に対して処理要求が入力された要求時刻と、該処理要求に応じて実行された処理の応答が前記分析対象装置から出力された応答時刻とを含む処理期間情報が、記憶手段に格納されており、該記憶手段から、要求時刻から応答時刻までの応答時間が閾値を超えている処理の処理期間情報を抽出する抽出手段と、
抽出した処理期間情報の要求時刻に基づいて、応答時間が前記閾値を超えている処理に関する、処理要求の入力頻度の推移を分析する第１の分析手段と、
抽出した処理期間情報の応答時刻に基づいて、応答時間が前記閾値を超えている処理に関する、応答の出力頻度の推移を分析する第２の分析手段と、
処理要求の入力頻度の推移と応答の出力頻度の推移とに基づいて、応答時間が前記閾値を超えている処理の発生要因を判定する判定手段と、
を有する情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、装置の処理状況を分析するプログラム、分析方法、および情報処理装置に関する。
【背景技術】
【０００２】
サーバを用いて、ネットワークを介してユーザに安定したサービスを提供する場合において、運用中にサーバの応答時間が悪化することがある。例えば、サーバの応答時間悪化は１日の中で何度も発生する場合がある。
【０００３】
応答時間の悪化要因の中には、外部のトラフィック変動による外因的なものと、内部のプログラム構造に起因する内因的なものがある。応答時間悪化要因が外因的なものであれば、サーバ台数を増やしたりトラフィックをコントロールしたりするなど、ハードリソースを増強することで、応答時間悪化を抑止できる。一方、応答時間悪化要因が内因的なものであれば、ソフトウェアの作りを変更するなどの対処によって、応答時間悪化を抑止できる。
【０００４】
このように、応答時間が悪化した場合、悪化要因が内因的なのか外因的なのかに応じて、対処方法が異なる。そのため、悪化要因が内因的なのか外因的なのかを早期に判別することが出来れば、サーバの応答時間を迅速に改善することができる。
【０００５】
これらの要因を分類する手法としては、短い間での挙動を詳細に観察する「ドリルダウン」手段で行うことが多い。ただし、ドリルダウンを人手で行うため効率が悪い。
なお、コンピュータを用いてサーバの性能を解析するための、さまざまな技術が考えられている。例えば、複数のサーバを含むコンピュータ・システムのレスポンスに関する分析を行う分析方法が考えられている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】国際公開第２００６／０４６２９７号
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかし、従来のコンピュータによるサーバの性能解析技術は、例えば内因性なのか外因性なのかといったような応答時間の悪化要因について、効率的に分析するものではない。そのため、依然として、分析の初期段階でドリルダウンによる人手の分析判断が行われ、応答時間の悪化要因の切り分けに時間がかかる。その結果、サーバの応答時間の改善を迅速に行うことが困難となっている。
【０００８】
１つの側面では、本発明は、応答時間の悪化要因を判定することができるプログラム、分析方法、および情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
１つの案では、以下の処理を情報処理装置に実行させるプログラムが提供される。該プログラムに基づいて情報処理装置は、分析対象装置に対して処理要求が入力された要求時刻と、該処理要求に応じて実行された処理の応答が分析対象装置から出力された応答時刻とを含む処理期間情報が、記憶手段に格納されており、該記憶手段から、要求時刻から応答時刻までの応答時間が閾値を超えている処理の処理期間情報を抽出する。次に情報処理装置は、抽出した処理期間情報の要求時刻に基づいて、応答時間が閾値を超えている処理に関する、処理要求の入力頻度の推移を分析する。さらに情報処理装置は、抽出した処理期間情報の応答時刻に基づいて、応答時間が閾値を超えている処理に関する、応答の出力頻度の推移を分析する。そして情報処理装置は、処理要求の入力頻度の推移と応答の出力頻度の推移とに基づいて、応答時間が閾値を超えている処理の発生要因を判定する。
【発明の効果】
【００１０】
１態様によれば、応答時間の悪化要因が判定できる。
【図面の簡単な説明】
【００１１】
【図１】第１の実施の形態に係る装置の機能構成例を示す図である。
【図２】第２の実施の形態のシステムの全体構成を示す図である。
【図３】第２の実施の形態に用いる分析サーバのハードウェアの一構成例を示す図である。
【図４】第２の実施の形態に係る分析サーバの機能の一例を示すブロック図である。
【図５】分析処理の手順を示すフローチャートである。
【図６】キャプチャデータ記憶部のデータ構造の一例を示す図である。
【図７】メッセージデータ記憶部のデータ構造の一例を示す図である。
【図８】メッセージ対記憶部のデータ構造の一例を示す図である。
【図９】分析結果記憶部のデータ構造の一例を示す図である。
【図１０】分析処理の手順の一例を示すフローチャートである。
【図１１】分析対象メッセージ対抽出処理の手順の一例を示すフローチャートである。
【図１２】分析対象メッセージ対の抽出例を示す図である。
【図１３】分析期間短縮処理の手順の一例を示すフローチャートである。
【図１４】分析期間短縮処理の例を示す図である。
【図１５】入力タイプ判定処理の手順の一例を示すフローチャートである。
【図１６】出力タイプ判定処理の手順の一例を示すフローチャートである。
【図１７】レスポンス悪化要因出力処理の手順を示すフローチャートである。
【図１８】レスポンス悪化要因の判定パターンを示す図である。
【図１９】競合発生時のリクエスト・レスポンス頻度の例を示す図である。
【図２０】入力サージ発生時のリクエスト・レスポンス頻度の例を示す図である。
【図２１】オーバーロード発生時のリクエスト・レスポンス頻度の例を示す図である。
【図２２】入力サージ＋競合発生時のリクエスト・レスポンス頻度の例を示す図である。
【図２３】オーバーロード＋競合発生時のリクエスト・レスポンス頻度の例を示す図である。
【図２４】レスポンス悪化要因判定例を示す図である。
【図２５】分析結果表示画面の一例を示す図である。
【図２６】散布図の切り替え表示例を示す図である。
【発明を実施するための形態】
【００１２】
以下、本実施の形態について図面を参照して説明する。なお各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
〔第１の実施の形態〕
まず第１の実施の形態について説明する。第１の実施の形態は、分析対象装置の処理の応答時間の悪化要因を判定するものである。第１の実施の形態では、情報処理装置が、応答時間が所定の閾値より長い処理に関する処理要求時刻と応答時刻とを用いて、該当処理の入出力に特化して、処理要求の入力頻度の推移と応答の出力頻度の推移とを分析する。これにより、応答時間の悪化要因となる状態を際立たせた分析結果を得ることができ、その分析結果に応じて、応答時間の悪化要因を判定することが可能となる。
【００１３】
図１は、第１の実施の形態に係る装置の機能構成例を示す図である。情報処理装置１は、分析対象装置２で実行された処理の応答時間の悪化要因を分析する。例えば情報処理装置１は、端末装置３から分析対象装置２に入力された処理要求４と、分析対象装置２から端末装置３への応答５とに基づいて、分析を行う。そのために情報処理装置１は、記憶手段１ａ、抽出手段１ｂ、第１の分析手段１ｃ、第２の分析手段１ｄ、および判定手段１ｅを有する。
【００１４】
記憶手段１ａは、分析対象装置２に対して処理要求４が入力された要求時刻と、該処理要求４に応じて実行された処理の応答５が分析対象装置２から出力された応答時刻とを含む処理期間情報が、分析対象装置２で実行された処理ごとに格納されている。
【００１５】
抽出手段１ｂは、記憶手段１ａから、要求時刻から応答時刻までの応答時間が閾値を超えている処理の処理期間情報を抽出する。
第１の分析手段１ｃは、抽出した処理期間情報の要求時刻に基づいて、応答時間が閾値を超えている処理に関する、処理要求の入力頻度の推移を分析する。例えば第１の分析手段１ｃは、処理要求の入力頻度が高レベルか低レベルかの状態の推移に応じて、一時高レベル、一定高レベル、一定低レベルのいずれかに、入力タイプを決定する。一時高レベルは、処理要求の入力頻度が一時的に高レベルとなったときの入力タイプである。一定高レベルは、処理要求の入力頻度が継続して高レベルであるときの入力タイプである。一定低レベルは、処理要求の入力頻度が継続して低レベルであるときの入力タイプである。なお入力タイプが一定高レベルか一定低レベルかは、例えば所定の分析期間内の処理要求の数が所定値を超えるか否かで判断できる。この場合、処理要求の数が所定値を超えれば、入力タイプが一定高レベルと判断され、処理要求の数が所定値以下であれば、入力タイプが一定低レベルと判断される。
【００１６】
第２の分析手段１ｄは、抽出した処理期間情報の応答時刻に基づいて、応答時間が閾値を超えている処理に関する、応答の出力頻度の推移を分析する。例えば第２の分析手段１ｄは、応答の出力頻度が高レベルか低レベルかの状態の推移に応じて、一時高レベル、一定高レベル、一定低レベルのいずれかに、出力タイプを決定する。一時高レベルは、応答の出力頻度が一時的に高レベルであるときの出力タイプである。一定高レベルは、応答の出力頻度が継続して高レベルであるときの出力タイプである。一定低レベルは、応答の出力頻度が継続して低レベルであるときの出力タイプである。なお出力タイプが一定高レベルか一定低レベルかは、例えば所定の分析期間内の応答の数が所定値を超えるか否かで判断できる。この場合、応答の数が所定値を超えれば、出力タイプが一定高レベルと判断され、応答の数が所定値以下であれば、出力タイプが一定低レベルと判断される。
【００１７】
判定手段１ｅは、処理要求の入力頻度の推移と応答の出力頻度の推移とに基づいて、応答時間が閾値を超えている処理の発生要因を判定する。例えば判定手段１ｅは、入力タイプと出力タイプとの組み合わせに応じて、応答時間が閾値を超えている処理の発生要因を判定する。例えば判定手段１ｅは、入力タイプが一定高レベル、出力タイプが一定高レベルであれば、応答時間が閾値を超えている処理の発生要因を、過負荷（オーバーロード）と判定する。また判定手段１ｅは、入力タイプが一時高レベル、出力タイプが一定高レベルであれば、応答時間が閾値を超えている処理の発生要因を、処理要求の短時間の集中（入力サージ）と判定する。さらに判定手段１ｅは、入力タイプが一定高レベル、出力タイプが一時高レベルであれば、応答時間が閾値を超えている処理の発生要因を、処理で使用する資源の競合と判定する。
【００１８】
また、判定手段１ｅは、応答時間が閾値を超えている処理の発生要因を、複合的な要因であると判定することもできる。例えば判定手段１ｅは、入力タイプが一時高レベル、出力タイプが一時高レベルであれば、応答時間が閾値を超えている処理の発生要因を、処理要求の短時間の集中と、処理で使用する資源の競合との複合要因と判定する。
【００１９】
このような情報処理装置１により、分析対象装置２の応答時間の悪化要因が、判定できる。例えば図１の例では、分析対象となる分析期間内に分析対象装置２で実行された処理のうち、４つの処理６ａ，６ｂ，６ｃ，６ｄが、閾値より応答時間が長いものとする。なお図１では、各処理を矢印で示しており、矢印の始点の位置が処理の要求時刻であり、矢印の終点の位置が処理の応答時刻である。図１の例では、抽出手段１ｂによって、処理６ａ，６ｂ，６ｃ，６ｄの処理期間情報が記憶手段１ａから抽出される。
【００２０】
次に第１の分析手段１ｃにより、抽出された処理６ａ，６ｂ，６ｃ，６ｄの要求時刻に基づいて、入力タイプが判断される。図１の例では、要求時刻は分散しており、処理要求数も多くなく、入力タイプは一定低レベルであるものとする。また第２の分析手段１ｄにより、抽出された処理６ａ，６ｂ，６ｃ，６ｄの応答時刻に基づいて、出力タイプが判断される。図１の例では、応答時刻が集中しており、出力レベルが一時高レベルであるものとする。
【００２１】
その後、判定手段１ｅによって、応答時間が閾値を超えている処理の発生要因が判定される。例えば入力タイプが一定低レベル、出力タイプが一時高レベルであれば、使用する資源の競合があったものと判定される。
【００２２】
このように第１の実施の形態では、応答時間が閾値以上の処理に関する処理期間情報だけを対象に、入力の頻度と出力の頻度の関係を分析し、応答時間の悪化要因を判定したことで、適切な要因を判定できる。例えば、短時間に発生した性能悪化についても検出できる。応答時間悪化要因としては、例えば、オーバーロード、入力サージ、競合、入力サージ＋競合などがある。
【００２３】
応答時間の適切な悪化要因が判定できることで、迅速に応答時間を改善させることができる。例えば、応答時間悪化要因がオーバーロードであれば、分析対象装置２の処理性能が不十分であることが分かり、分析対象装置２のハードウェア資源の増強を行うことで、以後の応答時間の悪化を抑止できる。また、応答時間悪化要因が入力サージであれば、端末装置３から出力する処理要求を、時間的に分散させるように端末装置３の設定を行うことで、応答時間の悪化を抑止できる。
【００２４】
なお、図１に示す抽出手段１ｂ、第１の分析手段１ｃ、第２の分析手段１ｄ、および判定手段１ｅは、情報処理装置１が有するＣＰＵ（Central Processing Unit）により実現することができる。また、記憶手段１ａは、情報処理装置１が有するＲＡＭ（Random Access Memory）やハードディスクドライブ（ＨＤＤ:Hard Disk Drive）などにより実現することができる。
【００２５】
また、図１に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。
〔第２の実施の形態〕
次に第２の実施の形態について説明する。第２の実施の形態は、複数階層システムに含まれるサーバのレスポンス悪化の外的要因としてオーバーロードと入力サージ、内的要因としてアクセス競合を判別するものである。ここでオーバーロードは、継続的に処理負荷が過大であることである。入力サージは、一時的にリクエストが集中したことである。競合は、複数の処理が同一資源を同時に利用しようとすることである。
【００２６】
図２は、第２の実施の形態のシステムの全体構成を示す図である。このシステムは、分析サーバ１００、Ｗｅｂサーバ２１，２２，２３、Ａｐｐサーバ２４，２５、ＤＢサーバ２６、およびロードバランサ２７を有する。Ｗｅｂサーバ２１，２２，２３と、Ａｐｐサーバ２４，２５とは、スイッチ装置３１を介して相互に接続されている。Ａｐｐサーバ２４，２５とＤＢサーバ２６とは、スイッチ装置３２を介して相互に接続されている。ロードバランサ２７は、Ｗｅｂサーバ２１，２２，２３それぞれと、ネットワークタップ３３，３４，３５を介して接続されている。
【００２７】
スイッチ装置３１，３２は、ポートミラーリング機能を有している。スイッチ装置３１，３２それぞれのポートミラーリング用のポートには、スイッチ装置３６が接続されている。スイッチ装置３１は、ポートミラーリングにより、Ｗｅｂサーバ２１，２２，２３とＡｐｐサーバ２４，２５との間で送受信されるパケットをコピーし、スイッチ装置３６に送信する。スイッチ装置３２は、ポートミラーリングにより、Ａｐｐサーバ２４，２５とＤＢサーバ２６との間で送受信されるパケットをコピーし、スイッチ装置３６に送信する。
【００２８】
ネットワークタップ３３，３４，３５のモニタ用ポートには、スイッチ装置３６が接続されている。ネットワークタップ３３は、Ｗｅｂサーバ２１とロードバランサ２７との間で通信されるパケットをコピーし、スイッチ装置３６に送信する。ネットワークタップ３４は、Ｗｅｂサーバ２２とロードバランサ２７との間で通信されるパケットをコピーし、スイッチ装置３６に送信する。ネットワークタップ３５は、Ｗｅｂサーバ２３とロードバランサ２７との間で通信されるパケットをコピーし、スイッチ装置３６に送信する。
【００２９】
スイッチ装置３６には、分析サーバ１００が接続されている。スイッチ装置３６は、他のスイッチ装置３１，３３や、ネットワークタップ３３，３４，３５から送られたパケットを、分析サーバ１００に転送する。
【００３０】
ロードバランサ２７は、ネットワーク１０を介して端末装置２９ａ，２９ｂ，・・・に接続されている。ロードバランサ２７は、端末装置２９ａ，２９ｂ，・・・からＷｅｂサーバ２１，２２，２３宛に出された処理要求を、いずれかのＷｅｂサーバに転送する。例えばロードバランサ２７は、各Ｗｅｂサーバ２１，２２，２３の処理量が均等になるように、処理要求のＷｅｂサーバ２１，２２，２３への振り分けを行う。
【００３１】
端末装置２９ａ，２９ｂ，・・・は、ネットワーク１０およびロードバランサ２７を介してＷｅｂサーバ２１，２２，２２にアクセス可能である。端末装置２９ａ，２９ｂ，・・・のユーザは、Ｗｅｂサーバ２１，２２，２３が提供するＧＵＩ（Graphical User Interface）を端末装置２９ａ，２９ｂ，・・・から操作してシステムを利用できる。
【００３２】
分析サーバ１００は、Ｗｅｂサーバ２１，２２，２３、Ａｐｐサーバ２４，２５およびＤＢサーバ２６の稼働状況を管理する。分析サーバ１００は、稼働状況を管理するための情報を、スイッチ装置３６を介して取得することができる。すなわち、分析サーバ１００は、スイッチ装置３６から送信される通信パケットを受信して、記憶する（パケットキャプチャ）。分析サーバ１００は、スイッチ装置３６を介して転送されてくるＩＰパケットを受信可能なネットワークインタフェースを有している。そして分析サーバ１００は、転送されてきたＩＰパケット格納用の十分に大きなハードディスクを有している。さらに、分析サーバ１００は、ＩＰパケットをキャプチャするのに十分なＣＰＵ性能を保有していることが望ましい。転送されてきたＩＰパケットは、分析サーバ１００上でキャプチャされ、その後にメッセージを抽出するための処理が実施される。
【００３３】
Ｗｅｂサーバ２１，２２，２３は、Ｗｅｂブラウザを実行する端末装置２９ａ，２９ｂ，・・・から出力された処理要求（メッセージ）を受け付ける。ここで、Ｗｅｂサーバ２１，２２，２３と端末装置２９ａ，２９ｂ，・・・とのメッセージ交換は、例えばＨＴＴＰによって行われるものとする。ただし、他のプロトコルが用いられてもよい。
【００３４】
以下の説明では、端末装置２９ａ，２９ｂ，・・・からＷｅｂサーバ２１，２２，２３へ送信する処理要求をＨＴＴＰリクエストと呼ぶこととする。また、それに対する応答をＨＴＴＰレスポンスと呼ぶこととする。
【００３５】
Ｗｅｂサーバ２１，２２，２３は、端末装置２９ａ，２９ｂ，・・・から受信したＨＴＴＰリクエストに基づいて、静的コンテンツに関しては自装置でＨＴＴＰレスポンスを生成し、端末装置２９ａ，２９ｂ，・・・に送信する。なお、動的コンテンツに関しては、Ａｐｐサーバ２４，２５に依頼すべき処理の処理要求（メッセージ）を生成して、Ａｐｐサーバ２４，２５に送信する。
【００３６】
ここで、Ｗｅｂサーバ２１，２２，２３とＡｐｐサーバ２４，２５とのメッセージ交換は、ＩＩＯＰ（Internet Inter-ORB（Object Request Broker） Protocol）によって行われるものとする。ただし、他のプロトコルが用いられてもよい。
【００３７】
Ｗｅｂサーバ２１，２２，２３は、ＩＩＯＰリクエストに対するＩＩＯＰレスポンスを受信すると、その内容に基づいてＨＴＴＰレスポンスを生成して、端末装置２９ａ，２９ｂ，・・・に送信する。
【００３８】
Ａｐｐサーバ２４，２５は、Ｗｅｂサーバ２１，２２，２３から受信したＩＩＯＰリクエストに基づいてＤＢサーバ２６に依頼すべき処理のクエリを生成し、ＤＢサーバ２６に送信する。
【００３９】
ここで、Ａｐｐサーバ２４，２５が生成するクエリは、例えばＳＱＬ（Structured Query Language）文によって表記され、ＤＢサーバに固有のプロトコルでＤＢサーバへと送信される。以下では、Ａｐｐサーバ２４，２５がＤＢサーバ２６に送信するクエリをＤＢリクエストと呼ぶこととする。また、それに対する応答をＤＢレスポンスと呼ぶこととする。
【００４０】
Ａｐｐサーバ２４，２５は、ＤＢリクエストに対するＤＢレスポンスを受信すると、その内容に基づいてＩＩＯＰレスポンスを生成してＷｅｂサーバ２１，２２，２３に送信する。
【００４１】
ＤＢサーバ２６は、Ａｐｐサーバ２４，２５から受信したＤＢリクエストに含まれるＳＱＬ文を実行してＤＢの参照や更新等の処理を実行する。ＤＢサーバ２６は、その処理結果に基づいてＤＢレスポンスを生成し、Ａｐｐサーバ２４，２５に送信する。
【００４２】
なお、Ｗｅｂ層、Ａｐｐ層、ＤＢ層の階層間を跨って送受信されるメッセージを取得する手法には何通りか考えられるが、第２の実施の形態では、ネットワーク上を流れるＩＰパケットから情報を取得するものとする。
【００４３】
また、以下では各サーバという場合、Ｗｅｂサーバ２１，２２，２３、Ａｐｐサーバ２４，２５およびＤＢサーバ２６を示すものとする。さらに、Ｗｅｂサーバ２１，２２，２３は、Ａｐｐサーバ２４，２５およびＤＢサーバ２６よりも上位層のサーバであるとする。また、Ａｐｐサーバ２４，２５は、ＤＢサーバ２６よりも上位層のサーバであるとする。このような階層関係を定義する情報は、分析サーバ１００に予め格納される。
【００４４】
図３は、第２の実施の形態に用いる分析サーバのハードウェアの一構成例を示す図である。分析サーバ１００は、ＣＰＵ１０１によって装置全体が制御されている。ＣＰＵ１０１には、バス１０８を介してＲＡＭ１０２と複数の周辺機器が接続されている。なお分析サーバ１００が有するＣＰＵ数は１つに限定されず、複数であってもよい。分析サーバ１００が複数のＣＰＵを有する場合、複数のＣＰＵが連係動作し、装置全体を制御する。
【００４５】
ＲＡＭ１０２は、分析サーバ１００の主記憶装置として使用される。ＲＡＭ１０２には、ＣＰＵ１０１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１０２には、ＣＰＵ１０１による処理に必要な各種データが格納される。
【００４６】
バス１０８に接続されている周辺機器としては、ＨＤＤ１０３、グラフィック処理装置１０４、入力インタフェース１０５、光学ドライブ装置１０６、および通信インタフェース１０７がある。
【００４７】
ＨＤＤ１０３は、内蔵したディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。ＨＤＤ１０３は、分析サーバ１００の二次記憶装置として使用される。ＨＤＤ１０３には、ＯＳのプログラム、アプリケーションプログラム、および各種データが格納される。なお、二次記憶装置としては、フラッシュメモリなどの半導体記憶装置を使用することもできる。
【００４８】
グラフィック処理装置１０４には、モニタ１１が接続されている。グラフィック処理装置１０４は、ＣＰＵ１０１からの命令に従って、画像をモニタ１１の画面に表示させる。モニタ１１としては、ＣＲＴ（Cathode Ray Tube）を用いた表示装置や液晶表示装置などがある。
【００４９】
入力インタフェース１０５には、キーボード１２とマウス１３とが接続されている。入力インタフェース１０５は、キーボード１２やマウス１３から送られてくる信号をＣＰＵ１０１に送信する。なお、マウス１３は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【００５０】
光学ドライブ装置１０６は、レーザ光などを利用して、光ディスク１４に記録されたデータの読み取りを行う。光ディスク１４は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク１４には、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。
【００５１】
通信インタフェース１０７は、スイッチ装置３６に接続されている。通信インタフェース１０７は、スイッチ装置３６を介して、他のサーバまたは通信機器との間でデータの送受信を行う。
【００５２】
以上のようなハードウェア構成によって、第２の実施の形態の処理機能を実現することができる。なお、図３には分析サーバ１００のハードウェア構成を示したが、Ｗｅｂサーバ２１，２２，２３、Ａｐｐサーバ２４，２５、ＤＢサーバ２６、および複数の端末装置２９ａ，２９ｂ，・・・も、分析サーバ１００と同様のハードウェア構成で実現することができる。なお、第１の実施の形態に示した情報処理装置１も、図３に示した分析サーバと同様のハードウェアにより実現することができる。
【００５３】
図４は、第２の実施の形態に係る分析サーバの機能の一例を示すブロック図である。分析サーバ１００は、キャプチャ部１１０、キャプチャデータ記憶部１２０、メッセージ解析部１３０、メッセージデータ記憶部１４０、メッセージ対抽出部１５０、メッセージ対記憶部１６０、分析部１７０、分析結果記憶部１８０、および表示部１９０を有する。
【００５４】
キャプチャ部１１０は、スイッチ装置３１，３２のミラーポートまたはネットワークタップ３３〜３５から出力された通信パケットを、スイッチ装置３６を介して受信する。キャプチャ部１１０は、受信した通信パケットを、キャプチャデータ記憶部１２０に格納する。この際、キャプチャ部１１０は、例えば、格納する通信パケットに対して、現在の時刻を示す情報（タイムスタンプ）を付与し、時刻情報が付与された通信パケット情報をキャプチャデータ記憶部１２０に格納する。
【００５５】
キャプチャデータ記憶部１２０は、キャプチャ部１１０がキャプチャした通信パケットを記憶する。例えば分析サーバ１００のＲＡＭ１０２またはＨＤＤ１０３の記憶領域の一部が、キャプチャデータ記憶部１２０として使用される。
【００５６】
メッセージ解析部１３０は、受信したパケットを解析し、Ｗｅｂサーバ２１，２２，２３、Ａｐｐサーバ２４，２５、ＤＢサーバ２６および端末装置２９ａ，２９ｂ，・・・において通信されたメッセージを再構成する。そしてメッセージ解析部１３０は、再構成したメッセージを、メッセージデータ記憶部１４０に格納する。
【００５７】
メッセージデータ記憶部１４０は、再構成されたメッセージを記憶する。例えばＲＡＭ１０２またはＨＤＤ１０３の記憶領域の一部がメッセージデータ記憶部１４０として使用される。
【００５８】
メッセージ対抽出部１５０は、メッセージデータ記憶部１４０から、リクエストメッセージと、そのリクエストメッセージに対するレスポンスメッセージとの対を抽出する。メッセージ対抽出部１５０は、抽出したメッセージ対を、メッセージ対記憶部１６０に格納する。
【００５９】
メッセージ対記憶部１６０は、メッセージ対を記憶する。例えばＲＡＭ１０２またはＨＤＤ１０３の記憶領域の一部が、メッセージ対記憶部１６０として使用される。なおメッセージ対記憶部１６０は、図１に示した第１の実施の形態における記憶手段１ａの一例である。
【００６０】
分析部１７０は、メッセージ対記憶部１６０に格納されたメッセージ対に基づいて、レスポンス悪化要因を分析する。例えば分析部１７０は、オーバーロード、入力サージ、アクセス競合、またはこれらの組み合わせのいずれかのレスポンス悪化要因が存在する場合、そのレスポンス悪化要因を特定する。分析部１７０は、分析結果を分析結果記憶部１８０に格納する。なお分析部１７０は、図１に示した第１の実施の形態における、抽出手段１ｂ、第１の分析手段１ｃ、第２の分析手段１ｄ、および判定手段１ｅを包含する機能の一例である。
【００６１】
分析結果記憶部１８０は、分析結果を記憶する。例えばＲＡＭ１０２またはＨＤＤ１０３の記憶領域の一部が、分析結果記憶部１８０として使用される。
表示部１９０は、メッセージ対記憶部１６０に格納されているメッセージ対に基づいて、レスポンス時間の状況を視覚的な図で表示する。例えば表示部１９０は、時間経過に伴う、メッセージ対ごとのレスポンス時間を散布図で表示する。また表示部１９０は、分析結果記憶部１８０に格納された分析結果を表示することもできる。
【００６２】
なお、図４に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。
以上のような構成の分析サーバ１００における分析処理について以下に説明する。
【００６３】
図５は、分析処理の手順を示すフローチャートである。以下、図５に示す処理をステップ番号に沿って説明する。
［ステップＳ１０１］キャプチャ部１１０は、Ｗｅｂサーバ２１〜２３、Ａｐｐサーバ２４，２５、またはＤＢサーバ２６に入出力されたパケットをキャプチャする。例えばキャプチャ部１１０は、スイッチ装置３１，３２やネットワークタップ３３〜３５でコピーされたパケットを、スイッチ装置３６を介して取得する。キャプチャ部１１０は、キャプチャしたパケットにタイムスタンプを付与し、キャプチャデータ記憶部１２０に格納する。
【００６４】
［ステップＳ１０２］メッセージ解析部１３０は、キャプチャデータ記憶部１２０に格納されたパケットに基づいて、メッセージを再構成する。再構成されるメッセージには、リクエストメッセージとレスポンスメッセージとがある。そしてメッセージ解析部１３０は、再構成したメッセージを、メッセージデータ記憶部１４０に格納する。
【００６５】
［ステップＳ１０３］メッセージ対抽出部１５０は、メッセージデータ記憶部１４０から、分析対象のサーバに入出力されたメッセージによるメッセージ対を生成する。なお分析対象のサーバは、予め指定されているものとする。例えばメッセージ対抽出部１５０は、ＤＢサーバ２６を解析対象とする場合、メッセージデータ記憶部１４０内のメッセージのうち、ＤＢサーバ２６を宛先とするリクエストメッセージおよびＤＢサーバ２６を送信元とするレスポンスメッセージを抽出する。次にメッセージ対抽出部１５０は、抽出したメッセージの中から、リクエストメッセージと、そのリクエストメッセージに対するレスポンスメッセージとを対応付け、メッセージ対とする。例えばメッセージ対抽出部１５０は、同じセッション番号が付与されたリクエストメッセージとレスポンスメッセージとを対応付け、メッセージ対とする。メッセージ対抽出部１５０は、抽出したメッセージ対をメッセージ対記憶部１６０に格納する。
【００６６】
［ステップＳ１０４］分析部１７０は、メッセージ対記憶部１６０に格納されたメッセージ対を分析し、レスポンス悪化期間の存在の有無、およびレスポンス悪化期間が存在する場合におけるその期間のレスポンス悪化要因を解析する。例えば分析部１７０は、メッセージ対記憶部１６０から、レスポンス時間が所定の閾値以上のメッセージ対を抽出し、抽出したメッセージ対を用いて分析を行う。そして分析部１７０は、分析結果を、分析結果記憶部１８０に格納する。なお、この処理の詳細には後述する（図１０参照）。
【００６７】
［ステップＳ１０５］表示部１９０は、分析結果記憶部１８０に格納された分析結果を、モニタ１１などに表示する。
次に、図５に示した各記憶部に格納される情報について、具体的に説明する。
【００６８】
図６は、キャプチャデータ記憶部のデータ構造の一例を示す図である。キャプチャデータ記憶部１２０には、複数のパケット１２１〜１２７，・・・が格納されている。また各パケット１２１〜１２７，・・・には、受信時刻を示すタイムスタンプ１２１ａ，１２２ａ，１２３ａ，１２４ａ，１２５ａ，１２６ａ，１２７ａ，・・・が付与されている。
【００６９】
キャプチャされたパケットに基づいて、メッセージ解析部１３０により、メッセージが再構成され、メッセージデータ記憶部１４０に格納される。
図７は、メッセージデータ記憶部のデータ構造の一例を示す図である。メッセージデータ記憶部１４０には、復元された複数のメッセージが、時系列に格納されている。このように時系列に並べられたメッセージが、時系列データである。図７では、各メッセージの左に、メッセージデータ記憶部１４０内での行番号を示している。なお、メッセージデータ記憶部１４０には、各階層間の処理要求および応答に関連するメッセージ以外のメッセージに関しては図示を省略している。
【００７０】
各行に示されるメッセージには、日付フィールド１４１、時刻フィールド１４２、セッション番号フィールド１４３、送信元アドレスフィールド１４４、送信先アドレスフィールド１４５、コマンド種別フィールド１４６およびメッセージフィールド１４７が含まれる。
【００７１】
日付フィールド１４１は、メッセージをキャプチャした日付を示すフィールドである。
時刻フィールド１４２は、メッセージをキャプチャした時刻を示すフィールドである。
セッション番号フィールド１４３は、業務システムにおけるメッセージの送受信に用いるリソースを管理するためのセッション番号を示すフィールドである。
【００７２】
送信元アドレスフィールド１４４は、メッセージの送信元のサーバのＩＰ（Internet Protocol）アドレスおよびポート番号を示すフィールドである。
送信先アドレスフィールド１４５は、メッセージの送信先のサーバのＩＰアドレスおよびポート番号を示すフィールドである。
【００７３】
コマンド種別フィールド１４６は、コマンドのリクエスト／レスポンス属性やプロトコル（ＨＴＴＰ、ＩＩＯＰおよびＤＢクエリ用等）の種別を示すフィールドである。
メッセージフィールド１４７は、コマンド種別フィールド１４６に示されたリクエスト等のメッセージ内容を示すフィールドである。
【００７４】
このようなメッセージデータ記憶部１４０内のメッセージを参照することで、いずれのサーバに対して、どのようなメッセージが送信されたかを検出することができる。
ここで、メッセージデータ記憶部１４０内のメッセージ中のその他のＩＰアドレスと各装置との対応関係は次の通りである。
【００７５】
“１９４．２３．５．２２６”は、Ｗｅｂサーバ２１のＩＰアドレスを示す。“１９４．２３．７．１６８”は、Ａｐｐサーバ２４のＩＰアドレスを示す。“１９４．２３．８．１９８”は、ＤＢサーバのＩＰアドレスを示す。“１９４．１８５．３９．２４”は、端末装置２９ａのＩＰアドレスを示す。
【００７６】
なお、日付フィールド１４１および時刻フィールド１４２の情報として、キャプチャ部１１０が通信パケットをキャプチャしたタイミングにおけるタイムスタンプを設定するものとしたが、設定方法はこれに限らない。例えば、通信パケット中に各サーバにおけるパケットの生成時刻や送信時刻の情報が含まれている場合には、その日時を日付フィールド１４１および時刻フィールド１４２の情報としてもよい。その場合、各サーバで精度良く時刻同期が行われていることが望ましい。
【００７７】
メッセージデータ記憶部１４０に格納されたメッセージから、分析対象のサーバに入出力されたメッセージのメッセージ対が抽出され、メッセージ対記憶部１６０に格納される。
【００７８】
図８は、メッセージ対記憶部のデータ構造の一例を示す図である。なお図８には、ＤＢサーバ２６を分析対象とした場合の取得されるメッセージ対の例が示されている。メッセージ対記憶部１６０には、メッセージ対管理テーブル１６１が格納されている。メッセージ対管理テーブル１６１には、項番、リクエスト時刻、レスポンス時刻、およびプロトコルの欄が設けられている。
【００７９】
項番の欄には、メッセージ対の識別番号が設定される。
リクエスト時刻の欄には、メッセージ対に含まれるリクエストメッセージの検出時刻が設定される。
【００８０】
レスポンス時刻の欄には、メッセージ対に含まれるレスポンスメッセージの検出時刻が設定される。
プロトコルの欄には、メッセージ対に含まれるメッセージのプロトコルが設定される。
【００８１】
このようなメッセージ対に基づいて、サーバのレスポンス悪化要因が分析される。分析結果は、分析結果記憶部１８０に格納される。
図９は、分析結果記憶部のデータ構造の一例を示す図である。分析結果記憶部１８０には、レスポンス悪化要因テーブル１８１が格納されている。レスポンス悪化要因テーブル１８１には、区間、入力タイプ、出力タイプ、およびレスポンス悪化要因の欄が設けられている。
【００８２】
区間の欄には、レスポンス悪化要因の判別対象となった時間的な区間（期間）の識別番号が設定される。
入力タイプの欄には、区間内でレスポンス悪化が検出された場合における入力タイプが設定される。入力タイプには、例えば一定低レベル、一定高レベル、および一時高レベルがある。一定低レベルとは、レスポンス時間が所定の閾値以上のメッセージ対におけるリクエストメッセージの量が、区間内を通して低レベルである場合の入力タイプである。一定高レベルとは、レスポンス時間が所定の閾値以上のメッセージ対におけるリクエストメッセージの量が、区間内を通して高レベルである場合の入力タイプである。一時高レベルとは、レスポンス時間が所定の閾値以上のメッセージ対におけるリクエストメッセージの量が、区間内で一時的に高レベルとなり、それ以外は低レベルである場合の入力タイプである。
【００８３】
出力タイプの欄には、区間内でレスポンス悪化が検出された場合における出力タイプが設定される。出力タイプには、例えば一定低レベル、一定高レベル、および一時高レベルがある。一定低レベルとは、レスポンス時間が所定の閾値以上のメッセージ対におけるレスポンスメッセージの量が、区間内を通して低レベルである場合の出力タイプである。一定高レベルとは、レスポンス時間が所定の閾値以上のメッセージ対におけるレスポンスメッセージの量が、区間内を通して高レベルである場合の出力タイプである。一時高レベルとは、レスポンス時間が所定の閾値以上のメッセージ対におけるレスポンスメッセージの量が、区間内で一時的に高レベルとなり、それ以外は低レベルである場合の出力タイプである。
【００８４】
レスポンス悪化要因の欄には、区間内でレスポンス悪化が検出された場合の、その区間のレスポンス悪化要因が設定される。例えばレスポンス悪化要因としては、オーバーロード、入力サージ、競合、およびこれらの組み合わせがある。
【００８５】
次に、分析処理の手順について詳細に説明する。分析処理では、予め以下のパラメータの値が設定されているものとする。
・ΔＴ：分析時間幅（正の実数）
・ＴＨＲ：レスポンス閾値（正の整数）
・Ａ：希釈パラメータ（１以上の整数、例えば２〜３程度）
・Ｃ：頻度マージンパラメータ（１以上の整数、例えば２〜３程度）
分析時間幅ΔＴは、レスポンス悪化要因の分析を行う区間の時間幅である。観測期間を分析時間幅ΔＴの複数の区間に分割して得られた各区間が、レスポンス悪化要因の分析の対象となる。
【００８６】
レスポンス閾値ＴＨＲは、レスポンス時間の良否判定の閾値である。メッセージ対に対応する処理の処理時間が、レスポンス閾値で示される時間を超えている場合、そのメッセージ対に対応する処理は、レスポンスが悪いと判定される。
【００８７】
希釈パラメータＡは、解析対象の区間内をさらに小時間枠に分割する際の、各小時間枠の時間幅の決定に用いられるパラメータである。希釈パラメータＡの値が大きいほど、小時間枠の時間幅は小さくなる。
【００８８】
頻度マージンパラメータＣは、リクエストメッセージまたはレスポンスメッセージの集中度合いの判断に用いられるパラメータである。すなわちリクエストメッセージまたはレスポンスメッセージの検出時刻が、特定の小時間枠内に集中していれば、一時高レベルと判断できる。頻度マージンパラメータＣが大きい程、一時高レベルと判断するために要求されるメッセージの集中度合いが高くなる。
【００８９】
図１０は、分析処理の手順の一例を示すフローチャートである。以下、図１０に示す処理をステップ番号に沿って説明する。
［ステップＳ１１１］分析部１７０は、レスポンス時間がレスポンス閾値ＴＨＲ以下のメッセージ対における平均のレスポンス時間を計算し、Ｒに設定する。例えば分析部１７０は、メッセージ対管理テーブル１６１に登録された各メッセージ対のレスポンス時間を計算する。レスポンス時間は、例えばレスポンス時刻からリクエスト時刻を減算した値である。次に分析部１７０は、各メッセージ対のレスポンス時間とレスポンス閾値ＴＨＲとを比較する。さらに分析部１７０は、メッセージ対記憶部１６０から、レスポンス時間がレスポンス閾値ＴＨＲ以下のメッセージ対を抽出する。そして分析部１７０は、抽出したメッセージ対のレスポンス時間の平均を計算し、計算結果をＲに設定する。
【００９０】
［ステップＳ１１２］分析部１７０は、パケットキャプチャによる観測された期間を分析時間幅ΔＴごとの区間に分割する。分割した区間には、例えば１から昇順の識別番号が付与される。
【００９１】
［ステップＳ１１３］分析部１７０は、分割して得られたすべての区間について、ステップＳ１１３〜ステップＳ１２２の処理を実行したか否かを判断する。すべての区間について処理が完了していれば、分析部１７０は、分析処理を終了する。また、未処理の区間があれば、分析部１７０は、処理をステップＳ１１４に進める。
【００９２】
［ステップＳ１１４］分析部１７０は、未処理の区間を１つ選択し、選択した区間の識別番号をＴとする。
［ステップＳ１１５］分析部１７０は、識別番号Ｔの区間内に実行された処理のメッセージ対を、分析対象メッセージ対として抽出する。この処理の詳細は後述する（図１１参照）。
【００９３】
［ステップＳ１１６］分析部１７０は、分析期間短縮処理を行う。分析期間短縮処理は、区間内で、レスポンス時間が閾値を超えた処理が実行されていない期間を、分析対象から除外する処理である。分析部１７０は、短縮後の分析時間枠の長さをＴ’とする。この処理の詳細は後述する（図１３参照）。
【００９４】
［ステップＳ１１７］分析部１７０は、Ｔ’が０か否かを判断する。Ｔ’が０ということは、選択された区間Ｔ内で実行された処理は、すべての処理がレスポンス閾値ＴＨＲ以下の時間で完了しており、レスポンスの悪化が発生していないことを意味する。そこで分析部１７０は、Ｔ’が０であれば、以降のレスポンス悪化要因の解析処理（ステップＳ１１８〜Ｓ１２２をスキップして、処理をステップＳ１１３に進める。また分析部１７０は、Ｔ’が０でなければ、処理をステップＳ１１８に進める。
【００９５】
［ステップＳ１１８］分析部１７０は、ステップＳ１１５で抽出されたメッセージ対に基づいて、入力タイプ判定処理を行う。この処理の詳細は後述する（図１５参照）。
［ステップＳ１１９］分析部１７０は、ステップＳ１１５で抽出されたメッセージ対に基づいて、出力タイプ判定処理を行う。この処理の詳細は後述する（図１６参照）。
【００９６】
［ステップＳ１２０］分析部１７０は、判定された入力タイプと出力タイプとに基づいて、レスポンス悪化要因出力処理を行う。この処理の詳細は後述する（図１７参照）。分析部１７０は、レスポンス悪化要因出力処理が終了すると、処理をステップＳ１１３に進める。
【００９７】
このようにして、区間ごとに、レスポンス悪化の有無、およびレスポンスの悪化が存在する場合にはレスポンス悪化要因が判定される。
図１１は、分析対象メッセージ対抽出処理の手順の一例を示すフローチャートである。以下、図１１に示す処理をステップ番号に沿って説明する。
【００９８】
［ステップＳ１３１］分析部１７０は、メッセージ対記憶部１６０から、区間Ｔに実行期間が存在するメッセージ対を特定する。
［ステップＳ１３２］分析部１７０は、ステップＳ１３１で抽出したメッセージ対のうち、レスポンス時間がレスポンス閾値ＴＨＲ以上のメッセージ対を抽出し、分析対象メッセージ対として抽出する。
【００９９】
図１２は、分析対象メッセージ対の抽出例を示す図である。図１２には、観測期間が時間幅ΔＴの区間に分けられており、識別番号Ｔの区間４０における分析対象として抽出されるメッセージ対４１〜４４が示されている。メッセージ対４１〜４４は、リクエストメッセージの検出時刻からレスポンスメッセージの検出時刻までの期間を矢印で示している。
【０１００】
例えば、リクエストメッセージとレスポンスメッセージとの両方の受信時刻が区間４０内のメッセージ対４１が、分析対象として抽出される。また、リクエストメッセージの検出時刻が区間４０より前であり、レスポンスメッセージの検出時刻が区間４０より後のメッセージ対４２が、分析対象として抽出される。また、リクエストメッセージの検出時刻が区間４０より前であり、レスポンスメッセージの検出時刻が区間４０内のメッセージ対４３が、分析対象として抽出される。さらに、リクエストメッセージの検出時刻が区間４０内であり、レスポンスメッセージの検出時刻が区間４０より後のメッセージ対４４が、分析対象として抽出される。
【０１０１】
このように、リクエストメッセージの検出時刻からレスポンスメッセージの検出時刻までの期間の少なくとも一部が、分析対象の区間４０に含まれるメッセージ対が抽出される。
【０１０２】
次に、分析期間短縮処理について詳細に説明する。
図１３は、分析期間短縮処理の手順の一例を示すフローチャートである。以下、図１３に示す処理をステップ番号に沿って説明する。
【０１０３】
［ステップＳ１４１］分析部１７０は、抽出された各メッセージ対に対応する処理の実行期間の論理和をとる。メッセージ対に対応する処理の実行期間は、リクエストメッセージの検出時刻からレスポンスメッセージの検出時刻までの期間である。
【０１０４】
［ステップＳ１４２］分析部１７０は、論理和で得られた期間を、連続した時間にマッピングする。
［ステップＳ１４３］分析部１７０は、マッピング後の分析期間の長さをＴ’に設定する。
【０１０５】
図１４は、分析期間短縮処理の例を示す図である。図１４の例では、ΔＴの区間の間に、６個のメッセージ対５１〜５６が含まれている。各メッセージ対５１〜５６を示す矢印の始点がリクエストメッセージの検出時刻であり、終点がレスポンスメッセージの検出時刻である。すなわちメッセージ対のリクエストメッセージに応じてサーバで実行された処理の実行期間が、各メッセージの矢印で示されている。
【０１０６】
メッセージ対５１〜５３に対応する処理の実行期間の論理和をとると、連続の実行期間５７となる。同様にメッセージ対５４〜５６に対応する処理の実行期間の論理和をとると、連続の実行期間５８となる。実行期間５７と実行期間５８との間には、いずれの処理も実行されていない空白の期間が存在する。この空白の期間は、レスポンス閾値以上の処理時間を要した処理に対応するメッセージ対が存在しない期間である。そこで時間軸上の連続の時間に、処理実行期間５７，５８がマッピングされる。マッピングされた時間の長さがＴ’となる。
【０１０７】
このように入力タイプや出力タイプの判断前に空白の期間を除外しておくことで、レスポンス悪化要因の判定の正確性を高めることができる。すなわち、入力タイプや出力タイプの判定では、マッピングされた時間をさらに小時間枠に分割し、リクエストメッセージまたはレスポンスメッセージを含む小時間枠の割合を用いて、入力または出力タイプが判定される。この際、レスポンスの悪化と無関係の小時間枠を分析対象に含めると、そのような小時間枠の有無により判定結果が左右されてしまい、判定の正確性に欠ける可能性がある。換言すると、入力タイプや出力タイプの判断前に空白の期間を、分析対象から除外しておけば、レスポンス悪化に関係のある期間のみを用いた精度の高い判定が可能となる。
【０１０８】
次に、入力タイプ判定処理について詳細に説明する。
図１５は、入力タイプ判定処理の手順の一例を示すフローチャートである。以下、図１５の示す処理をステップ番号に沿って説明する。
【０１０９】
［ステップＳ１５１］分析部１７０は、Ｔ’を、識別番号Ｔの区間内のリクエストメッセージの数と希釈パラメータＡとで除算し、除算の結果をΔｔとする。なおリクエストメッセージの数は、ステップＳ１１５で分析対象として抽出されたメッセージ対のうち、識別番号Ｔの区間内のリクエスト時刻が設定されたメッセージ対の数である。リクエストメッセージの数をＮ（Ｎは１以上の整数）とすると、「Δｔ＝（Ｔ’／Ｎ）／Ａ」で表される。希釈パラメータＡは定数であるため、Δｔは、識別番号Ｔの区間内のリクエストメッセージの数に応じた値となる。リクエストメッセージの数が多いほど、Δｔは小さくなる。
【０１１０】
なお、識別番号Ｔの区間内のリクエストメッセージの数が０の場合も考えられる。この場合、「Δｔ＝（Ｔ’／Ｎ）／Ａ」によるΔｔの計算はできない。リクエストメッセージの数が０の場合、例えば分析部１７０は、ステップＳ１５１〜Ｓ１５８を実行せずに、入力タイプを一定低レベルに決定し、レスポンス悪化要因テーブル１８１に設定する。
【０１１１】
［ステップＳ１５２］分析部１７０は、短縮された分析期間を、Δｔ時間の小時間枠に分割し、各小時間枠内のリクエストメッセージの出現回数を計算する。なお小時間枠内のリクエストメッセージの出現回数は、ステップＳ１１５で分析対象として抽出されたメッセージ対のうち、小区間枠内のリクエスト時刻が設定されたメッセージ対の数である。この出現回数の期待値は「１／Ａ」である。
【０１１２】
［ステップＳ１５３］分析部１７０は、リクエストメッセージの出現回数が１以上の小時間枠数の、全体に対する割合を求める。例えば分析部１７０は、リクエストメッセージの出現回数が１以上の小時間枠数を、すべての小時間枠数で除算する。分析部１７０は、除算結果を、出現率Ｂに設定する。ここで、識別番号Ｔの区間内のリクエストメッセージが、すべて異なる小時間枠に分散して出現した場合、出現率Ｂの値は「１／Ａ」となる。また識別番号Ｔの区間内のリクエストメッセージが、すべて共通の小時間枠に集中して出現した場合、出現率Ｂの値は「１／（Ｎ×Ａ）」となる。すなわち、リクエストメッセージの出現する小時間枠の集中度が高いほど、出現率Ｂの値は小さくなる。
【０１１３】
［ステップＳ１５４］分析部１７０は、ステップＳ１５３で算出した出現率Ｂの値が、１を希釈パラメータＡと頻度マージンパラメータＣとで除算した値「（１／Ａ）／Ｃ）」より大きいか否かを判断する。分析部１７０は、「（１／Ａ）／Ｃ）」より出現率Ｂの値の方が大きければ、処理をステップＳ１５６に進める。また分析部１７０は、出現率Ｂが「（１／Ａ）／Ｃ）」以下であれば、処理をステップＳ１５５に進める。
【０１１４】
［ステップＳ１５５］分析部１７０は、リクエストメッセージの集中度が高いため、入力タイプを一時高レベルと判断し、レスポンス悪化要因テーブル１８１に設定する。その後、分析部１７０は入力タイプ判定処理を終了する。
【０１１５】
［ステップＳ１５６］分析部１７０は、リクエストメッセージの集中度は高くないため、入力レベルは、一定低レベルと一定高レベルとのいずれかであると判断する。そこで分析部１７０は、Δｔが、レスポンス時間がレスポンス閾値ＴＨＲ以下のメッセージ対における平均のレスポンス時間Ｒより小さいか否か「Δｔ＜Ｒ」を判断する。分析部１７０は、ΔｔがＲより小さければ、処理をステップＳ１５８に進める。また分析部１７０は、ΔｔがＲ以上であれば、処理をステップＳ１５７に進める。
【０１１６】
なお「Δｔ＝（Ｔ’／Ｎ）／Ａ」であるため、「Δｔ＜Ｒ」の式は、「（Ｔ’／Ａ）／Ｒ＜Ｎ」と変形できる。これは、レスポンス時間がレスポンス閾値ＴＨＲを超えたメッセージ対におけるリクエストメッセージの数Ｎが、所定値「（Ｔ’／Ａ）／Ｒ」より多いか否かの判定を意味する。
【０１１７】
［ステップＳ１５７］ΔｔがＲ以上の場合、メッセージ数Ｎがあまり多くないものと考えられる。この場合、分析部１７０は、入力タイプを一定低レベルと判断し、レスポンス悪化要因テーブル１８１に設定する。その後、分析部１７０は入力タイプ判定処理を終了する。
【０１１８】
［ステップＳ１５８］ΔｔがＲより小さい場合、メッセージ数Ｎが多いものと考えられる。この場合、分析部１７０は、入力タイプを一定高レベルと判断し、レスポンス悪化要因テーブル１８１に設定する。その後、分析部１７０は入力タイプ判定処理を終了する。
【０１１９】
このようにして、入力タイプが決定され、レスポンス悪化要因テーブル１８１に設定される。
次に、出力タイプ判定処理について詳細に説明する。
【０１２０】
図１６は、出力タイプ判定処理の手順の一例を示すフローチャートである。以下、図１６の示す処理をステップ番号に沿って説明する。
［ステップＳ１６１］分析部１７０は、Ｔ’を、識別番号Ｔの区間内のレスポンスメッセージの数と希釈パラメータＡとで除算し、除算の結果をΔｔとする。なおレスポンスメッセージの数は、ステップＳ１１５で分析対象として抽出されたメッセージ対のうち、識別番号Ｔの区間内のレスポンス時刻が設定されたメッセージ対の数である。レスポンスメッセージの数をＭ（Ｍは１以上の整数）とすると、「Δｔ＝（Ｔ’／Ｍ）／Ａ」で表される。希釈パラメータＡは定数であるため、Δｔは、識別番号Ｔの区間内のレスポンスメッセージの数に応じた値となる。レスポンスメッセージの数が多いほど、Δｔは小さくなる。
【０１２１】
なお、識別番号Ｔの区間内のレスポンスメッセージの数が０の場合も考えられる。この場合、「Δｔ＝（Ｔ’／Ｍ）／Ａ」によるΔｔの計算はできない。レスポンスメッセージの数が０の場合、例えば分析部１７０は、ステップＳ１６１〜Ｓ１６８を実行せずに、出力タイプを一定低レベルに決定し、レスポンス悪化要因テーブル１８１に設定する。
【０１２２】
［ステップＳ１６２］分析部１７０は、短縮された分析期間を、Δｔ時間の小時間枠に分割し、各小時間枠内のレスポンスメッセージの出現回数を計算する。なお小時間枠内のレスポンスメッセージの出現回数は、ステップＳ１１５で分析対象として抽出されたメッセージ対のうち、小区間枠内のレスポンス時刻が設定されたメッセージ対の数である。この出現回数の期待値は「１／Ａ」である。
【０１２３】
［ステップＳ１６３］分析部１７０は、レスポンスメッセージの出現回数が１以上の小時間枠数の、全体に対する割合を求める。例えば分析部１７０は、レスポンスメッセージの出現回数が１以上の小時間枠数を、すべての小時間枠数で除算する。分析部１７０は、除算結果を出現率Ｂに設定する。ここで、識別番号Ｔの区間内のレスポンスメッセージが、すべて異なる小時間枠に分散して出現した場合、出現率Ｂの値は「１／Ａ」となる。また識別番号Ｔの区間内のレスポンスメッセージが、すべて共通の小時間枠に集中して出現した場合、出現率Ｂの値は「１／（Ｍ×Ａ）」となる。すなわち、レスポンスメッセージの出現する小時間枠の集中度が高いほど、出現率Ｂの値は小さくなる。
【０１２４】
［ステップＳ１６４］分析部１７０は、ステップＳ１６３で算出した出現率Ｂの値が、１を希釈パラメータＡと頻度マージンパラメータＣとで除算した値「（１／Ａ）／Ｃ）」より大きいか否かを判断する。分析部１７０は、「（１／Ａ）／Ｃ）」より出現率Ｂの値の方が大きければ、処理をステップＳ１６６に進める。また分析部１７０は、出現率Ｂが「（１／Ａ）／Ｃ）」以下であれば、処理をステップＳ１６５に進める。
【０１２５】
［ステップＳ１６５］分析部１７０は、レスポンスメッセージの集中度が高いため、出力タイプを一時高レベルと判断し、レスポンス悪化要因テーブル１８１に設定する。その後、分析部１７０は出力タイプ判定処理を終了する。
【０１２６】
［ステップＳ１６６］分析部１７０は、レスポンスメッセージの集中度は高くないため、出力レベルは、一定低レベルと一定高レベルとのいずれかであると判断する。そこで分析部１７０は、Δｔが、レスポンス時間がレスポンス閾値ＴＨＲ以下のメッセージ対における平均のレスポンス時間Ｒより小さいか否かを判断する。分析部１７０は、ΔｔがＲより小さければ、処理をステップＳ１６８に進める。また分析部１７０は、ΔｔがＲ以上であれば、処理をステップＳ１６７に進める。
【０１２７】
なお「Δｔ＝（Ｔ’／Ｍ）／Ａ」であるため、「Δｔ＜Ｒ」の式は、「（Ｔ’／Ａ）／Ｒ＜Ｍ」と変形できる。これは、レスポンス時間がレスポンス閾値ＴＨＲを超えたメッセージ対におけるレスポンスメッセージの数Ｍが、所定値「（Ｔ’／Ａ）／Ｒ」より多いか否かの判定を意味する。
【０１２８】
［ステップＳ１６７］ΔｔがＲ以上の場合、メッセージ数Ｍがあまり多くないものと考えられる。この場合、分析部１７０は、出力タイプを一定低レベルと判断し、レスポンス悪化要因テーブル１８１に設定する。その後、分析部１７０は出力タイプ判定処理を終了する。
【０１２９】
［ステップＳ１６８］ΔｔがＲより小さい場合、メッセージ数Ｍが多いものと考えられる。この場合、分析部１７０は、出力タイプを一定高レベルと判断し、レスポンス悪化要因テーブル１８１に設定する。その後、分析部１７０は出力タイプ判定処理を終了する。
【０１３０】
このようにして、出力タイプが決定され、レスポンス悪化要因テーブル１８１に設定される。
次に、入力タイプと出力タイプとに応じたレスポンス悪化要因出力処理について詳細に説明する。
【０１３１】
図１７は、レスポンス悪化要因出力処理の手順を示すフローチャートである。以下、図１７に示す処理をステップ番号に沿って説明する。
［ステップＳ１７１］分析部１７０は、レスポンス悪化要因テーブル１８１を参照し、識別番号がＴの区間の入力タイプを判断する。分析部１７０は、入力タイプが一定低レベルであれば、処理をステップＳ１７２に進める。また分析部１７０は、入力タイプが一定高レベルであれば、処理をステップＳ１７６に進める。さらに分析部１７０は、入力タイプが一時高レベルであれば、処理をステップＳ１８０に進める。
【０１３２】
［ステップＳ１７２］分析部１７０は、レスポンス悪化要因テーブル１８１を参照し、識別番号がＴの区間の出力タイプを判断する。分析部１７０は、出力タイプが一定低レベルであれば、処理をステップＳ１７３に進める。また分析部１７０は、出力タイプが一定高レベルであれば、処理をステップＳ１７４に進める。さらに分析部１７０は、出力タイプが一時高レベルであれば、処理をステップＳ１７５に進める。
【０１３３】
［ステップＳ１７３］分析部１７０は、入力タイプが一定低レベル、出力タイプが一定低レベルの場合、レスポンス悪化要因を「競合」と判定し、判定結果をレスポンス悪化要因テーブル１８１に設定する。その後、分析部１７０は、レスポンス悪化要因出力処理を終了する。
【０１３４】
［ステップＳ１７４］分析部１７０は、入力タイプが一定低レベル、出力タイプが一定高レベルの場合、レスポンス悪化要因を「オーバーロード＋競合」と判定し、判定結果をレスポンス悪化要因テーブル１８１に設定する。その後、分析部１７０は、レスポンス悪化要因出力処理を終了する。
【０１３５】
［ステップＳ１７５］分析部１７０は、入力タイプが一定低レベル、出力タイプが一時高レベルの場合、レスポンス悪化要因を「競合」と判定し、判定結果をレスポンス悪化要因テーブル１８１に設定する。その後、分析部１７０は、レスポンス悪化要因出力処理を終了する。
【０１３６】
［ステップＳ１７６］分析部１７０は、レスポンス悪化要因テーブル１８１を参照し、識別番号がＴの区間の出力タイプを判断する。分析部１７０は、出力タイプが一定低レベルであれば、処理をステップＳ１７７に進める。また分析部１７０は、出力タイプが一定高レベルであれば、処理をステップＳ１７８に進める。さらに分析部１７０は、出力タイプが一時高レベルであれば、処理をステップＳ１７９に進める。
【０１３７】
［ステップＳ１７７］分析部１７０は、入力タイプが一定高レベル、出力タイプが一定低レベルの場合、レスポンス悪化要因を「オーバーロード＋競合」と判定し、判定結果をレスポンス悪化要因テーブル１８１に設定する。その後、分析部１７０は、レスポンス悪化要因出力処理を終了する。
【０１３８】
［ステップＳ１７８］分析部１７０は、入力タイプが一定高レベル、出力タイプが一定高レベルの場合、レスポンス悪化要因を「オーバーロード」と判定し、判定結果をレスポンス悪化要因テーブル１８１に設定する。その後、分析部１７０は、レスポンス悪化要因出力処理を終了する。
【０１３９】
［ステップＳ１７９］分析部１７０は、入力タイプが一定高レベル、出力タイプが一時高レベルの場合、レスポンス悪化要因を「オーバーロード＋競合」と判定し、判定結果をレスポンス悪化要因テーブル１８１に設定する。その後、分析部１７０は、レスポンス悪化要因出力処理を終了する。
【０１４０】
［ステップＳ１８０］分析部１７０は、レスポンス悪化要因テーブル１８１を参照し、識別番号がＴの区間の出力タイプを判断する。分析部１７０は、出力タイプが一定低レベルであれば、処理をステップＳ１８１に進める。また分析部１７０は、出力タイプが一定高レベルであれば、処理をステップＳ１８２に進める。さらに分析部１７０は、出力タイプが一時高レベルであれば、処理をステップＳ１８３に進める。
【０１４１】
［ステップＳ１８１］分析部１７０は、入力タイプが一時高レベル、出力タイプが一定低レベルの場合、レスポンス悪化要因を「入力サージ＋競合」と判定し、判定結果をレスポンス悪化要因テーブル１８１に設定する。その後、分析部１７０は、レスポンス悪化要因出力処理を終了する。
【０１４２】
［ステップＳ１８２］分析部１７０は、入力タイプが一時高レベル、出力タイプが一定高レベルの場合、レスポンス悪化要因を「入力サージ」と判定し、判定結果をレスポンス悪化要因テーブル１８１に設定する。その後、分析部１７０は、レスポンス悪化要因出力処理を終了する。
【０１４３】
［ステップＳ１８３］分析部１７０は、入力タイプが一時高レベル、出力タイプが一時高レベルの場合、レスポンス悪化要因を「入力サージ＋競合」と判定し、判定結果をレスポンス悪化要因テーブル１８１に設定する。その後、分析部１７０は、レスポンス悪化要因出力処理を終了する。
【０１４４】
このようにして、入力タイプと出力タイプとの組み合わせに応じて、レスポンス悪化要因を判定することができる。上記の判定内容をまとめると、図１８のようになる。
図１８は、レスポンス悪化要因の判定パターンを示す図である。図１８では、列の項目名として入力レベルが設定され、行の項目名として出力レベルが設定されている。各列と行の交わった位置に、列の項目名に示される入力レベルと行の項目名に示される出力レベルとの組に応じたレスポンス悪化要因が設定されている。
【０１４５】
例えば、入力一定低レベルで出力一定低レベルの場合（第１パターン）、レスポンス悪化要因は「競合」である。入力一定高レベルで出力一定低レベルの場合（第２パターン）、レスポンス悪化要因は「オーバーロード＋競合」である。入力一時高レベルで出力一定低レベルの場合（第３パターン）、レスポンス悪化要因は「入力サージ＋競合」である。
【０１４６】
また、入力一定低レベルで出力一定高レベルの場合（第４パターン）、レスポンス悪化要因は「オーバーロード＋競合」である。入力一定高レベルで出力一定高レベルの場合（第５パターン）、レスポンス悪化要因は「オーバーロード」である。入力一時高レベルで出力一定高レベルの場合（第６パターン）、レスポンス悪化要因は「入力サージ」である。
【０１４７】
さらに、入力一定低レベルで出力一時高レベルの場合（第７パターン）、レスポンス悪化要因は「競合」である。入力一定高レベルで出力一時高レベルの場合（第８パターン）、レスポンス悪化要因は「オーバーロード＋競合」である。入力一時高レベルで出力一時高レベルの場合（第９パターン）、レスポンス悪化要因は「入力サージ＋競合」である。
【０１４８】
以下、図１９〜図２３を参照し、レスポンス悪化要因ごとの、リクエスト・レスポンスメッセージ対の入力・出力頻度の時間遷移について説明する。なお図１９〜図２３では、横軸に時間、縦軸にリクエスト・レスポンスメッセージの頻度（単位時間当たりの数）を採っている。リクエスト・レスポンスメッセージの頻度には、レスポンス時間がレスポンス閾値を超えるリクエスト対に含まれるリクエストメッセージおよびレスポンスメッセージによって、計算されている。
【０１４９】
図１９は、競合発生時のリクエスト・レスポンス頻度の例を示す図である。図１９には、競合発生時のリクエストメッセージの頻度の時間遷移を表すリクエストメッセージ頻度曲線６１と、競合発生時のレスポンスメッセージの頻度の時間遷移を表すレスポンスメッセージ頻度曲線６２とが示されている。
【０１５０】
ある処理（タスク、プロセス、スレッドなど）がハードウェアまたはソフトウェア資源を長期間専有したとき、その資源が開放されるまで、その資源を利用する他の処理が待たされる。そして、専有された資源が開放されると、滞っていた処理が一気に実行される。この場合、リクエストメッセージの頻度は低いまま一定である。またレスポンスメッセージの頻度は、極めて低い値が継続した後、急激に高くなり、またすぐに低い値となる。
【０１５１】
このような競合発生時に、レスポンスメッセージ頻度が急激に高くなる前の期間を検出したのが、図１８に示す第１パターンである。また、レスポンスメッセージ頻度が一時的に高い値になる期間を含めて検出したのが、図１８に示す第７パターンである。
【０１５２】
図２０は、入力サージ発生時のリクエスト・レスポンス頻度の例を示す図である。図２０には、入力サージ発生時のリクエストメッセージ頻度曲線６３と、入力サージ発生時のレスポンスメッセージ頻度曲線６４とが示されている。
【０１５３】
入力サージ発生時には、ある一時期にリクエストメッセージが急増することで、リクエストメッセージの頻度が一時的に上がる。その後、リクエストメッセージの頻度は、低レベルで推移する。またレスポンスメッセージの頻度は、リクエストメッセージの急増がある前は低く、リクエストメッセージの急増後から高レベルで推移する。
【０１５４】
このような入力サージ発生時の一連の状態を検出したのが、図１８に示す第６パターンである。
図２１は、オーバーロード発生時のリクエスト・レスポンス頻度の例を示す図である。図２１には、オーバーロード発生時のリクエストメッセージ頻度曲線６５と、オーバーロード発生時のレスポンスメッセージ頻度曲線６６とが示されている。
【０１５５】
オーバーロード発生時には、リクエストメッセージの頻度とレスポンスメッセージの頻度とが、共に高いまま推移する。このようなオーバーロード発生時の一連の状態を検出したのが、図１８に示す第５パターンである。
【０１５６】
図２２は、入力サージ＋競合発生時のリクエスト・レスポンス頻度の例を示す図である。図２２には、入力サージ＋競合発生時のリクエストメッセージ頻度曲線６７と、入力サージ＋競合発生時のレスポンスメッセージ頻度曲線６８とが示されている。
【０１５７】
入力サージ＋競合発生時には、ある一時期にリクエストメッセージの頻度が急増することで、リクエストメッセージの頻度が一時的に上がる。その後、リクエストメッセージの頻度は、低レベルで推移する。またレスポンスメッセージの頻度は、極めて低い値が継続した後、急激に高くなり、またすぐに低い値となる。
【０１５８】
このような入力サージ＋競合発生時における、レスポンスメッセージ頻度の上昇前の期間を検出したのが、図１８に示す第３パターンである。またリクエストメッセージが高レベルから低レベルに変化した後、レスポンスメッセージ頻度の上昇前の期間を検出したのが、図１８に示す第１パターンである。さらに、入力サージ＋競合の一連の状態を通して検出したのが、図１８に示す第９パターンである。
【０１５９】
図２３は、オーバーロード＋競合発生時のリクエスト・レスポンス頻度の例を示す図である。図２３には、オーバーロード＋競合発生時のリクエストメッセージ頻度曲線６９と、オーバーロード＋競合発生時のレスポンスメッセージ頻度曲線７０とが示されている。
【０１６０】
オーバーロード＋競合発生時には、リクエストメッセージの頻度は、高レベルで推移した後、ある時期に低レベルに変化し、その後、低レベルのまま推移する。またレスポンスメッセージの頻度は、低レベルで推移した後、ある時期に高レベルに変化し、その後、高レベルのまま推移する。
【０１６１】
このようなオーバーロード＋競合発生時における、リクエストメッセージの頻度が高レベルの状態から低レベルに変化するまで、レスポンスメッセージの頻度が高レベルに変化する前を検出したのが、図１８に示す第２パターンである。また、リクエストメッセージの頻度が低レベルに変化した後から、レスポンスメッセージの頻度が高レベルに変化し、高レベルが継続するまでを検出したのが、図１８の第４パターンである。またリクエストメッセージの頻度が高レベルの状態から低レベルに変化し、さらにレスポンスメッセージの頻度が高レベルに変化したときまでを検出したのが、図１８に示す第８パターンである。そして、オーバーロード＋競合の一連の状態を通して検出したのが、図１８に示す第５パターンである。
【０１６２】
このようにして、競合、入力サージ、オーバーロード、およびこれらの組み合わせのいずれかのレスポンス悪化要因を検出することができる。
図２４は、レスポンス悪化要因判定例を示す図である。図２４の例では、ΔＴが１００ｍｓ、希釈パラメータＡが２、頻度マージンパラメータＣが２であるものとする。このとき、観測期間を１００ｍｓで分割したときの１番目の区間（０〜１００ｍｓ）のレスポンス悪化要因を分析する。
【０１６３】
まず、観測期間全体におけるレスポンス時間がレスポンス閾値ＴＨＲ（２０ｍｓ）以下のメッセージ対におけるレスポンス時間の平均Ｒが計算される。図２４の例では、Ｒ＝５ｍｓである。
【０１６４】
次に、分析対象の区間から、レスポンス時間が２０ｍｓを超えるメッセージ対が抽出される。図２４の例では、４つのメッセージ対が抽出されている。
次に抽出されたメッセージ対に対応する処理が実行されていない期間が、分析対象から除外され、分析期間が短縮される。図２４の例では、８０ｍｓ〜１００ｍｓの期間には、抽出されたメッセージ対に対応する処理は実行されていない。そこで、分析対象の期間が０ｍｓ〜８０ｍｓの期間に短縮され、Ｔ’＝８０ｍｓとなる。
【０１６５】
次に入力タイプ判定時であれば、リクエストメッセージ数に基づいてΔｔが計算される。また出力タイプ判定時であれば、レスポンスメッセージ数に基づいてΔｔが計算される。図２４の例では、区間Ｔに含まれるリクエストメッセージ数とレスポンスメッセージ数とは、共に４である。そのため、入力タイプ判定時と出力タイプ判定時とも、Δｔ＝（Ｔ’／メッセージ数）／希釈パラメータＡ＝（８０／４）／２＝１０ｍｓとなる。
【０１６６】
そこで、Ｔ’の区間が１０ｍｓごとの小区間枠に分割される。その結果、０ｍｓ〜１０ｍｓ、１０ｍｓ〜２０ｍｓ、２０ｍｓ〜３０ｍｓ、３０ｍｓ〜４０ｍｓ、４０ｍｓ〜５０ｍｓ、５０ｍｓ〜６０ｍｓ、６０ｍｓ〜７０ｍｓ、７０ｍｓ〜８０ｍｓの８つの小区間枠が生成される。
【０１６７】
ここで、入力タイプ判定時には、リクエストメッセージ出現回数が１以上の小区間枠数を、小区間枠の総数で除算した値が計算され、出現率Ｂに設定される。図２４の例では、４つのメッセージ対それぞれのリクエストメッセージの検出時刻は、すべて異なる小区間枠に属している。そのため、４つの小区間枠でリクエストメッセージの出現頻度が１以上となっている。その結果、出現率Ｂ＝４／８＝１／２となる。ここで出現率Ｂが、１を希釈パラメータＡと頻度マージンパラメータＣとで除算した値「（１／２）／２＝１／４」と比較される。するとＢ（１／２）＞１／４となる。この場合、リクエストメッセージが集中しておらず、入力タイプは、一時高レベルではないことが分かる。すなわち入力タイプが、一定低レベルまたは一定高レベルであることが分かる。
【０１６８】
また、出力タイプ判定時には、レスポンスメッセージ出現回数が１以上の小区間枠数を、小区間枠の総数で除算した値が計算され、出現率Ｂに設定される。図２４の例では、４つのメッセージ対それぞれのレスポンスメッセージの検出時刻は、すべて同一の小区間枠に属している。そのため、１つの小区間枠でレスポンスメッセージの出現頻度が１以上となっている。その結果、出現率Ｂ＝１／８となる。ここで出現率Ｂが、１を希釈パラメータＡと頻度マージンパラメータＣとで除算した値「（１／２）／２＝１／４」と比較される。するとＢ（１／８）＜１／４となる。この場合、レスポンスメッセージが集中しており、出力タイプは、一時高レベルであると判定される。
【０１６９】
入力タイプ判定時には、さらにΔｔとＲとが比較される。図２４の例では、Δｔ（１０ｍｓ）＞Ｒ（５ｍｓ）である。この場合、入力タイプは、一定低レベルであると判定される。
【０１７０】
以上より、入力タイプが一定低レベル、出力タイプが一時高レベルであることが分かった。このような入力タイプと出力タイプとの組み合わせに該当するレスポンス悪化要因は、「競合」である。従って、分析した区間Ｔのレスポンス悪化要因が「競合」であると判定される。
【０１７１】
ΔＴの時間間隔の区間ごとに判定されたレスポンス悪化要因の分析結果は、分析結果記憶部１８０内のレスポンス悪化要因テーブル１８１に設定される。そして、例えば表示部１９０によって分析結果がモニタ１１に表示される。
【０１７２】
図２５は、分析結果表示画面の一例を示す図である。分析結果表示画面８０には、横軸を時刻、縦軸をレスポンス時間とするグラフが表示されている。グラフは、例えば、単位時間内でリクエストメッセージまたはレスポンスメッセージを受信したメッセージ対の最大のレスポンス時間を示す点を、線で接続したものである。グラフ中で、レスポンス時間が過大となっている部分について、レスポンス悪化要因が視覚的に判別可能なように表示されている。図２５の例では、ハッチング種別によってレスポンス悪化要因を示している。なお、色の違いによってレスポンス悪化要因を示してもよい。
【０１７３】
図２５の例では、観測期間内に、４回のレスポンス悪化期間がある。最初のレスポンス悪化時におけるレスポンス悪化要因は、オーバーロードである。２番目のレスポンス悪化時におけるレスポンス悪化要因は、競合である。３番目のレスポンス悪化時におけるレスポンス悪化要因は、オーバーロードである。４番目のレスポンス悪化時におけるレスポンス悪化要因は、入力サージである。
【０１７４】
ユーザがこのような分析結果表示画面８０を見ることで、レスポンス悪化の発生と、その要因とを容易に認識することができる。レスポンス悪化要因をさらに詳細に分析する場合、例えば、ユーザは、分析結果表示画面８０上で一部の時間帯を選択し、その時間帯に含まれるメッセージ対の情報を抽出する。そしてユーザは、抽出されたメッセージ対の内容を画面に表示させ、より詳細なレスポンス悪化要因の分析（ドリルダウン）を行う。
【０１７５】
ところで、表示部１９０は、横軸に時刻、縦軸にレスポンス時間をとり、メッセージ対に対応する点をプロットした散布図で表すことができる。
このとき、表示部１９０は、散布図を使った対話的なデータ分析の表示モード自動変更を行うことができる。「散布図を使った対話的なデータ分析」とは散布図の一部分をマウスなどで範囲指定してデータ分析を行う分析方法である。この場合、散布図の点のうち、分析対象とするメッセージ対を示す点が矩形で囲めると、使い勝手がよい。メッセージ対を示す点を散布図にプロットする場合、リクエストメッセージ検出時刻でプロットするやり方と、レスポンスメッセージ検出時刻でプロットするやり方があるが、レスポンス悪化の要因種別によって向き不向きがある。そこで第２の実施の形態では、以下のようにプロット方法を自動選別することにより矩形による範囲指定を容易にする。
【０１７６】
図２６は、散布図の切り替え表示例を示す図である。図２６では、メッセージ対を示す点の位置を、リクエストメッセージ検出時刻に基づいて決定した散布図９１を上段に示している。またメッセージ対を示す点の位置を、レスポンスメッセージ検出時刻に基づいて決定した散布図９２を下段に示している。表示部１９０は、ユーザからの表示方法を指定する入力に応じて、２種類の散布図９１，９２を相互に切り替えて表示する。ユーザは、レスポンス悪化要因に応じて、適当な散布図を表示させ、詳細なデータ分析の対象となるメッセージ対を、矩形で囲むことができる。さらに、表示部１９０は、例えばユーザからの入力に応じて、矩形内に含まれる点に対応するメッセージ対の情報を表示する。ユーザは、表示された情報に基づいて、ドリルダウンなどの手法によるさらに詳細な分析を行うことができる。
【０１７７】
例えばレスポンス悪化要因が入力サージの場合、リクエストメッセージが短時間に集中して発生したことが原因である。すると、集中して発生したリクエストメッセージに対応する点の集合を矩形９１ａで囲み、囲まれた点で示されるメッセージ対の内容を分析するには、リクエストメッセージ受信時間で点をプロットした散布図９１の方が囲みやすい。
【０１７８】
またレスポンス悪化要因が競合の場合、資源を専有していた処理がその資源を開放することで、競合によって他の滞っていた多数の処理が進行し、短時間に多数のレスポンスメッセージが出力される。すると、集中して発生したレスポンスメッセージに対応する点の集合を矩形９２ａで囲み、囲まれた点で示されるメッセージ対の内容を分析するには、レスポンスメッセージ受信時間で点をプロットした散布図９２の方が囲みやすい。
【０１７９】
以上説明したように、サーバで実行された処理に関するリクエストメッセージとレスポンスメッセージとの検出時刻に基づいて、レスポンス悪化の発生の有無、およびレスポンス悪化が発生した場合における悪化要因を判定することができる。その結果、ユーザは、レスポンス悪化への適切な対処を迅速に行うことができる。例えばオーバーロードが発生している期間があれば、分析対象のサーバの資源を増強することで、以後のオーバーロードの発生を抑止できる。また競合が発生している期間があれば、資源の競合が発生しないように、分析対象のサーバ内部での設定変更が行われる。また入力サージが発生している期間があれば、リクエストメッセージの同時多発を抑止するように、分析対象のサーバにリクエストメッセージを送信している他のサーバの設定変更が行われる。
【０１８０】
しかも第２の実施の形態では、レスポンス時間が閾値より悪いメッセージ対に、解析対象の絞り込みを行ってから分析を行っているため、単発で発生した性能悪化についても検出し、要因を分析できる。
【０１８１】
〔その他の実施の形態〕
なお、上記の各実施の形態に示した処理機能を、分析サーバ１００などのコンピュータに実行させる場合、情報処理装置１または分析サーバ１００が有する機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＤＶＤ、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ／ＲＷなどがある。光磁気記録媒体には、ＭＯ（Magneto-Optical disk）などがある。なおプログラムを記録する記録媒体には、一時的な伝搬信号自体は含まれない。
【０１８２】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１８３】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【０１８４】
また、上記の処理機能の少なくとも一部を、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、ＰＬＤ（Programmable Logic Device）などの電子回路で実現することもできる。
【０１８５】
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の２以上の構成（特徴）を組み合わせたものであってもよい。
【符号の説明】
【０１８６】
１  情報処理装置
１ａ  記憶手段
１ｂ  抽出手段
１ｃ  第１の分析手段
１ｄ  第２の分析手段
１ｅ  判定手段
２  分析対象装置
３  端末装置
４  処理要求
５  応答
【図１】
0005794181.tif 000002
【図２】
0005794181.tif 000003
【図３】
0005794181.tif 000004
【図４】
0005794181.tif 000005
【図５】
0005794181.tif 000006
【図６】
0005794181.tif 000007
【図７】
0005794181.tif 000008
【図８】
0005794181.tif 000009
【図９】
0005794181.tif 000010
【図１０】
0005794181.tif 000011
【図１１】
0005794181.tif 000012
【図１２】
0005794181.tif 000013
【図１３】
0005794181.tif 000014
【図１４】
0005794181.tif 000015
【図１５】
0005794181.tif 000016
【図１６】
0005794181.tif 000017
【図１７】
0005794181.tif 000018
【図１８】
0005794181.tif 000019
【図１９】
0005794181.tif 000020
【図２０】
0005794181.tif 000021
【図２１】
0005794181.tif 000022
【図２２】
0005794181.tif 000023
【図２３】
0005794181.tif 000024
【図２４】
0005794181.tif 000025
【図２５】
0005794181.tif 000026
【図２６】
0005794181.tif 000027