(57)【要約】【課題】情報処理システムの性能を、その運用を妨げることなく解析する。【解決手段】本発明に係る解析装置は、予め定められた解析期間内においてそれぞれの情報処理装置が互いに送受信した複数の通信パケットを取得する取得部と、解析期間を分割した複数の分割期間のそれぞれについて、それぞれの情報処理装置が他の情報処理装置から呼び出されたサービスの呼出回数を通信パケットに基づいて算出する回数算出部と、複数の分割期間のそれぞれについて、それぞれの情報処理装置がトランザクションを実行している時間の合計であるビジー時間を算出するビジー時間算出部と、それぞれの分割期間についてのビジー時間と、当該分割期間におけるサービス毎の呼出回数に当該サービスを処理するトランザクションの平均の処理時間を乗じた合計との差の大きさを示す指標を最小化するサービス毎の平均の処理時間を算出するサービスデマンド算出部とを備える。【選択図】図２
2007310462.tif 000002
【特許請求の範囲】
【請求項１】
各々が互いにサービスを提供する複数の情報処理装置を有する情報処理システムを解析する解析装置であって、
解析の対象として予め定められた解析期間内においてそれぞれの前記情報処理装置が互いに送受信した複数の通信パケットを取得する取得部と、
前記解析期間を分割した複数の分割期間のそれぞれについて、それぞれの前記情報処理装置が他の情報処理装置から呼び出されたサービスの呼出回数を、当該分割期間に取得した通信パケットに基づいて算出する回数算出部と、
前記複数の分割期間のそれぞれについて、それぞれの情報処理装置がサービスの処理であるトランザクションを実行している時間の合計であるビジー時間を算出するビジー時間算出部と、
それぞれの前記分割期間についての前記ビジー時間と、当該分割期間におけるサービス毎の前記呼出回数に当該サービスを処理するトランザクションの平均の処理時間を乗じた合計との差の大きさを示す指標を最小化する、サービス毎の前記平均の処理時間を算出するサービスデマンド算出部と
を備える解析装置。
【請求項２】
前記取得部は、前記複数の情報処理装置が互いに通信するための通信回線によって転送される通信パケットの複写データを、前記通信回線に接続された通信装置から取得する
請求項１に記載の解析装置。
【請求項３】
前記回数算出部は、それぞれの前記分割期間について、当該分割期間に取得したそれぞれの通信パケットがサービスを呼び出すための通信パケットか否かを、当該通信パケットに含まれる宛先ＵＲＬまたはサービスの識別情報によって判断し、それぞれのサービスを呼び出すための通信パケットの数を当該サービスの前記呼出回数として算出する
請求項１に記載の解析装置。
【請求項４】
前記ビジー時間算出部は、それぞれの前記情報処理装置について、当該情報処理装置のサービスを呼び出す通信パケットを取得してから、当該情報処理装置からサービスの処理結果が返答される通信パケットを取得するまでの期間を、当該情報処理装置がトランザクションを処理している期間と判断し、それぞれの前記情報処理装置について判断した当該期間の合計をビジー時間として算出する
請求項１に記載の解析装置。
【請求項５】
前記ビジー時間算出部は、それぞれの前記情報処理装置について、当該情報処理装置のサービスを呼び出す通信パケットを取得してから、当該情報処理装置からサービスの処理結果が返答される通信パケットを取得するまでの期間であっても、当該情報処理装置から他の情報処理装置に対し他のサービスを呼び出す通信パケットを取得してから、当該他の情報処理装置から当該情報処理装置に対し当該他のサービスの結果が返答される通信パケットを取得するまでの期間は、当該情報処理装置がトランザクションを処理していない期間と判断する
請求項４に記載の解析装置。
【請求項６】
サービス毎の前記平均の処理時間と、それぞれの前記情報処理装置が他のそれぞれの前記情報処理装置のサービスを呼び出す呼出関係とに基づいて、前記情報処理システムの構成変更に応じ性能がどのように変化するかを求める性能評価モデルを生成するモデル生成部を更に備える請求項１に記載の解析装置。
【請求項７】
前記サービスデマンド算出部は、それぞれの前記分割期間における前記差の２乗和を最小化する前記平均の処理時間を求める正規方程式を生成し、前記正規方程式を解くことによりサービス毎の前記平均の処理時間を算出する
請求項１に記載の解析装置。
【請求項８】
前記正規方程式は、サービス毎かつ分割期間毎の前記呼出回数を行および列に配列した行列と前記行列の転置行列との積を、サービス毎の前記平均の処理時間を示す変数ベクトルの係数行列とした式と、分割期間毎の前記ビジー時間を示すベクトルと前記転置行列の積とが等しいとする方程式である
請求項７に記載の解析装置。
【請求項９】
前記取得部は、それぞれの前記分割期間について、当該分割期間内においてそれぞれの前記情報処理装置が互いに送受信した複数の通信パケットを順次取得し、
前記回数算出部は、それぞれの前記分割期間が経過する毎に、当該分割期間においてそれぞれの前記情報処理装置が他の情報処理装置から呼び出されたサービスの呼出回数を算出し、
前記ビジー時間算出部は、それぞれの前記分割期間が経過する毎に、当該分割期間においてそれぞれの情報処理装置がサービスの処理であるトランザクションを実行している時間の合計であるビジー時間を算出し、
前記サービスデマンド算出部は、
既に経過した複数の分割期間について、サービス毎の前記平均の処理時間を示す変数ベクトルの係数行列と、分割期間毎の前記ビジー時間を示すベクトルと前記転置行列の積から求まる定数ベクトルからなる拡大係数行列を記憶する拡大係数行列記憶部と、
新たな分割期間について前記呼出回数と前記ビジー時間とが算出されたことに応じ、当該新たな分割期間を含む複数の分割期間についての正規方程式を、前記拡大係数行列記憶部に記憶された前記拡大係数行列と、当該新たな分割期間についての前記呼び出し回数と前記ビジー時間とに基づいて生成する正規方程式生成部と、
生成された前記正規方程式における、拡大係数行列に基づいて、前記拡大係数行列記憶部を更新する拡大係数行列更新部と、
生成された前記正規方程式を解くことによりサービス毎の前記平均の処理時間を算出して出力する演算部と
を有する請求項８に記載の解析装置。
【請求項１０】
前記サービスデマンド算出部は、
生成された前記正規方程式における、サービス毎の前記平均の処理時間を示す変数ベクトルの係数行列について、逆行列の対角成分を当該平均の処理時間の推定誤差として算出する推定誤差算出部を更に有し、
前記演算部は、算出された前記推定誤差が予め定められた基準を満たすことを条件に、算出したサービス毎の前記平均の処理時間を出力する
請求項９に記載の解析装置。
【請求項１１】
既に経過した複数の分割期間について、第１のサービスの分割期間毎の前記呼出回数を示す第１のベクトルと、第２のサービスの分割期間毎の前記呼出回数を示す第２のベクトルとの内積、および、前記第１のベクトルおよび前記第２のベクトルの長さを、サービス毎の前記平均の処理時間を示す変数ベクトルの係数行列に基づいて算出することにより、前記第１のベクトルおよび前記第２のベクトルのなす角を算出する角度算出部を更に備え、
前記回数算出部は、前記第１のベクトルおよび前記第２のベクトルのなす角が予め定められた基準以下であることを条件に、前記既に経過した複数の分割期間の次の分割期間以降においては、前記第１のサービスおよび前記第２のサービスの前記呼出回数を合計して新たな第３のサービスについての前記呼出回数を算出し、
前記演算部は、次の前記分割期間以降においては、前記第１のサービスおよび前記第２のサービスに代えて前記第３のサービスの前記平均の処理時間を算出する
請求項９に記載の解析装置。
【請求項１２】
前記第１のベクトルおよび前記第２のベクトルのなす角が前記基準以下であることを条件に、更に、
前記拡大係数行列更新部は、生成された前記正規方程式において、サービス毎の前記平均の処理時間を示す変数ベクトルの係数行列のうち前記第１のベクトルから生成された行の各成分と、前記第２のベクトルから生成された行の各成分とを合計して新たな行を生成し、また、当該係数行列のうち前記第１のベクトルから生成された列の各成分と、前記第２のベクトルから生成された列の各成分とを合計して新たな行を生成し、新たな係数行列に含めて前記拡大係数行列記憶部に記憶する
請求項１１に記載の解析装置。
【請求項１３】
各々が互いにサービスを提供する複数の情報処理装置を有する情報処理システムを解析する解析方法であって、
解析の対象として予め定められた解析期間内においてそれぞれの前記情報処理装置が互いに送受信した複数の通信パケットを取得するステップと、
前記解析期間を分割した複数の分割期間のそれぞれについて、それぞれの前記情報処理装置が他の情報処理装置から呼び出されたサービスの呼出回数を、当該分割期間に取得した通信パケットに基づいて算出するステップと、
前記複数の分割期間のそれぞれについて、それぞれの情報処理装置がサービスの処理であるトランザクションを実行している時間の合計であるビジー時間を算出するステップと、
それぞれの前記分割期間についての前記ビジー時間と、当該分割期間におけるサービス毎の前記呼出回数に当該サービスを処理するトランザクションの平均の処理時間を乗じた合計との差の大きさを示す指標を最小化する、サービス毎の前記平均の処理時間を算出するステップと、
を備える解析方法。
【請求項１４】
各々が互いにサービスを提供する複数の情報処理装置を有する情報処理システムを解析する解析装置として、コンピュータを機能させるプログラムであって、
前記コンピュータを、
解析の対象として予め定められた解析期間内においてそれぞれの前記情報処理装置が互いに送受信した複数の通信パケットを取得する取得部と、
前記解析期間を分割した複数の分割期間のそれぞれについて、それぞれの前記情報処理装置が他の情報処理装置から呼び出されたサービスの呼出回数を、当該分割期間に取得した通信パケットに基づいて算出する回数算出部と、
前記複数の分割期間のそれぞれについて、それぞれの情報処理装置がサービスの処理であるトランザクションを実行している時間の合計であるビジー時間を算出するビジー時間算出部と、
それぞれの前記分割期間についての前記ビジー時間と、当該分割期間におけるサービス毎の前記呼出回数に当該サービスを処理するトランザクションの平均の処理時間を乗じた合計との差の大きさを示す指標を最小化する、サービス毎の前記平均の処理時間を算出するサービスデマンド算出部と
して機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システムの性能を解析する技術に関する。特に、本発明は、各々が互いにサービスを提供する複数の情報処理装置を有する情報処理システムの性能を解析する装置および方法に関する。
【背景技術】
【０００２】
近年、情報処理システムは従来のホストシステムから複数の情報処理装置が協調して動作する分散系システムに移行しつつある。このような分散系の情報処理システムでは、ある情報処理装置は利用者の要求に応じ他の情報処理装置に処理を振り分け、他の情報処理装置は振り分けられた処理を実行し、結果を利用者に送信することで利用者の要求の処理を実現している。
【０００３】
情報処理システムに性能障害が発生すると、新たな情報処理装置を追加する等の構成変更が必要となる。しかしながら、情報処理システムが複数の情報処理装置によって構成されている場合には、何れの種類の情報処理装置を追加するべきかの判断は容易でない。このような判断を支援するために、従来、性能評価モデルが提案されている（非特許文献１を参照）。性能評価モデルとは、たとえば、URL、SQLといったサービスのレベルの粒度を持つ待ち行列モデルや離散イベントシミュレーターなどである。これにより、情報処理システム内部の振る舞いを解析することができる。
【０００４】
【特許文献１】特開２００４−３４８４９１号公報
【特許文献２】特開平９−３１１７８２号公報
【特許文献３】特開２００５−１９０２７７号公報
【非特許文献１】J. A. Rolia and K. C. Sevcik, "The method of layers," IEEE Transactions on Software Engineering, 21, 1995
【発明の開示】
【発明が解決しようとする課題】
【０００５】
性能評価モデルを生成するためには、サービス毎の平均の処理時間（以降、サービスデマンドと呼ぶ）が必要となる。サービスデマンドを精度良く推定するためには、様々な種類のトランザクションを実際に実行させ、そのそれぞれのサービスの処理時間を計測する必要がある。しかしながら、情報処理システムが企業の基幹業務を担っている今日においては、情報処理システムの運用を継続しながら障害に対処することが求められ、運用を停止して様々な種類のトランザクションを実際に実行させることはできない。従って、充分に高い精度のサービスデマンドを算出するためには、運用中の情報処理システムを長期間に渡って観測する必要がある。
【０００６】
また、実際の情報処理システムを模したテストシステムを構築し、そのテストシステムの振る舞いを解析することにより、実際の情報処理システムにおいて変更すべき構成を判断する方法も考えられる。しかしながら、実際の情報処理システムは数百台の情報処理装置によって構築されている場合があり、それと同等な規模のテストシステムを構築することができない場合がある。なお、テストシステムなどに適用可能な技術については特許文献１または２を参照されたい。また、情報処理システムを開発したエンジニアであれば、開発時の経験に基づいてサービスデマンドをある程度予想できる場合もある。しかしながら、情報処理システムを開発するエンジニアと情報処理システムを運用・管理するエンジニアは異なり、情報処理システムを開発したエンジニアが障害対応に携われない場合も多い。
【０００７】
そこで本発明は、上記の課題を解決することのできる解析装置、解析方法、および、プログラムを提供することを目的とする。この目的は特許請求の範囲における独立項に記載の特徴の組み合わせにより達成される。また従属項は本発明の更なる有利な具体例を規定する。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、本発明の第１の形態においては、各々が互いにサービスを提供する複数の情報処理装置を有する情報処理システムを解析する解析装置であって、解析の対象として予め定められた解析期間内においてそれぞれの情報処理装置が互いに送受信した複数の通信パケットを取得する取得部と、解析期間を分割した複数の分割期間のそれぞれについて、それぞれの情報処理装置が他の情報処理装置から呼び出されたサービスの呼出回数を、当該分割期間に取得した通信パケットに基づいて算出する回数算出部と、複数の分割期間のそれぞれについて、それぞれの情報処理装置がサービスの処理であるトランザクションを実行している時間の合計であるビジー時間を算出するビジー時間算出部と、それぞれの分割期間についてのビジー時間と、当該分割期間におけるサービス毎の呼出回数に当該サービスを処理するトランザクションの平均の処理時間を乗じた合計との差の大きさを示す指標を最小化する、サービス毎の平均の処理時間を算出するサービスデマンド算出部とを備える解析装置を提供する。
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではなく、これらの特徴群のサブコンビネーションもまた、発明となりうる。
【発明の効果】
【０００９】
本発明によれば、複数の情報処理装置を有する情報処理システムの性能を、その運用を妨げることなく解析することができる。
【発明を実施するための最良の形態】
【００１０】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではなく、また実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【００１１】
図１は、情報処理システム１０の全体構成を示す。情報処理システム１０は、例えば、外部ネットワーク１５上のコンピュータから受けた要求に応じウェブページを返信するウェブ・システムである。情報処理システム１０は、通信装置１００と、各々が互いにサービスを提供する複数の情報処理装置１１０とを有する。通信装置１００は、例えばネットワーク・スイッチ、ゲートウェイ、または、ルータなどであり、外部ネットワーク１５から受信した要求を何れかの情報処理装置１１０に送信する。複数の情報処理装置１１０のそれぞれは、互いに通信するための通信回線により接続されており、他のそれぞれの情報処理装置１１０に対しサービスを提供する。例えば、ある情報処理装置１１０は、外部ネットワーク１５から要求を受け、または、その要求に応じたトランザクションの結果を外部ネットワーク１５に返答するウェブ・サーバとして機能する。また、他の情報処理装置１１０は、外部ネットワーク１５から受けた要求に応じたトランザクションを行うアプリケーション・サーバとして機能する。また、他の情報処理装置１１０は、トランザクションに必要なデータベースを管理するデータベース・サーバとして機能する。
【００１２】
情報処理システム１０に性能障害が発生すると、情報処理システム１０の構成を変更する必要が生じる場合がある。例えば、外部ネットワーク１５から情報処理システム１０に対する要求が集中すると、情報処理装置１１０がそれらの要求を処理し切れず、返答の遅延などを生じさせてしまう場合がある。そのような場合には、情報処理システム１０に新たな情報処理装置を加えて処理能力を向上させることが望ましい。しかしながら、情報処理システム１０の構成をどのように変更すべきかを判断するのは困難な場合がある。
本実施形態に係る解析装置２０は、情報処理システム１０の性能を解析することによって、それぞれの情報処理装置１１０がサービスの処理に要する時間などを推定することで、構成変更の判断を支援することを目的とする。解析装置２０によると、性能の解析には通信装置１００から取得した通信パケットの複写データを用いるので、性能の解析中にも運用に影響を与えることなく情報処理システム１０の動作を継続させることができる。
【００１３】
以降、情報処理システム１０がオンラインの株式取引口座の管理を行う場合を例に、解析装置２０の機能を説明する。
図２は、解析装置２０の機能構成を示す。解析装置２０は、取得部２００と、回数算出部２１０と、ビジー時間算出部２２０と、サービスデマンド算出部２４０と、呼出関係解析部２５０と、モデル生成部２６０とを有する。取得部２００は、解析の対象として予め定められた解析期間内においてそれぞれの情報処理システム１０が互いに送受信した複数の通信パケットを取得する。具体的には、取得部２００は、通信回線によって転送される通信パケットの複写データを、その通信回線に接続された通信装置１００から取得する。一例として、取得部２００は、通信装置１００がＬＡＮ側の通信パケットを複写して出力するミラーポートから通信パケットの複写データを取得し、UNIX(登録商標)系オペレーティングシステムのtcpdumpコマンドなどを実行することによって、その複写データのダンプデータを生成してもよい。これに代えて、取得部２００は、ＬＡＮの内部で複数の情報処理装置１１０を相互に接続する他のネットワーク・スイッチから通信パケットの複写データを取得してもよい。
【００１４】
回数算出部２１０は、解析期間を分割した複数の分割期間のそれぞれについて、それぞれの情報処理装置１１０が他の情報処理装置１１０から呼び出されたサービスの呼出回数を、その分割期間に取得した通信パケットに基づいて算出する。例えば、回数算出部２１０は、それぞれの分割期間について、その分割期間に取得したそれぞれの通信パケットがサービスを呼び出すための通信パケットか否かを、その通信パケットに含まれる宛先ＵＲＬまたはサービスの識別情報によって判断する。具体的には、ある通信パケットに含まれる宛先ＵＲＬが「http://www. △△.com/trade/app?action=login」であれば、回数算出部２１０は、その通信パケットが、株式取引口座へのログインのサービスを呼び出すための通信パケットと判断する。また、他の通信パケットに含まれる宛先ＵＲＬが「http://www. △△.com/trade/app?action=account」であれば、回数算出部２１０は、その通信パケットが、株式取引口座の内容を参照するサービスを呼び出すための通信パケットと判断する。そして、回数算出部２１０は、それぞれのサービスを呼び出すための通信パケットの数をそのサービスの呼出回数として算出する。これに代えて、回数算出部２１０は、サービスの呼出に対しその結果を返答する通信パケットの数を、そのサービスの呼出回数として算出してもよい。
【００１５】
ビジー時間算出部２２０は、複数の分割期間のそれぞれについて、それぞれの情報処理装置１１０がサービスの処理であるトランザクションを実行している時間の合計であるビジー時間を算出する。例えば、ビジー時間算出部２２０は、それぞれの情報処理装置１１０について、当該情報処理装置１１０のサービスを呼び出す通信パケットを取得してから、当該情報処理装置１１０からサービスの処理結果が返答される通信パケットを取得するまでの期間を、当該情報処理装置１１０がトランザクションを処理している時間と判断する。そして、ビジー時間算出部２２０は、それぞれの情報処理装置１１０について判断した当該期間の合計をビジー時間として算出する。
なお、１つのトランザクションの呼び出しが複数の通信パケットによって構成される場合や、１つのトランザクションの返答が複数の通信パケットによって構成される場合は、呼び出しの複数の通信パケットのうち選ばれた１つの通信パケットを取得してから、返信の複数の通信パケットのうち選ばれた１つの通信パケットを取得するまでの期間を、トランザクションを処理している期間として判断する。この選び方は、どのようなサービスをどのような基準でビジー時間を取得したいかに依存する。例えば、複数の通信パケットにより構成される呼び出しの最初の通信パケットを受信してからトランザクションの処理が始まり、複数の通信パケットにより構成される処理結果を送信している間も処理が続き、最後の通信パケットを送信して処理が完了するサービスの場合には、サービスを呼び出す複数の通信パケットのうち最初の通信パケットを取得してから、サービスの処理結果が返信される複数の通信パケットのうち最後の通信パケットを取得するまでの期間を、トランザクションを処理している期間として判断する。
【００１６】
なお、ある情報処理装置１１０が２以上のトランザクションを処理している期間もビジー時間として算出される。これを実現するために、ビジー時間算出部２２０は、それぞれの情報処理装置１１０に対応付けて、その情報処理装置１１０において処理されているトランザクションの数をカウントするカウンタを有してもよい。この場合、ビジー時間算出部２２０は、ある情報処理装置１１０のサービスを呼び出す通信パケットを取得すると、その情報処理装置１１０に対応するカウンタをインクリメントし、そのサービスの処理結果が返答される通信パケットを取得すると、そのカウンタをデクリメントする。そして、ビジー時間算出部２２０は、それぞれの情報処理装置１１０に対応するカウンタの値が１以上であった期間の合計をビジー時間として算出する。
【００１７】
また、あるトランザクションが他のトランザクションの処理待ち状態である場合には、そのトランザクションを処理している時間はビジー時間から除外される。即ち、ビジー時間算出部２２０は、それぞれの情報処理装置１１０について、当該情報処理装置１１０のサービスを呼び出す通信パケットを取得してから、当該情報処理装置１１０からサービスの処理結果が返答されるまでの期間であっても、当該情報処理装置１１０から他の情報処理装置１１０に対し他のサービスを呼び出す通信パケットを取得してから、当該他の情報処理装置１１０から当該情報処理装置１１０に対し当該他のサービスの結果が返答される通信パケットを取得するまでの期間は、当該情報処理装置１１０がトランザクションを処理していない期間と判断する。これを実現するために、ビジー時間算出部２２０は、ある情報処理装置１１０から他の情報処理装置１１０に対しサービスを呼び出す通信パケットを取得すると、当該情報処理装置１１０に対応するカウンタをデクリメントし、そのサービスの処理結果が返答される通信パケットを取得すると、そのカウンタをインクリメントする。これにより、カウンタの値が１以上であった期間合計をビジー時間とすることができる。
【００１８】
サービスデマンド算出部２４０は、分割期間毎に算出されたビジー時間および呼出回数に基づいて、サービス毎の平均の処理時間（サービスデマンド）を算出する。ビジー時間および呼出回数を厳密に算出できた場合、それぞれのサービスの呼出回数に、そのサービスを処理するトランザクションの平均の処理時間を乗じて合計すると、その分割期間のビジー時間と等しくなるはずである。このため、ビジー時間、呼出回数、および、処理時間の関係を示す方程式を解けば、サービスデマンドを求めることができるとも考えられる。しかしながら、ビジー時間や呼出回数の算出には誤差が生じる場合があり、この方程式を解くことによってはサービスデマンドを算出できない場合が多い。これに対し、本実施形態に係るサービスデマンド算出部２４０は、それぞれの分割期間についてのビジー時間と、当該分割期間におけるサービス毎の呼出回数に当該サービスを処理するトランザクションの平均の処理時間を乗じた合計との差の大きさを示す指標を最小化するサービスデマンドを算出する。例えば、サービスデマンド算出部２４０は、それぞれの分割期間における当該差の２乗和を最小化するための平均の処理時間を求める正規方程式を生成し、その正規方程式を解くことによりサービスデマンドを算出してもよい。差の大きさを示す指標とは、分割期間毎の当該差の２乗和に代え、当該差の絶対値の和などであってもよい。この指標を算出する演算は、それぞれの分割期間における当該差を入力とした任意の関数によって表されるものである。
【００１９】
呼出関係解析部２５０は、それぞれのサービスの呼出関係を解析する。呼出関係とは、あるサービスのトランザクションの処理中に、他のサービスのトランザクションの処理が必要となり当該他のサービスのトランザクションの処理が完了するまで処理待ち状態で待機する関係をいう。例えば、あるアプリケーション・サービスの処理中に、データベース・サーバへのアクセスが必要となるような関係をいう。呼出関係解析部２５０は、例えば、通信パケットのダンプデータに基づいて呼出関係を解析してもよい。一例として、呼出関係解析部２５０は、より先に開始され、かつより後に完了するトランザクションを、より後に開始され、かつより先に完了するトランザクションの親トランザクションと判断してもよい。詳しくは、特許文献３を参照されたい。これに代えて、サービスの呼出関係は、エンジニアなどによる入力によって予め与えられるものであってもよい。
【００２０】
モデル生成部２６０は、サービス毎の平均の処理時間と、それぞれの情報処理装置１１０が他のそれぞれの情報処理装置１１０のサービスを呼び出す呼出関係と、予め定められた情報処理システム１０の構成を示す情報とに基づいて、性能評価モデルを生成する。具体的には、モデル生成部２６０は、予め用意された階層型待ち行列網モデルまたは離散イベントシミュレーターに対し、サービスデマンド、情報処理システム１０の構成情報、および、呼出関係をパラメータとして与えることにより、性能評価モデルを生成してもよい。その一例は特許文献２に詳しいので説明を省略する。性能評価モデルを用いれば、例えば、情報処理システム１０の構成変更に応じ情報処理システムの性能がどのように変化するかを求めることができる。
【００２１】
続いて、図３を参照してサービス毎の平均の処理時間を算出する処理機能について説明する。それぞれのサービスの処理時間を精度良く算出するためには、複数のサービスが様々な混合比で処理されることが望ましい。しかしながら、解析期間が短いとサービスの混合比がほとんど変化しない場合がある。したがって、充分に長い解析期間が経過してから処理時間を算出すれば処理時間の算出精度を高めることができる。一方で、解析期間が長いと算出に必要なデータ量が増大し、解析装置２０に備える記憶装置の必要容量が増大してしまう。このため、サービスデマンド算出部２４０は、解析期間を構成する複数の分割期間のそれぞれが経過する毎に、既に経過した分割期間において得られた通信パケットに基づいてサービスデマンドの算出を試みる。サービスデマンド算出部２４０は、算出されたサービスデマンドが充分に高精度であればそれを出力し、そうでなければ以降の分割期間が経過する毎に同様の処理を繰り返す。これにより、解析装置２０には必要かつ充分な量のデータを記憶すればよく、かつ、算出完了までの所要時間を削減できる。以下、図３を参照して、この処理機能について説明する。
【００２２】
図３は、サービスデマンド算出部２４０の機能構成を示す。サービスデマンド算出部２４０は、拡大係数行列記憶部３００と、正規方程式生成部３１０と、拡大係数行列更新部３２０と、演算部３３０と、推定誤差算出部３４０とを有する。拡大係数行列記憶部３００は、解析期間のうち既に経過した複数の分割期間について、サービスデマンドを示す変数ベクトルの係数行列と、分割期間毎のビジー時間を示すベクトルとサービス毎かつ分割期間毎の呼出回数を行および列に配列した行列の転置行列の積で求まる定数ベクトルからなる拡大係数行列とを記憶する。正規方程式生成部３１０は、新たな分割期間について通信パケットが取得されると、当該新たな分割期間を含む複数の分割期間についての正規方程式を生成する。この新たな正規方程式は、拡大係数行列記憶部３００に記憶された拡大係数行列と当該新たな分割期間におけるビジー時間およびサービス毎の呼び出し回数に基づいて生成される。なお、この正規方程式は、上述のように、誤差の２乗和を最小化するための平均の処理時間を求める方程式である。
【００２３】
拡大係数行列更新部３２０は、生成された正規方程式の拡大係数行列を基に、拡大係数行列記憶部３００を更新する。そして、演算部３３０は、生成されたこの正規方程式を解くことによりサービスデマンドを算出する。推定誤差算出部３４０は、サービスデマンドの推定誤差を算出する。演算部３３０は、この推定誤差が予め定められた基準を満たすことを条件に、算出したサービスデマンドを出力する。
【００２４】
このように、サービスデマンド算出部２４０は、分割期間が経過する毎に、新たに得られた呼出回数およびビジー時間を用いて、サービスデマンドを算出する。そして、その推定誤差が基準を満たす場合には、算出されたその処理時間が出力される。このようにすることで、充分な推定精度が得られた時点で処理時間の算出を完了でき、算出までに要する時間を短縮できる。また、処理時間の算出は前回の分割期間における正規方程式を利用することで、算出処理を効率化できる。
【００２５】
なお、サービスデマンド算出部２４０は更に角度算出部３５０を有してもよい。角度算出部３５０は、サービス毎の平均の処理時間を効率的に算出するべく、複数のサービスが従属的な関係か否かを判断する。例えば、ログイン処理のサービスとログアウト処理のサービスとは、ほぼ同一の回数で処理されることが予想される。このようなサービスを区別して取り扱うと、サービスの種類が多くなり計算の効率が低下する恐れがある。また、このようなサービスが区別されると、正規方程式の係数行列は正則とならず、正規方程式を解けない恐れがある。角度算出部３５０は、複数のサービスが従属的な関係か否かを判断するべく、第１サービスの分割期間毎の呼出回数を示す第１のベクトルと、第２のサービスの分割期間毎の呼出回数を示す第２のベクトルとのなす角を算出する。なす角が予め定められた基準以下であれば、角度算出部３５０は、第１のサービスと第２のサービスとを併合して第３のサービスとして取り扱うことを指示するマージ指示を、回数算出部２１０および演算部３３０に送る。これを受けて、回数算出部２１０は、次の分割期間以降においては、第１のサービスおよび第２のサービスの呼出回数を合計して第３のサービスについての呼出回数を算出する。また、演算部３３０は、第１のサービスおよび第２のサービスに代えて第３のサービスの平均の処理時間を算出する。このように、角度算出部３５０を設ければ、計算の効率を高めると共に、計算不能な状態となることを防止できる。
【００２６】
図４は、解析装置２０によって性能評価モデルが生成される処理の流れを示す。解析装置２０は、それぞれの分割期間について以下の処理を行う。まず、取得部２００は、それぞれの分割期間について、分割期間内においてそれぞれの情報処理装置１１０が互いに送受信した複数の通信パケットを順次取得する（Ｓ４００）。次に、回数算出部２１０は、分割期間が経過する毎に、その分割期間においてそれぞれの情報処理装置１１０が他の情報処理装置１１０から呼び出されたサービスの呼出回数を算出する（Ｓ４１０）。次に、ビジー時間算出部２２０は、分割期間が経過する毎に、その分割期間においてそれぞれの情報処理装置１１０がサービスの処理であるトランザクションを実行している時間の合計であるビジー時間を算出する（Ｓ４２０）。
【００２７】
呼出関係解析部２５０は、当該分割期間に送受信された通信パケットに基づいて、サービスの呼出関係を解析してもよい（Ｓ４３０）。なお、この解析は分割期間の経過毎ではなく、例えば初回の分割期間においてのみ行われてもよい。また、既に述べたように、サービスの呼出関係は予め定められてもよい。次に、サービスデマンド算出部２４０は、サービス毎の平均の処理時間であるサービスデマンドと、その推定誤差とを算出する（Ｓ４４０）。推定誤差が予め定められた基準を満たすことを条件に（Ｓ４６０：ＹＥＳ）、モデル生成部２６０は、サービスデマンドに基づいて性能評価モデルを生成する（Ｓ４７０）。
【００２８】
続いて、図５を参照しながら、サービスデマンドを算出する処理の詳細について説明する。数式を用いて説明するために、まず、それぞれのパラメータを定義する。解析期間の始期を時刻Ｔとし、分割期間の長さをΔＴjとし、解析期間に含まれる分割期間の数をｍとする。ここで、それぞれの分割期間は添字ｊを付けて区別する。分割期間ｊは、以下の式（１）によって定義される期間を示す。
【数１】
2007310462.tif 000003
【００２９】
分割期間ｊについてビジー時間算出部２２０によって算出されるビジー時間をｂｊとする。また、分割期間ｊにおいて回数算出部２１０によって算出されるサービス毎の呼出回数をａｊｉとする。但し、ｉはサービスの種類を示す（１≦ｉ≦ｎ）。また、サービス毎の平均の処理時間を未知変数ｄｉとする。以上の定義の下、分割期間ｊにおけるビジー時間、呼出回数、および、サービスデマンドの関係は以下の通りである。
【数２】
2007310462.tif 000004
【００３０】
但し、εｊは、ビジー時間と、サービス毎の呼出回数、および、そのサービスの平均の所要時間を乗じた合計との差を示す。この差は、ビジー時間の観測誤差に相当する。また、εｊは、＜εｉ＞＝０、＜εｉεｊ＞＝σ２δｉｊを満たすものとする。また、＜・＞は・のアンサンブル平均を示し、σは観測誤差の標準偏差、δｉｊはクロネッカーのデルタを表す。このような観測誤差εｊの２乗和最小化するサービスデマンドを効率的に求めることができれば、性能評価モデルを精度良く算出することができる。以下、図５を参照して詳細について述べる。
【００３１】
図５は、図４のＳ４４０における処理の詳細を示す。まず、正規方程式生成部３１０は、それぞれの分割期間における誤差の２乗和を最小化する平均の処理時間を求める正規方程式を生成する（Ｓ５００）。この正規方程式は、サービス毎かつ分割期間毎の呼出回数を行および列に配列した行列と、その行列の転置行列との積を、サービス毎の平均の処理時間を示す変数ベクトルの係数行列とする。また、この正規方程式は、分割期間毎のビジー時間を示すベクトルと前記転置行列との積で求まるベクトルを定数ベクトルとする。正規方程式を式（３）に例示する。
【数３】
2007310462.tif 000005
ここで、行列Ａのｊ行ｉ列の成分はａｊｉである。また、変数ベクトルｄは（ｄ１，…，ｄｎ）ｔであり、ベクトルｂは（ｂ１，…，ｂｍ）ｔである。
【００３２】
正規方程式生成部３１０は、この正規方程式を効率的に生成するために、拡大係数行列記憶部３００に記憶された拡大係数行列を用いる。
拡大係数行列記憶部３００には、既に経過した複数の分割期間について生成された正規方程式の係数行列と定数ベクトルが記憶されている。新たに経過した分割期間を分割期間ｍとすると、拡大係数行列記憶部３００には、分割期間１から分割期間ｍ−１までについて生成された正規方程式の係数行列が記憶されている。いま、新たに求める正規方程式の係数行列ＡｔＡの（ｉ，ｊ）成分であるｘｉｊは、以下の式（４）によって表される。
【数４】
2007310462.tif 000006
式（４）によれば、分割期間ｍにおける係数行列ＡｔＡは、分割期間１から分割期間ｍ−１までについて既に生成された係数行列と、分割期間ｍにおいて新たに算出された呼出回数に基づいて表される。
【００３３】
同様に、新たに求める正規方程式の定数ベクトルＡｔｂの第ｉ成分であるｃｉは、以下の式（５）によって表される。
【数５】
2007310462.tif 000007
式（５）によれば、分割期間ｍにおける定数ベクトルＡｔｂは、分割期間１から分割期間ｍ−１までについて既に生成された定数ベクトルと、分割期間ｍにおいて新たに算出された呼出回数およびビジー時間に基づいて表される。
即ち、正規方程式生成部３１０は、分割期間１から分割期間ｍ−１までについて既に生成された拡大係数行列の各成分と、分割期間ｍにおいて新たに算出された呼出回数およびビジー時間とを、式（４）および式（５）に従って演算することによって、新たな正規方程式を算出することができる。
【００３４】
拡大係数行列更新部３２０は、生成された正規方程式の拡大係数行列を基に、拡大係数行列記憶部３００に記憶されている拡大係数行列を更新する（Ｓ５１０）。
演算部３３０は、この正規方程式を解くことによって、誤差の２乗和を最小化するサービスデマンドを算出する（Ｓ５２０）。正規方程式の解法は、Gauss-Jordan法、ＬＵ分解、ＱＲ分解、または、特異値分解など、様々な方法およびその実現法が従来公知であるので説明を省略する。
【００３５】
次に、推定誤差算出部３４０は、生成された正規方程式における、サービスデマンドを示す変数ベクトルの係数行列（ＡｔＡ）について、逆行列の対角成分をサービスデマンドの推定誤差として算出する（Ｓ５２５）。対角成分ｘｉｉ−１は、サービスｉのサービスデマンドの推定誤差を示す。
【００３６】
次に、角度算出部３５０は、複数のサービスが従属的な関係か否かを判断するために、それぞれのサービスの呼出回数を示すベクトルのなす角を算出する（Ｓ５３０）。例えば、角度算出部３５０は、複数のサービスのうち、第１サービスの分割期間毎の呼出回数を示す第１のベクトルと、第２のサービスの分割期間毎の呼出回数を示す第２のベクトルとのなす角を算出する。なす角は、第１のベクトルと第２のベクトルとの内積、および、第１のベクトルおよび第２のベクトルの長さに基づいて算出される。内積は、係数行列（ＡｔＡ）の各成分として与えられる。また、ベクトルの長さは、係数行列（ＡｔＡ）の対角成分の平方根として与えられる。即ち、角度算出部３５０は、拡大係数行列記憶部３００に記憶された係数行列の各成分に基づいてそれぞれのベクトルが他のそれぞれのベクトルとなす角度を算出することができる。
【００３７】
算出された角度が予め定められた基準以下であることを条件に、例えば、その角度が略０であることを条件に（Ｓ５４０：ＹＥＳ）、角度算出部３５０は、複数のサービスを併合して新たな１つのサービスとして扱うことを示すマージ指示を送る。以降の分割期間においてサービスを適切に併合するためには、拡大係数行列記憶部３００に記憶されている拡大係数行列を更新する処理が必要となる。その処理を以下に説明する。
【００３８】
まず、併合するべき第１のサービスをサービスｐとし、第２のサービスをサービスｑとする。サービスｐとサービスｑとは併合されて第３のサービスｒとして取り扱われる。ある分割期間ｋにおいて、サービスｐの呼出回数ａｋｐ、サービスｑの呼出回数ａｋｑ、および、サービスｒの呼出回数ａｋｒの間には、ａｋｒ＝ａｋｐ＋ａｋｑという関係が成り立つ。
ここで、拡大係数行列記憶部３００に記憶されている係数行列（ＡｔＡ）の（ｉ，ｒ）成分（１≦ｉ，ｒ≦ｎ）をｘｉｒは、以下の式（６）として表される。
【数６】
2007310462.tif 000008
即ち、ｘｉｒは、併合するサービスに関する係数行列の成分の線形和として表される。この検討によれば、拡大係数行列更新部３２０は、正規方程式においてサービスデマンドを示す変数ベクトルの係数行列の第ｐ行ベクトルの各成分ｘｉｐと、第ｑ行ベクトルの各成分ｘｉｑとを合計して新たな行ベクトルｘｉｒを生成し、新たな係数行列に含めて拡大係数行列記憶部３００に記憶すればよい。
【００３９】
更に、この係数行列（ＡｔＡ）は対角行列なので、同様に、ｘｒｉ＝ｘｐｉ＋ｘｑｉが成り立つ。したがって、同様に、拡大係数行列更新部３２０は、この係数行列のうち、第ｐ列ベクトルの各成分ｘｐｉと、第ｑ列ベクトル各成分ｘｑｉとを合計して新たな列ｘｒｉを生成し、新たな係数行列に含めて拡大係数行列記憶部３００に記憶すればよい。
以上に示す拡大係数行列更新部３２０による操作は、式（７）から式（８）への変換として表される。
【数７】
2007310462.tif 000009
【数８】
2007310462.tif 000010
【００４０】
ビジー時間を示すベクトルと転置行列の積から求まる定数ベクトルについても同様である。既に経過した分割期間毎のビジー時間を示すベクトルと、サービス毎かつ分割期間毎の前記呼出回数を行および列に配列した行列の転置行列との積で求まる定数ベクトルの各成分をｃｉとすると、第ｐ成分ｃｐと、第ｑ成分ｃｑとの線形和によって、第r成分ｃｒとが求められる（式（９）を参照）。
【数９】
2007310462.tif 000011
【００４１】
即ち、拡大係数行列更新部３２０は、ビジー時間を示すベクトルと前記転置行列の積から求まる定数ベクトルのうち、第ｐ成分ｃｐと、第ｑ成分ｃｑとを合計して新たな成分ｃｒを生成して、新たなベクトルに含めて演算部３３０に記憶すればよい。
以上の処理によれば、拡大係数行列更新部３２０は、性能の解析中にサービスを併合して取り扱う場合であっても、僅かな追加の計算によって拡大係数行列を更新して、その後の分割期間に備えることができる。
【００４２】
図６は、解析装置２０として機能するコンピュータ６００のハードウェア構成の一例を示す。コンピュータ６００は、ホストコントローラ１０８２により相互に接続されるＣＰＵ１０００、ＲＡＭ１０２０、及びグラフィックコントローラ１０７５を有するＣＰＵ周辺部と、入出力コントローラ１０８４によりホストコントローラ１０８２に接続される通信インターフェイス１０３０、ハードディスクドライブ１０４０、及びＣＤ−ＲＯＭドライブ１０６０を有する入出力部と、入出力コントローラ１０８４に接続されるＲＯＭ１０１０、フレキシブルディスクドライブ１０５０、及び入出力チップ１０７０を有するレガシー入出力部とを備える。
【００４３】
ホストコントローラ１０８２は、ＲＡＭ１０２０と、高い転送レートでＲＡＭ１０２０をアクセスするＣＰＵ１０００及びグラフィックコントローラ１０７５とを接続する。ＣＰＵ１０００は、ＲＯＭ１０１０及びＲＡＭ１０２０に格納されたプログラムに基づいて動作し、各部の制御を行う。グラフィックコントローラ１０７５は、ＣＰＵ１０００等がＲＡＭ１０２０内に設けたフレームバッファ上に生成する画像データを取得し、表示装置１０８０上に表示させる。これに代えて、グラフィックコントローラ１０７５は、ＣＰＵ１０００等が生成する画像データを格納するフレームバッファを、内部に含んでもよい。
【００４４】
入出力コントローラ１０８４は、ホストコントローラ１０８２と、比較的高速な入出力装置である通信インターフェイス１０３０、ハードディスクドライブ１０４０、及びＣＤ−ＲＯＭドライブ１０６０を接続する。通信インターフェイス１０３０は、ネットワークを介して外部の装置と通信する。ハードディスクドライブ１０４０は、コンピュータ６００が使用するプログラム及びデータを格納する。ＣＤ−ＲＯＭドライブ１０６０は、ＣＤ−ＲＯＭ１０９５からプログラム又はデータを読み取り、ＲＡＭ１０２０又はハードディスクドライブ１０４０に提供する。
【００４５】
また、入出力コントローラ１０８４には、ＲＯＭ１０１０と、フレキシブルディスクドライブ１０５０や入出力チップ１０７０等の比較的低速な入出力装置とが接続される。ＲＯＭ１０１０は、コンピュータ６００の起動時にＣＰＵ１０００が実行するブートプログラムや、コンピュータ６００のハードウェアに依存するプログラム等を格納する。フレキシブルディスクドライブ１０５０は、フレキシブルディスク１０９０からプログラム又はデータを読み取り、入出力チップ１０７０を介してＲＡＭ１０２０またはハードディスクドライブ１０４０に提供する。入出力チップ１０７０は、フレキシブルディスク１０９０や、例えばパラレルポート、シリアルポート、キーボードポート、マウスポート等を介して各種の入出力装置を接続する。
【００４６】
コンピュータ６００に提供されるプログラムは、フレキシブルディスク１０９０、ＣＤ−ＲＯＭ１０９５、又はＩＣカード等の記録媒体に格納されて利用者によって提供される。プログラムは、入出力チップ１０７０及び/又は入出力コントローラ１０８４を介して、記録媒体から読み出されコンピュータ６００にインストールされて実行される。プログラムがコンピュータ６００等に働きかけて行わせる動作は、図１から図５において説明した解析装置２０における動作と同一であるから、説明を省略する。
【００４７】
以上に示したプログラムは、外部の記憶媒体に格納されてもよい。記憶媒体としては、フレキシブルディスク１０９０、ＣＤ−ＲＯＭ１０９５の他に、ＤＶＤやＰＤ等の光学記録媒体、ＭＤ等の光磁気記録媒体、テープ媒体、ＩＣカード等の半導体メモリ等を用いることができる。また、専用通信ネットワークやインターネットに接続されたサーバシステムに設けたハードディスク又はＲＡＭ等の記憶装置を記録媒体として使用し、ネットワークを介してプログラムをコンピュータ６００に提供してもよい。
【００４８】
以上、本実施形態に係る解析装置２０によれば、情報処理システム１０の性能を解析することによって、それぞれの情報処理装置１１０がサービスの処理に要する時間などを推定することで、構成変更の判断を支援することができる。また、性能の解析には通信装置１００から取得した通信パケットの複写データを用いるので、性能の解析中にも運用に影響を与えることなく情報処理システム１０の動作を継続させることができる。更に、分割期間が経過する毎にサービスデマンドをその精度と共に算出することで、充分な精度が得られた場合には全ての解析期間が経過する前に処理を終了することができる。また、解析中においては全ての呼出回数を記録するのでなく、必要な係数行列のみを拡大係数行列記憶部３００に記憶すればよいので、解析装置２０に設けるＲＡＭ１０２０などの必要容量を減少させてコストを削減できる。
【００４９】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【図面の簡単な説明】
【００５０】
【図１】図１は、情報処理システム１０の全体構成を示す。
【図２】図２は、解析装置２０の機能構成を示す。
【図３】図３は、サービスデマンド算出部２４０の機能構成を示す。
【図４】図４は、解析装置２０によって性能評価モデルが生成される処理の流れを示す。
【図５】図５は、図４のＳ４４０における処理の詳細を示す。
【図６】図６は、解析装置２０として機能するコンピュータ６００のハードウェア構成の一例を示す。
【符号の説明】
【００５１】
１０  情報処理システム
１５  外部ネットワーク
２０  解析装置
１００  通信装置
１１０  情報処理装置
２００  取得部
２１０  回数算出部
２２０  ビジー時間算出部
２４０  サービスデマンド算出部
２５０  呼出関係解析部
２６０  モデル生成部
３００  拡大係数行列記憶部
３１０  正規方程式生成部
３２０  拡大係数行列更新部
３３０  演算部
３４０  推定誤差算出部
３５０  角度算出部
６００  コンピュータ
【図１】
2007310462.tif 000012
【図２】
2007310462.tif 000013
【図３】
2007310462.tif 000014
【図４】
2007310462.tif 000015
【図５】
2007310462.tif 000016
【図６】
2007310462.tif 000017