(57)【要約】【課題】  汎用ツールのデータを用いてワークロードモデル定義のためのサーバ処理時間を算出する。【解決手段】  パケット解析手段１ａは、汎用観測ツールの測定したパケットトレース情報３を解析し、依存関係のあるパケット群を抽出して、トランザクション情報５を作成する。サーバ処理時間算出手段１ｂは、トランザクションごとのサーバ滞留時間を算出するとともに、実機システム２の特性に応じてサーバ滞留時間を補正し、トランザクションごとのサーバ処理時間を算出する。ワークロード定義手段１ｄは、サーバ処理時間をＣＰＵ処理時間と見なしてワークロードを定義し、ワークロードモデル７を作成する。【選択図】  図１
2006133820.tif 000002
【特許請求の範囲】
【請求項１】
実環境もしくはテスト環境でアプリケーションを実行する測定対象サーバ群について汎用観測ツールを用いて観測された測定情報に基づき、所定のトランザクションに要する処理時間を算出するための処理時間算出プログラムにおいて、
コンピュータを、
前記汎用観測ツールが捉えたサーバに送受信されるパケットのパケットトレース情報を取得して解析し、前記トランザクションに関し依存関係のあるパケット群に関する情報を抽出したトランザクション情報を作成するパケット解析手段、
前記トランザクション情報に基づいて、前記依存関係のあるパケット群の処理が前記サーバに滞留しているサーバ滞留時間を算出するとともに、前記トランザクションの重なりや前記サーバの構成を含む前記測定対象の特性に基づいて前記サーバ滞留時間を補正し、前記トランザクションごとの前記サーバ処理時間を算出するサーバ処理時間算出手段、
として機能させることを特徴とする処理時間算出プログラム。
【請求項２】
前記サーバ処理時間算出手段に、同一の前記トランザクションの複数要求が同一時刻に前記サーバに滞留している場合に、同一時刻に重複するコネクション数と前記サーバを構成するＣＰＵ（ＣＰＵ：Central Processing Unit）の数を比較し、前記コネクション数が前記ＣＰＵ数までは前記サーバ滞留時間を前記サーバ処理時間に加算し、前記コネクション数が前記ＣＰＵ数を超える場合には超えた前記コネクション数の前記サーバ滞留時間を加算せずに前記サーバ処理時間を算出させる、
ことを特徴とする請求項１記載の処理時間算出プログラム。
【請求項３】
前記サーバ処理時間算出手段に、複数の別トランザクションの複数要求が同一時刻に前記サーバに滞留している場合に、前記別トランザクションのコネクションが重なる区間において、注目する前記トランザクションのコネクションが前記重なる区間における前記コネクションの総和に占める割合で、前記サーバの構成に応じて算出された前記サーバ処理時間を比例配分して前記トランザクションごとの前記サーバ処理時間を算出させる、
ことを特徴とする請求項１記載の処理時間算出プログラム。
【請求項４】
コンピュータを、さらに、
前記汎用観測ツールで測定された前記サーバのＣＰＵが使用されたトータルＣＰＵ処理時間を、前記サーバ処理時間算出手段によって算出された前記トランザクションごとの前記サーバ処理時間が前記サーバ処理時間の総和に占める割合に応じて比例配分し、前記トランザクションごとのＣＰＵ使用時間を補正するＣＰＵ使用時間補正手段、
として機能させることを特徴とする請求項１記載の処理時間算出プログラム。
【請求項５】
実環境もしくはテスト環境でアプリケーションを実行する測定対象サーバ群について汎用観測ツールを用いて観測された測定情報に基づいて所定のトランザクションに要する処理時間を算出し、前記処理時間を用いてワークロードモデルを定義するためのワークロードモデル作成プログラムにおいて、
コンピュータを、
前記汎用観測ツールが捉えた前記サーバに送受信されるパケットのパケットトレース情報を取得して解析し、前記トランザクションに関し依存関係のあるパケット群に関する情報を抽出したトランザクション情報を作成するパケット解析手段、
前記トランザクション情報に基づいて、前記依存関係のあるパケット群の処理が前記サーバに滞留しているサーバ滞留時間を算出するとともに、前記トランザクションの重なりや前記サーバの構成を含む前記測定対象の特性に基づいて前記サーバ滞留時間を補正し、前記トランザクションごとの前記サーバ処理時間を算出するサーバ処理時間算出手段、
前記トランザクションごとの前記サーバ処理時間を前記サーバのＣＰＵ処理時間と見なしてワークロードを定義し、性能予測の対象のワークロードモデルを作成するワークロード定義手段、
として機能させることを特徴とするワークロードモデル作成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、処理時間算出プログラムおよびワークロードモデル作成プログラムに関し、特に実環境もしくはテスト環境でアプリケーションを実行する測定対象サーバ群について汎用観測ツールを用いて観測された測定情報に基づき、所定のトランザクションに要する処理時間を算出するための処理時間算出プログラムおよび算出された処理時間を用いてワークロードモデルを定義するためのワークロードモデル作成プログラムに関する。
【背景技術】
【０００２】
近年、ＩＴシステムの重要性が増してきており、資源不足による性能問題や、過剰な資源投入によるコスト増を防ぐため、十分な性能予測を行って適切な資源量のシステムを構築することが求められている。
【０００３】
性能評価にあたっては、精度の面だけを考えれば、実アプリケーションが稼動している運用システムやテスト環境上で性能を実測することが望ましいが、現実にはシステムを稼動させて任意の負荷をかけるのが困難であったり、時間的制約等により十分な実機テストを行うことができないことも多い。そこで、仮想的にＩＴシステムの性能見積もりを行う技術が必要となる。一般的に、待ち行列論や、ＣＰＵサーバ処理時間等の積み上げ表計算を用いた予測も行われているが、最も詳細な評価方法として、運用システムないし同様な業務の別システム上で実測が可能なデータを基にワークロードモデルを作成し、シミュレーションを行って仮想的にＩＴシステムの性能見積もりを行う技術がある。以下、ワークロードモデル作成について説明する。
【０００４】
図１５は、従来のワークロードモデル作成手順を示したフロー図である。
ワークロードモデルの作成にあたっては、ワークロードモデルの定義に用いるため、運用システムもしくは同様な業務を行う別システムにおいて、汎用ツールを用いて観測可能なデータを測定する。図の例では、作成されるワークロードモデルと同様の業務を行う実機システム９００の動作状態を汎用ツールで測定し、パケットトレース情報９１０とサーバ資源情報９２０を得る（ステップＳ１０１）。たとえば、通信パケットをキャプチャする汎用ネットワークトレース採取ソフトウェアツールを用いて、クライアント、サーバ間、もしくは複数のサーバ間でネットワークを介して交換されるパケットのパケットトレース情報９１０を得る。また、各サーバに組込まれた汎用モニタなどにより、ＣＰＵ使用時間、メモリ使用量、ディスクアクセス等のサーバ資源情報９２０を得る。
【０００５】
次に、パケットトレース情報９１０を解析して、システム全体におけるトランザクション毎のトラフィックフロー９３０を作成する（ステップＳ１０２）。また、サーバ資源情報９２０を解析してトランザクション毎に消費されるサーバ資源に関する消費サーバ資源情報９４０を抽出する（ステップＳ１０３）。そして、ステップＳ１０２、ステップＳ１０３で得られたトランザクション毎のトラフィックフロー９３０と消費サーバ資源情報９４０をユーザアクション等のシミュレーション対象の処理単位毎に切り分けてモデルを定義し、ワークロードモデル９５０を作成する（ステップＳ１０４）。このとき、トラフィックフロー９３０からネットワークフローモデルが定義され、消費サーバ資源情報９４０からＣＰＵ使用時間が定義される。なお、従来、処理単位毎の定義はこれらの情報を参照し、手動で行われるのが一般的であった。
【０００６】
図１６は、ワークロードモデルの概要を示した図である。図は、クライアント９０１、サーバ１（９０２）およびサーバ２（９０３）から成るシステムのワークロードモデル一例である。図の例は、クライアント９０１からの要求をサーバ１（９０２）が受付け、必要に応じてサーバ２（９０３）に問合せを行った後、応答をクライアント９０１に返信するトランザクションを示している。図１５に示したワークロードモデル作成手順で得られたトラフィックフロー９３０に基づいて、通信パケット９１１、９１２、９１３、９１４、９１５、９１６に関するモデルが定義される。同様に、消費サーバ資源情報９４０を用いて、所定のトランザクションにおけるサーバ１（９０２）およびサーバ２（９０３）の資源利用状況モデル（ＣＰＵ使用時間、メモリ使用量、ディスクアクセス）９２１、９２２、９２３、９２４が定義される。こうして、観測データから抽出された性能基礎値に基づくワークロードモデルが作成される。
【０００７】
性能評価を行う場合には、以上の説明のワークロードモデルを用いた手法もしくは他の手法等、いずれの性能予測手法を用いる場合であっても、いかに高精度の性能基礎値を抽出できるかが重要となる。すなわち、観測データから抽出されるワークロードモデル定義のためのデータと実際の値との誤差をいかに少なくするかが課題となる。特に、サーバに関しては、各トランザクションが必要とするサーバのＣＰＵサーバ処理時間をいかに適切にワークロードモデルに定義するかが重要となる。
【０００８】
このため、イベントトレース手法に基づく詳細なサーバ性能データ収集ツールとして、Ｌｉｎｕｘカーネルに特別なｈｏｏｋを組込むことで、各プロセスの割り込み処理イベントとタイムスタンプを記録する手法が研究されている（たとえば、非特許文献１参照）。
【非特許文献１】堀川隆、「性能基礎データ収集方法の比較検討」、情報処理学会研究報告、２００４−ＥＶＡ−１０、ｐｐ．１−６、２００４年８月１日
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかし、従来のワークロードモデル手法では、高精度なワークロードモデルを定義することが難しいという問題点があった。
たとえば、一般的なＷＥＢアプリケーションシステムを対象に、汎用観測データを基にユーザアクションごとのワークロードモデルを作成する場合、ネットワークフローモデルに関しては、対象のユーザアクションのみを実行させる一多重でネットワークトレース測定を行い、ポート番号や実行時間などによるパケットフィルタリングを行うことで、ユーザアクションの切り分けは比較的容易にできる。一方、サーバ資源情報に関しては、汎用的なサーバ資源使用状況の観測ツールで測定可能な情報は、数十秒から数分周期のサンプリングデータであり、トータルでのＣＰＵ使用時間やプロセス毎のＣＰＵ使用時間は抽出できる。ところが、このような周期のサンプリングデータからトランザクション毎のＣＰＵ使用時間を抽出することは困難である。そのため、汎用観測データを基にワークロードモデルを定義する際には、全て同一の処理と見なして平均化したＣＰＵサーバ処理時間を用いるか、同一トランザクションのみが実行されている状況で実測を行ってトランザクション定義を行っている。しかしながら、このような手法では、実際のＣＰＵサーバ処理時間に対して誤差が大きくなってしまうという問題点がある。また、こうして得られたＣＰＵサーバ処理時間を用いてワークロードモデルを定義しても、高精度なワークロードモデルを得ることは難しく、結果として、性能予測の精度も低くなってしまう。
【００１０】
一方、詳細なサーバ資源情報を測定するために独自にＯＳに手を加えたり、ハードウェアエミュレータを実装する手法は、高精度のサーバ資源使用情報を得ることは可能であるが、詳細情報を知り得て手を加えることが可能な独自ＯＳや独自ハードウェアでないと適用できない等、広く一般のシステムに適用することは難しい。
【００１１】
本発明はこのような点に鑑みてなされたものであり、汎用観測ツールを用いて測定した測定値を用いて高精度なワークロードモデルを定義することが可能となるように、所定のトランザクション処理におけるサーバ処理時間を高精度に算出する処理時間算出プログラム、およびワークロードモデル作成プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明では上記課題を解決するために、図１に示すような処理をコンピュータに実行させるための処理時間算出プログラムが提供される。本発明に係る処理時間算出プログラムは、ワークロードモデル作成装置１に適用され、コンピュータに以下の処理を実行させることができる。ワークロードモデル作成装置１は、実機システム２の測定対象サーバについて汎用観測ツールを用いて観測された測定データとして、パケットトレース情報３を入力する。パケット解析手段１ａは、汎用観測ツールが捉えたサーバに送受信されるパケットのパケットトレース情報３を取得して解析し、所定のトランザクションに関し、依存関係のあるパケット群に関する情報を抽出したトランザクション情報５を作成する。サーバ処理時間算出手段１ｂは、トランザクション情報５に基づいて、依存関係のパケット群に関する処理がサーバに滞留しているサーバ滞留時間を算出する。そして、トランザクションの重なりやサーバの構成を含む測定対象の特性に基づき、サーバ滞留時間を補正し、トランザクションごとのサーバ処理時間を算出する。
【００１３】
このような処理時間算出プログラムを実行するワークロードモデル作成装置１によれば、汎用観測ツールを用いて捉えられた、測定対象サーバに関するパケットトレース情報３が入力され、パケット解析手段１ａで解析される。パケット解析手段１ａによって、所定のトランザクションに関し、依存関係のあるパケット群に関する情報が抽出されたトランザクション情報５が作成される。サーバ処理時間算出手段１ｂによって、トランザクション情報５から依存関係のあるパケット群の処理がサーバに滞留しているサーバ滞留時間が算出され、トランザクションの重なりやサーバの構成を含む測定対象の特性に応じて補正され、トランザクションごとのサーバ処理時間が算出される。これにより、汎用観測ツールにより測定された情報データから、高精度のサーバ処理時間が算出できる。
【００１４】
また、上記課題を解決するために、実環境もしくはテスト環境でアプリケーションを実行する測定対象サーバについて汎用観測ツールを用いて観測された測定情報に基づいて所定のトランザクションに要する処理時間を算出し、前記処理時間を用いてワークロードモデルを定義するためのワークロードモデル作成プログラムにおいて、コンピュータを、前記汎用観測ツールが捉えた前記サーバに送受信されるパケットのパケットトレース情報を取得して解析し、前記トランザクションに関し依存関係のあるパケット群に関する情報を抽出したトランザクション情報を作成するパケット解析手段、前記トランザクション情報に基づいて、前記依存関係のあるパケット群の処理が前記サーバに滞留しているサーバ滞留時間を算出するとともに、前記トランザクションの重なりや前記サーバの構成を含む前記測定対象の特性に基づいて前記サーバ滞留時間を補正し、前記トランザクションごとの前記サーバ処理時間を算出するサーバ処理時間算出手段、前記トランザクションごとの前記サーバ処理時間を前記サーバのＣＰＵ処理時間と見なしてワークロードを定義し、性能予測の対象のワークロードモデルを作成するワークロード定義手段、として機能させることを特徴とするワークロードモデル作成処理プログラムが提供される。
【００１５】
このようなワークロードモデル作成処理プログラムをコンピュータで実行することにより、コンピュータは、パケット解析手段、サーバ処理時間算出手段およびワークロード定義手段として機能し、汎用観測ツールが捉えたパケットトレース情報に基づき、ワークロードモデルを作成する。パケットトレース情報は、パケット解析手段で解析され、所定のトランザクションに関し、依存関係のあるパケット群に関する情報が抽出されたトランザクション情報が作成される。次に、サーバ処理時間算出手段によって、トランザクション情報に基づいて、サーバ滞留時間が算出され、サーバ滞留時間に対してトランザクションの重なりやサーバの構成を含む測定対象の特性に応じて補正が施され、トランザクションごとのサーバ処理時間が算出される。サーバ処理時間は、ワークロード定義手段によって、サーバのＣＰＵ処理時間と見なしてワークロードが定義され、性能予測対象のワークロードモデルが作成される。
【発明の効果】
【００１６】
本発明では、汎用観測ツールによって検出された測定対象サーバのパケットトレース情報を解析し、解析によって得られる所定のトランザクション処理における各サーバの滞留時間（実際のサーバ処理時間との誤差が含まれた見掛けのサーバ処理時間）を得る。そして、測定対象の特性に応じてサーバ滞留時間を補正して、サーバ処理時間を算出する。これにより、誤差の少ない高精度のサーバ処理時間を算出することができる。また、こうして算出された高精度のサーバ処理時間を用いてワークロードを定義してワークロードモデルを作成すれば、性能予測の精度が向上し、性能予測、キャパシティプランニング、ひいては最適な資源量のシステム構築を実現することができる。
【００１７】
また、算出に使用される測定データは、一般的に使用される汎用観測ツールによって生成されるデータであり、測定のためにＯＳや装置に手を加える必要がなく、性能評価のためのコストを削減することができるという利点もある。
【発明を実施するための最良の形態】
【００１８】
以下、本発明の実施の形態を図面を参照して説明する。まず、実施の形態に適用される発明の概念について説明し、その後、実施の形態の具体的な内容を説明する。
図１は、実施の形態に適用される発明の概念図である。
【００１９】
システムの性能評価では、まず、対象システムもしくは対象システムと同様のアプリケーションを実行する実機システム２を実環境ないしテスト環境で動作させ、図示しない汎用観測ツールを用いてパケットトレース情報３およびサーバ資源情報４などの測定情報を作成する。なお、解析容易性を考えると、注目するトランザクションのみを実行させる一多重でデータ測定することが望ましい。以下、特に断らない限り、測定データは一多重によるものとする。続いて、測定情報が作成されると、本発明に係るワークロードモデル作成装置１によって、測定情報に基づき、対象システムの性能評価を行うためのワークロードモデル７が作成される。そして、作成されたワークロードモデル７を用いて、システムの性能評価が行われる。
【００２０】
ワークロードモデル作成装置１は、パケットトレース情報３についてパケット解析を行ってトランザクション情報５を作成するパケット解析手段１ａ、トランザクションごとのサーバ処理時間を算出するサーバ処理時間算出手段１ｂ、トータルＣＰＵ使用時間とサーバ処理時間からトランザクションごとのＣＰＵ使用時間を算出するＣＰＵ使用時間補正手段１ｃ、ワークロードモデル７を作成するワークロード定義手段１ｄを具備する。また、汎用観測ツールによる測定対象の実機システム２は、図示しないクライアントと、２つのＣＰＵ（便宜的にサーバＡ（２ａ）、サーバＢ（２ｂ）と表記する）で処理を行うサーバで構成される。なお、本発明では、サーバの構成はこれに限定されず、任意の構成とすることができる。
【００２１】
ここで、サーバ滞留時間、サーバ処理時間およびＣＰＵ使用時間を定義しておく。サーバ滞留時間は、ネットワークパケットの依存関係を解析して、依存関係のあるパケット受信からパケット送信までの時間を累積し、必要に応じてネットワーク性能による遅延時間を補正した値である。すなわち、サーバ滞留時間は、パケットトレース情報より得られる見かけ上の値であり、実際のサーバ処理時間に対する誤差を含んでいる。サーバ処理時間は、上記サーバ滞留時間のうち、実際のサーバ資源を使用して処理が行われている時間であり、ネットワーク性能によるパケット送受信遅延時間や、資源競合による待ち時間を含まない値である。そして、ＣＰＵ使用時間は、上記サーバ処理時間のうち、ＣＰＵ資源を使用していたと定義する時間とする。
【００２２】
パケット解析手段１ａは、汎用観測ツールが捉えたサーバＡ（２ａ）およびサーバＢ（２ｂ）とクライアント間で交換されるパケットをキャプチャしたパケットトレース情報３を取得し、これをあらかじめトランザクション定義のための設定されたルール指定などに従って解析する。そして、該当のトランザクションに関し、依存関係を有するパケット群の情報を抽出し、トランザクション情報５を作成する。トランザクション情報５には、少なくとも、所定のトランザクションに関し依存関係のあるパケットの送信元と受信元、パケットの送受信時刻、およびパケットの種類などが格納される。
【００２３】
サーバ処理時間算出手段１ｂは、トランザクション情報５を入力し、依存関係のあるパケット群のパケット受信からパケット送信までの間、すなわち、処理がサーバに滞留していたサーバ滞留時間を算出する。そして、測定対象の実機システム２の特性に応じた補正をサーバ滞留時間に施してサーバ処理時間を算出し、サーバ処理時間情報６を作成する。たとえば、１つのトランザクション単位であっても複数の要求が同時刻にサーバに滞留する場合があるし、異なるトランザクションの複数要求が同時刻にサーバに滞留する場合もある。また、サーバの構成に応じて、１つのＣＰＵですべてを処理する場合もあるし、図の例のように複数のＣＰＵでいくつかの処理を同時処理する場合もある。そこで、トランザクションの重なりやサーバの構成などの測定対象の特性に応じてサーバ滞留時間を補正し、サーバ処理時間を算出する。すなわち、サーバが複数のＣＰＵで構成される場合には、１ＣＰＵ当たりに換算したサーバ処理時間を算出し、異なるトランザクションが重なる場合は、重なる区間のサーバ処理時間に占める注目トランザクションの割合に応じて、サーバ処理時間を比例配分して補正を行う。なお、サーバ処理時間の算出方法の詳細については後述する。
【００２４】
ＣＰＵ使用時間補正手段１ｃは、サーバ処理時間情報６とサーバ資源情報４を用いて、トランザクションごとのＣＰＵ使用時間を補正する。サーバ処理時間算出手段１ｂにより算出されたサーバ処理時間は、ＣＰＵ処理時間とほぼ同じと見なすことができるが、システムによっては、その他の要因で、パケットトレース情報３から得られるサーバ滞留時間から算出されたサーバ処理時間と、汎用観測ツールが測定したトータルなＣＰＵ使用時間とにずれが生じてしまう可能性がある。そこで、必要に応じて、サーバ処理時間と、サーバ資源情報４より得られるトータルＣＰＵ使用時間からトランザクションごとのＣＰＵ使用時間を補正する。すなわち、算出されたトランザクションごとのサーバ処理時間を用いて、サーバ資源情報４のトータルＣＰＵ使用時間の実測値を比例分配してトランザクションごとのＣＰＵ処理時間を算出する。
【００２５】
ワークロード定義手段１ｄは、サーバ処理時間情報６に基づき、サーバ処理時間をＣＰＵ処理時間と見なしてワークロードを定義し、対象システムのワークロードモデル７を作成する。また、ＣＰＵ処理時間算出手段１ｃにより、各トランザクションのＣＰＵ使用時間が補正された場合には、これを用いてワークロードを定義し、対象システムのワークロードモデル７を作成する。
【００２６】
このような構成のワークロードモデル作成装置１の動作について説明する。
汎用観測ツールによって、サーバＡ（２ａ）とサーバＢ（２ｂ）を有する実機システム２の測定が行われ、クライアントとの間で交換されたパケットを捉えたパケットトレース情報３と、各サーバのＣＰＵ使用時間、メモリ使用量、ディスクアクセス等のサーバ資源情報４が作成される。ワークロードモデル作成装置１は、パケットトレース情報３とサーバ資源情報４を取得し、ワークロードモデル作成処理を開始する。
【００２７】
パケット解析手段１ａは、取得したパケットトレース情報３をトランザクション定義のためのルール指定などに基づいて解析し、トランザクションに関して依存関係のあるパケット群を抽出して、トランザクション情報５を作成する。サーバ処理時間算出手段１ｂは、トランザクション情報５に基づき、依存関係のあるパケット群のパケット受信からパケット送信までの間のサーバ滞留時間を算出する。そして、実機システム２の特性に応じてサーバ滞留時間を補正してトランザクションごとのサーバ処理時間を算出し、サーバ処理時間情報６を作成する。さらに必要に応じて、ＣＰＵ使用時間補正手段１ｃは、算出されたサーバ処理時間を用いてサーバ資源情報４のトータルＣＰＵ使用時間からＣＰＵ使用時間を補正する。ワークロード定義手段１ｄは、サーバ処理時間情報６に登録されたサーバ処理時間をＣＰＵ使用時間と見なすか、もしくはＣＰＵ使用時間補正手段１ｃの補正したＣＰＵ使用時間を用いてワークロードを定義し、ワークロードモデル７を作成する。
【００２８】
このようなワークロードモデル作成装置１によれば、汎用観測ツールによって実機システム２について測定されたパケットトレース情報３に基づき、トランザクションごとのサーバ滞留時間が算出され、実機システム２の特性に応じてサーバ滞留時間からサーバ処理時間が算出される。トランザクションの各段階において発生するパケットの送受信時刻に基づいてサーバ処理時間が算出されるので、高精度なサーバの処理時間を得ることができる。また、サーバ資源情報４のトータルなＣＰＵ使用時間でトランザクションごとのＣＰＵ処理時間を補正する場合にも、サーバ滞留時間に基づくサーバ処理時間を用いてトータルなＣＰＵ使用時間を比例配分してトランザクションごとのＣＰＵ使用時間を決めるので、平均化されたＣＰＵ使用時間を用いた従来と比較して、高精度なＣＰＵ使用時間情報を得ることができる。このように、汎用観測ツールで実測したデータを用いて、複数トランザクションから成るワークロードモデルを高精度に定義することが可能となる。
【００２９】
以上の説明のワークロードモデル作成装置１は、コンピュータにワークロードモデル作成プログラムを実行することによってその処理機能が実現される。次に、ワークロードモデル作成装置１のハードウェア構成について説明する。
【００３０】
図２は、本実施の形態のワークロードモデル作成装置のハードウェア構成例を示すブロック図である。
ワークロードモデル作成装置１は、ＣＰＵ１０１によって装置全体が制御されている。ＣＰＵ１０１には、バス１０７を介してＲＡＭ（Random Access Memory）１０２、ハードディスクドライブ（ＨＤＤ：Hard Disk Drive）１０３、グラフィック処理装置１０４、入力インタフェース１０５、通信インタフェース１０６が接続されている。
【００３１】
ＲＡＭ１０２には、ＣＰＵ１０１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１０２には、ＣＰＵ１０１による処理に必要な各種データが格納される。ＨＤＤ１０３には、ＯＳやアプリケーションのプログラムが格納される。グラフィック処理装置１０４には、モニタ１０８が接続されており、ＣＰＵ１０１からの命令に従って画像をモニタ１０８の画面に表示させる。入力インタフェース１０５には、キーボード１０９ａやマウス１０９ｂが接続されており、キーボード１０９ａやマウス１０９ｂから送られてくる信号を、バス１０７を介してＣＰＵ１０１に送信する。通信インタフェース１０６は、ネットワーク１１０に接続されており、ネットワーク１１０を介して実機システム２に組込まれた汎用ツールなどとの間でデータの送受信を行う。
【００３２】
このようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。なお、図２には、ワークロードモデル作成装置のハードウェア構成を示したが、性能評価の対象システムおよび実機システムを成すクライアントとサーバのハードウェア構成も同様である。
【００３３】
以下、実施の形態を、クライアント−ＷＥＢサーバシステムのワークロードモデル作成に適用した場合を例に図面を参照して詳細に説明する。第１の実施の形態として、クライアントとＷＥＢサーバで構成されるモデルについて説明し、続いて、第２の実施の形態として、クライアントと、後段にＡＰＰサーバのある二階層（ＷＥＢサーバ＋ＡＰＰサーバ）のサーバで構成されるモデルについて説明する。
【００３４】
［第１の実施の形態］
第１の実施の形態は、クライアントとＷＥＢサーバで構成される。
まず、実環境もしくはテスト環境において、所定のアプリケーションを動作させ、ＷＥＢサーバとクライアントとの間で注目するトランザクション処理が行われるようにしておき、汎用観測ツールを用いてパケットトレース情報とサーバ資源情報を生成する。
【００３５】
次に、パケットトレース情報を用いて、サーバ処理時間算出処理が実行される。
図３は、第１の実施の形態のクライアント−ＷＥＢサーバにおける一連のパケットの流れを示した図である。
【００３６】
図の例のパケットの流れを説明する。クライアント２２からｈｔｔｐ  Ｒｅｑ（前半）３０１ａとｈｔｔｐ  Ｒｅｑ（後半）３０１ｂの２回に分けて、注目トランザクションに関するパケットがサーバ２１に対して送信される。サーバ２１は、２回目の要求パケット３０１ｂの受信で注目トランザクションに関する処理を開始し、応答として、ＨＴＭＬ  Ｄａｔａ３０２のパケットを４回に分けてクライアント２２に送信する。そして、クライアント２２からの肯定応答（ＡＣＫ）３０３ａに対し最終のＨＴＭＬ  Ｄａｔａ３０３ｂを送信して、一連のトランザクションが終了する。
【００３７】
サーバ２１が検出するパケットトレース情報には、これらのパケットをクライアント２２から受信した時刻とクライアント２２に送信した時刻が記録されているので、これらの時刻情報を用いて、依存関係のあるパケット群のパケット受信からパケット送信までの時間を算出する。たとえば、サーバ２１は、２回目の要求パケット３０１ｂを受信してから処理を開始し、ＨＴＭＬ  Ｄａｔａ３０２の最初のパケットを送信している。この間、サーバ２１で処理が行われていると見なし、時刻情報からサーバ滞留時間５０１ａを算出する。同様に、ＨＴＭＬ  Ｄａｔａ３０２の第２、第３、第４のパケットが送信されるまでの時間は、サーバ２１で処理が継続されていると見なし、サーバ滞留時間５０１ｂ、５０１ｃ、５０１ｄを算出する。そして、最後の肯定応答３０３ａのパケット受信から処理が再開され、応答としてＨＴＭＬ  Ｄａｔａ３０３ｂが応答として送信される。この間も処理が行われていると見なし、サーバ滞留時間５０１ｅを算出する。こうして依存関係のあるパケット群のパケット受信から送信までの時間（個別のサーバ滞留時間）５０１ａ、５０１ｂ、５０１ｃ、５０１ｄ、５０１ｅを累積した時間がトランザクションのサーバ滞留時間５０１として算出される。
【００３８】
このようにして算出されたサーバ滞留時間５０１は、見掛けのサーバ処理時間とみなすことができる。なお、パケットデータサイズをネットワークスループット（ｂｐｓ）で割った値をサーバ滞留時間５０１から引く補正を行えば、さらに、見掛けのサーバ処理時間の精度が高くなる。
【００３９】
ところで、実際のトランザクション処理では、同時に複数要求が発行される場合がある。たとえば、ｈｔｔｐ処理におけるｐａｒａｌｌｅｌ  ＧＥＴでは、複数の要求が同時発生されることがある。このような場合は、何らかの処理がサーバに滞留している時間をサーバ処理時間とみなすと、サーバが複数のＣＰＵを有する場合は、実際のサーバ処理時間よりも小さい値となってしまう。また、各コネクションの見掛けのサーバ滞留時間の総和をサーバ処理時間とすると、サーバのＣＰＵ数以上の同時要求が行われた場合は、実際のサーバ処理時間より大きい値となってしまう。そこで、サーバの有するＣＰＵの数に応じて、処理の重なり具合を考慮して補正を行う必要がある。
【００４０】
図４は、複数要求におけるＣＰＵの個数に応じたサーバ処理時間の算出例を示している。（Ａ）は、ＣＰＵが１つの場合、（Ｂ）はＣＰＵが２つの場合、そして（Ｃ）はＣＰＵが４つの場合を示している。
【００４１】
パケットの流れは、いずれの場合も、クライアントからｈｔｔｐ  ＲＥＱ１（３１１）、ｈｔｔｐ  ＲＥＱ２（３１２）、ｈｔｔｐ  ＲＥＱ３（３１３）、ｈｔｔｐ  ＲＥＱ４（３１４）、の複数要求が同時要求され、サーバからそれぞれの応答ＨＴＭＬ  Ｄａｔａ１（３１５）、ＨＴＭＬ  Ｄａｔａ２（３１６）、ＨＴＭＬ  Ｄａｔａ３（３１７）、ＨＴＭＬ  Ｄａｔａ４（３１８）、がクライアントに送信される。
【００４２】
（Ａ）１ＣＰＵの場合は、１つのＣＰＵが同時要求された要求パケット３１１、３１２、３１３、３１４を順次処理し、応答パケット３１５、３１６、３１７、３１８を送信しているので、サーバ処理時間は、サーバ滞留時間と同じと見なせる。図の例の場合、最初の要求パケット３１１の受信から最後の応答パケット３１８の送信までの時間（サーバ滞留時間）がサーバ処理時間６１１になる。
【００４３】
（Ｂ）２ＣＰＵの場合は、第１のＣＰＵが第１の要求パケット３１１を処理し、次の第２のＣＰＵが第２の要求パケット３１２を処理する。続く第３の要求パケット３１３を処理する他のＣＰＵはないので、第１のＣＰＵが第１の要求パケット３１１の処理終了後に処理を行う。同様に、第４の要求パケットは、第２のＣＰＵが処理を行う。すなわち、第１のＣＰＵについては、第１の要求パケット３１１と第３の要求パケット３１３を順次処理し、第１の応答パケット３１５と第３の応答パケット３１７を送信する処理が行われる。また、第２のＣＰＵについては、第２の要求パケット３１２と第４の要求パケット３１４を順次処理し、第２の応答パケット３１６と第４の応答パケット３１８を送信する処理が行われる。したがって、第３の要求パケット３１３が受信されてから、第２の応答パケット３１６が送信されるまでの間は、ＣＰＵの処理待ちが発生していたことになる。そこで、サーバのＣＰＵを考慮し、処理の重なりがＣＰＵ数を超えるまでは、その区間の時間を累積してサーバ処理時間とし、重なりがＣＰＵ数を超えた場合は、重複する時間をサーバ処理時間に加えないようにして、サーバ処理時間を算出する。図の例の場合、第１のＣＰＵのサーバ処理時間（第１の要求パケット３１１受信から第１の応答パケット３１５送信までの時間６１２ａ＋第１の応答パケット３１５送信から第３の応答パケット３１７送信までの時間６１２ｂ）と、第２のＣＰＵのサーバ処理時間（第２の要求パケット３１２受信から第２の応答パケット３１６送信までの時間６１３ａ＋第２の応答パケット３１６送信から第４の応答パケット３１８送信までの時間６１３ｂ）から、重複する区間の処理時間（第３の要求パケット３１３受信から第１の応答パケット送信３１５までの時間）を引いた時間がサーバ処理時間になる。
【００４４】
（Ｃ）４ＣＰＵの場合は、第１のＣＰＵが第１の要求パケット３１１、第２のＣＰＵが第２の要求パケット３１２、第３のＣＰＵが第３の要求パケット３１３、第４のＣＰＵが第４の要求パケット３１４、を処理し、それぞれ応答を送信する。したがって、サーバ処理時間は、それぞれのＣＰＵの要求パケット受信から応答パケット送信まで累積となる。図の例の場合、第１のＣＰＵのサーバ処理時間（要求パケット３１１の受信から応答パケット３１５の送信までの時間）６１４、第２のＣＰＵのサーバ処理時間（要求パケット３１２の受信から応答パケット３１６の送信までの時間）６１５、第３のＣＰＵのサーバ処理時間（要求パケット３１３の受信から応答パケット３１７の送信までの時間）６１６および第４のＣＰＵのサーバ処理時間（要求パケット３１４の受信から応答パケット３１８の送信までの時間）６１７の総和が、サーバ処理時間になる。
【００４５】
ＣＰＵ数とサーバ処理時間の関係について詳細に説明する。
図５は、実施の形態のＣＰＵ数に応じたサーバ処理時間の算出方法を示した図である。
図は、同時に発生した複数要求について、パケットトレース情報の解析より得られるそれぞれのパケット受信から応答パケットの送信までの処理時間の経過を示した図である。処理１は、０．０で開始され、０．７で終了している。すなわち、パケットトレース情報における要求パケット受信が０．０、応答パケット送信が０．７に発生している。同様に、処理２は、０．１で開始されて０．８で終了し、処理３は０．２で開始されて０．９で終了し、処理４は０．３で開始されて１．０で終了している。
【００４６】
サーバが１ＣＰＵである場合、すべての処理は１つのＣＰＵで行われので、処理１の開始から処理４の終了までがサーバ処理時間になる。サーバのＣＰＵ数が複数の場合、同時刻にＣＰＵ数までの処理は並列して実行されるが、ＣＰＵ数を超えて重なる処理はＣＰＵ数までの処理しか行われない。
【００４７】
これを区間ごとに考察すると、処理１開始から処理２が開始されるまでの区間１（０．０→０．１）の間は、処理１のみが実行されているので、この区間時間はサーバ処理時間に累積される。次に、処理２が開始されてから処理３が開始されるまでの区間２（０．１→０．２）は、処理１と処理２の２つの処理が実行されているので、ＣＰＵ数が２以上であれば並列して処理が実行される。したがって、１ＣＰＵ当たりに換算したサーバ処理時間は、区間時間＊重なった処理数（＝２）になる。一方、１ＣＰＵの場合、並列処理は行われないので、サーバ処理時間は区間時間になる。次の処理３が開始されてから処理４が開始されるまでの区間３（０．２→０．３）は、処理１と処理２と処理３の場合、ＣＰＵ数が３以上であれば、並列して処理が実行され、サーバ処理時間は、区間時間＊重なった処理数（＝３）になる。また、ＣＰＵ数が１であれば、サーバ処理時間は区間時間になる。そして、ＣＰＵ数が２の場合は、２つのＣＰＵで並列処理を行っているので、サーバ処理時間は区間時間＊ＣＰＵ数（＝２）になる。以下、重なった処理数をコネクション数と表記する。
【００４８】
以上のように、同時に処理が重なった場合、コネクション数がＣＰＵ数を超えない場合は、その区間のサーバ処理時間は、その区間時間＊コネクション数で算出される。また、コネクション数がＣＰＵ数を超える場合には、その区間のサーバ処理時間は、その区間時間＊ＣＰＵ数で算出される。こうして算出された各区間のサーバ処理時間の総和がこのトランザクションのサーバ処理時間となる。
【００４９】
図の例で説明する。１ＣＰＵの場合、処理が重なっている区間も、重なっていない区間も１処理ずつ順次実行されるので、すべての区間におけるサーバ処理時間が区間時間＊処理数もしくはＣＰＵ数（＝１）になる。したがって、区間１から区間１０まで、区間時間（０．１）＊１のサーバ処理時間となり、全体のサーバ処理時間は、１．０になる。
【００５０】
２ＣＰＵの場合、区間１は１処理であるので、区間時間＊処理数（＝１）、区間２は２処理であるので区間時間＊処理数（＝２）、区間３から区間８までは処理が３以上であるので区間時間＊ＣＰＵ数（＝２）、同様にして、区間９、１０は、区間時間＊処理数で算出できる。したがって、全体のサーバ処理時間は、
０．１＊１＋０．１＊２＋０．６＊２＋０．１＊２＋０．１＊１＝１．８
と算出することができる。
【００５１】
４ＣＰＵの場合、全区間を区間時間＊処理数で算出できるので、全体のサーバ処理時間は、
０．１＊１＋０．１＊２＋０．１＊３＋０．４＊４＋０．１＊３＋０．１＊２＋０．１＊１＝２．８
と算出することができる。
【００５２】
なお、上記の説明では、説明を簡単にするため、区間時間が等しくなっていたが、実際の区間時間は、関係のあるパケットの送受信時刻によって決まる。
また、上記の説明は、同一トランザクションの複数要求が同時刻に発生する場合について説明したが、複数のトランザクションによる複数要求が同時刻に発生する場合もある。理想的には、一多重時のネットワークトレースを測定することで、同一トランザクションのみ実行されている測定データの解析を行いたいが、どうしてもそのような状況を作り出すことができない場合もある。このような場合、異なるトランザクションの複数要求が重なった区間の総コネクション数に対する注目トランザクションのコネクションの割合に応じてこの区間のサーバ処理時間を比例配分することにより、注目トランザクションのこの区間におけるサーバ処理時間を算出することができる。
【００５３】
図６は、第１の実施の形態のコネクション数に応じたサーバ処理時間の算出方法を示した図である。図５の例は、同一トランザクションによって複数の要求が同時刻に発生したが、図６の場合は、異なるトランザクションの処理Ａ、処理Ｂ、処理Ｃ、処理Ｄの要求が同時に処理される。なお、以下では、便宜的にサーバが有するＣＰＵ数を２とし、トランザクションＡによる処理Ａのサーバ処理時間の場合で説明する。処理Ｂ、処理Ｃおよび処理Ｄの場合も同様の手順でサーバ処理時間を算出することができる。
【００５４】
この場合も、サーバにおいて実行される処理が変化する区間ごとに、注目トランザクション（処理Ａ）のサーバ処理時間を算出する。
区間１では、処理Ａのみが実行されているので、この区間のサーバ処理時間は、区間時間になる。
【００５５】
次の区間２では、処理Ａとともに異なるトランザクションの処理Ｂが実行されているので、全体のサーバ処理時間は、区間時間＊コネクション数（＝２）になる。ところで、この区間は、異なるトランザクションの処理Ａと処理Ｂが実行されているので、全体のサーバ処理時間に占める処理Ａ（トランザクションＡ）の処理時間は、この区間におけるトランザクションＡのコネクション数の総コネクション数に占める割合で全体のサーバ処理時間を比例配分させることによって算出することができる。したがって、この区間のトランザクションＡに関するサーバ処理時間は、この区間全体のサーバ処理時間＊トランザクションＡのコネクション数／全コネクション数（処理Ａ＋処理Ｂ）とあらわすことができる。この場合、トランザクションＡの処理Ａの割合は、１／２となるので、区間２のトランザクションＡについてのサーバ処理時間は、
区間２サーバ処理時間＝区間時間（＝０．１）＊コネクション数（＝２）＊（１／２）＝０．１、
と算出することができる。
【００５６】
同様に、区間３は、処理Ａとともに処理Ｂ、処理Ｃが行われている３多重区間である。一方、区間３全体のサーバ処理時間は、区間時間＊ＣＰＵ数（＝２）で算出される。したがって、トランザクションＡの処理Ａについて、この区間のサーバ処理時間は、
区間３サーバ処理時間＝区間時間（＝０．１）＊ＣＰＵ数（＝２）＊（１／３）≒０．６７、
と算出することができる。
【００５７】
また、区間４は、４多重区間であり、全体のサーバ処理時間は、区間時間＊ＣＰＵ数（＝２）で算出される。そして、４多重であるので、処理Ａについてのサーバ処理時間は、
区間４サーバ処理時間＝区間時間（＝０．４）＊ＣＰＵ数（＝２）＊（１／４）＝０．２、
と算出することができる。
【００５８】
この結果、トランザクションＡに関する処理Ａのサーバ処理時間は、上記すべての区間の総和をとり、
区間１（０．１）＋区間１（０．１）＋区間３（０．６７）＋区間４（０．２）＝１．０７、
と算出される。
【００５９】
以上のように、パケットトレース情報を用いて、各トランザクションのサーバ処理時間を高い精度で算出することができる。
なお、トランザクションごとの見掛けのサーバ処理時間の中には、ＣＰＵ使用時間以外の要因が含まれている可能性もある。しかし、ＣＰＵがボトルネックのアプリケーションでは、サーバ処理時間に占めるＣＰＵ使用時間の割合が非常に大きいと考えられるため、トランザクションごとの見掛けのサーバ処理時間をＣＰＵ処理時間と見なしてワークロードモデルを定義することができる。
【００６０】
また、ＣＰＵ以外にもボトルネックが存在したり、見掛けのサーバ処理時間の算出に誤差が含まれている場合には、実測のトータルＣＰＵ使用時間とずれが生じる可能性があるため、実測されたトータルＣＰＵ使用時間をＴ、トランザクションごとの見掛けのサーバ処理時間ｔｉおよび該当区間のトランザクション件数ｎｉとすると、トータルＣＰＵ使用時間Ｔを、注目のトランザクションの全体の件数に占める割合で比例配分することで、トランザクションごとのＣＰＵ処理時間τｉを補正することができる。したがって、トランザクションごとのＣＰＵ処理時間は、
【００６１】
【数１】
2006133820.tif 000003
【００６２】
で補正することができる。
次に、第１の実施の形態におけるサーバ処理時間算出方法について説明する。図７は、第１の実施の形態のサーバ処理時間算出手順を示したフローチャートである。
【００６３】
汎用観測ツールによって測定されたパケットトレース情報をトランザクションやコネクション単位に分類した後、処理を開始する。
［ステップＳ０１］  分類されたパケットトレース情報を参照し、各コネクションのパケットを見て、サーバ滞留時間の生成／終了に関係する区間の区間開始パケットを選択する。たとえば、クライアントから受信したトランザクション処理を要求する要求パケットなどを区間開始パケットとして選択する。
【００６４】
［ステップＳ０２］  分類されたパケットトレース情報を参照し、ステップＳ０１で選択された区間開始パケットの次にサーバ滞留時間の生成／終了に関係するパケットを検索し、その有無を判定する。関係パケットが存在しない場合は、処理をステップＳ１０へ進める。
【００６５】
［ステップＳ０３］  ステップＳ０１で選択された区間開始パケットの関係パケットが存在する場合、分類されたパケットトレース情報を参照し、次にサーバ滞留時間の生成／終了に関係する区間終了パケットを選択する。たとえば、ステップＳ０１でクライアントから受信したトランザクション処理の応答パケット送信が次に検出された場合、これが選択される。また、たとえば、次のパケットが同一トランザクションの複数要求のパケットである場合も選択される。
【００６６】
［ステップＳ０４］  ステップＳ０１とステップＳ０３によって選択されたパケットにより規定される該当区間におけるサーバ滞留時間の重なり（同時コネクション総数）を検出し、ＣＰＵ数と比較する。同時コネクション数がＣＰＵ数より大きい場合は、処理をステップＳ０６へ進める。
【００６７】
［ステップＳ０５］  該当区間における同時コネクション数がＣＰＵ数よりも大きくない場合、サーバ処理時間として、同時コネクション数と区間時間の積を算出し、各トランザクションのサーバ処理時間として累積する。算出された値でサーバ処理時間を更新し、処理をステップＳ０９へ進める。
【００６８】
［ステップＳ０６］  該当区間における同時コネクション数がＣＰＵ数よりも大きい場合、該当区間に異なるトランザクションのサーバ滞留時間の重なりがあるかどうかを判定する。存在する場合は、処理をステップＳ０８へ進める。
【００６９】
［ステップＳ０７］  該当区間における同時コネクション数がＣＰＵ数よりも多いが、異なるトランザクションのサーバ滞留時間の重なりがない場合、ＣＰＵ数と区間時間の積を算出し、各トランザクションのサーバ処理時間として累積する。算出された値でサーバ処理時間を更新し、処理をステップＳ０９へ進める。
【００７０】
［ステップＳ０８］  該当区間における同時コネクション数がＣＰＵ数よりも多く、異なるトランザクションのサーバ滞留時間の重なりがある場合、該当区間における該当トランザクションの同時コネクション数が同時コネクション数に占める割合に応じて区間時間を比例配分した値を算出し、各トランザクションのサーバ処理時間として累積する。算出された値でサーバ処理時間を更新する。
【００７１】
［ステップＳ０９］  ステップＳ０３で選択された現時の区間終了パケットを区間開始パケットとし、ステップＳ０２に戻って、次の区間の処理を行う。
［ステップＳ１０］  関係パケットが存在せず、次の処理区間が存在しない（トランザクション処理が終了している）場合、サーバ資源情報で測定したトータルＣＰＵ使用時間のサンプリング値でサーバ処理時間を補正するかどうかを判定する。補正しない場合、算出されたサーバ処理時間をＣＰＵ使用時間として定義し、処理を終了する。
【００７２】
［ステップＳ１１］  トータルＣＰＵ使用時間で補正する場合、サンプリング区間のトランザクション数および累積したサーバ処理時間に基づき、トータルＣＰＵ使用時間を比例配分して、トランザクションごとのＣＰＵ使用時間を補正し、処理を終了する。
【００７３】
以上の手順が実行されることにより、各コネクションのパケットフロー列を同時に追いながら、多重度が変化する（要求ないし応答が発生する）までの区間ごとに多重度を計算しながら、各トランザクションのサーバ処理時間が算出される。そして、全パケットの検索が終了し、次の多重度変化がおきなくなったら、ＣＰＵ使用時間が定義される。
【００７４】
［第２の実施の形態］
第２の実施の形態は、クライアントとＷＥＢサーバ＋ＡＰＰサーバで構成される。第２の実施の形態は、ＷＥＢサーバの後段にＡＰＰサーバが配置された二階層システムの例であり、ＷＥＢサーバおよびＡＰＰサーバのそれぞれについてサーバ処理時間を算出する。以下、第１の実施の形態の場合と異なる点について説明する。
【００７５】
図８は、第２の実施の形態のクライアント−二階層サーバにおける一連のパケットの流れを示した図である。
クライアント２２と、二階層サーバ（ＷＥＢサーバ２１＋ＡＰＰサーバ２３）から成るシステム構成で、クライアント２２からの要求によっては、ＷＥＢサーバ２１からＡＰＰサーバ２３へ問合せが行われる。図の例では、クライアント２２からの要求１パケット３２１がＷＥＢサーバ２１で受信されると、ＷＥＢサーバ２１はＡＰＰサーバ２３へ要求３パケット３２２を送信して問合せを行う。そして、ＡＰＰサーバ２３から応答３パケット３２４を受信すると、ＷＥＢサーバ２１は所定の処理の後、クライアント２１に応答１パケット３２５を送信する。一方、クライアント２２から要求２パケット３２３を受信した場合、ＷＥＢサーバ２１は、自装置内で処理を行い、応答２パケット３２６をクライアント２２に送信する。
【００７６】
二階層システムの場合も、第１の実施の形態の場合と同様に、各区間におけるコネクションの多重度を考慮してサーバ処理時間を算出する。なお、後段のＡＰＰサーバ２３に要求送信した場合には、その応答を受信するまでの時間は、ＷＥＢサーバ２１のサーバ処理時間ではないとみなす。そこで、この区間は、多重度＝−１として重なり具合をカウントし、サーバ処理時間算出を行う。
【００７７】
図の例で説明する。ＷＥＢサーバ２１が、クライアント２２から要求１パケット３２１を受信した時点から、応答１パケット３２５を送信するまでのトランザクションＴ１に関する処理は多重度１となる。同様に、ＷＥＢサーバ２１が、クライアント２２から要求２パケット３２３を受信した時点から、応答２パケット３２６を送信するまでのトランザクションＴ２に関する処理は多重度１となる。また、ＡＰＰサーバ２３が、ＷＥＢサーバ２１から要求３パケット３２２を受信した時点から、応答３パケット３２４を送信するまでのトランザクションＴ３に関する処理は多重度１となるが、このトランザクションＴ３におけるＷＥＢサーバ２１の多重度は−１される。したがって、ＷＥＢサーバ２１について、ＡＰＰサーバ２３のＴ３処理が実行される区間の多重度は、Ｔ１処理およびＴ２処理から算出される多重度−１で多重度が決まる。
【００７８】
図９は、第２の実施の形態における区間ごとの多重度を示した図である。
まず、ＷＥＢサーバ２１について多重度を見る。多重度が変化する区間ごとに細かく分析すると、要求１パケット３２１を受信してから要求３パケット３２２送信までの区間は、ＷＥＢサーバ２１のＴ１処理は、１多重で処理される。次の要求３パケット３２２受信から要求２パケット３２３受信までの区間は、Ｔ１処理の多重度＋１と、ＷＥＢサーバにおけるＴ３処理の多重度−１とを加算した多重度０となる。すなわち、ＷＥＢサーバにおける処理はない。続く要求２パケット３２３受信から応答３パケット３２４受信までの区間は、Ｔ２処理が行われ、多重度は１になる。詳しくは、Ｔ１処理の多重度（＋１）＋Ｔ３処理の多重度（−１）＋Ｔ２処理の多重度（＋１）になる。同様にして、応答３パケット３２４受信から応答１パケット３２５までの区間の多重度は２、応答１パケット３２５送信から応答２パケット３２６送信までの区間の多重度は１になる。
【００７９】
一方、ＡＰＰサーバ２３は、要求３パケット３２２受信から応答３パケット３２４送信までの区間でＴ３処理が実行され、多重度は１になる。
したがって、ＷＥＢサーバ２１が２ＣＰＵ以上とした場合、Ｔ１とＴ２を合わせた全体のサーバ処理時間は、
ＷＥＢサーバ処理時間＝Ｔ１＿ＳＶ１＋Ｔ２＿ＳＶ１−Ｔ３＿ＳＶ１
と算出することができる。
【００８０】
同様に、ＡＰＰサーバ２３は、
ＡＰＰサーバ処理時間＝Ｔ３＿ＳＶ１
と算出することができる。
【００８１】
なお、ＷＥＢサーバ２１について、各トランザクションごとのサーバ処理時間の算出方法は、第１の実施の形態の場合と同様の処理で行うことができるので、説明は省略する。
次に、上記の説明のサーバ処理時間（ＣＰＵ使用時間）算出処理の手順について、各段階で生成される情報の一例を示しながら説明する。
【００８２】
まず、汎用観測ツールを用いて対象システムを測定し、ネットワークを流れるパケットを捉えたパケットトレース情報を生成する。
図１０は、クライアントで取得されたパケットトレース情報の一例を示した図であり、図１１は、ＷＥＢサーバで取得されたパケットトレース情報の一例を示した図である。
【００８３】
パケットトレース情報には、少なくともパケットが検出された時間、送信元、受信元およびパケットの内容情報が含まれている。たとえば、クライアントのパケットトレース情報では、時間０．０にクライアントからＷＥＢサーバにｈｔｔｐ  ＧＥＴパケットが送信されたことが記録されている。同様に、ＷＥＢサーバでは、時間０．２にクライアントから送信されたｈｔｔｐ  ＧＥＴパケットを受信したことが記録されている。
【００８４】
パケット解析手段１ａでは、トランザクション定義のためのルール指定に従って、パケットトレース情報を解析し、所定のトランザクションに関するパケットを抽出してトランザクションごとのコネクションを抽出したトランザクション情報を作成する。
【００８５】
図１２は、トランザクションＡのトランザクション情報の一例を示した図であり、図１３は、トランザクションＢのトランザクション情報の一例を示した図である。
トランザクション情報には、それぞれのコネクションについて要求した側の情報（時間、要求元）と処理側の情報（時間、処理装置）と通信方向がパケットトレース情報から抽出され、格納されている。
【００８６】
たとえば、トランザクションＡに関するトランザクション情報（図１２）から、トランザクションＡについては、２つのコネクション（コネクション１とコネクション２）が発生している。また、コネクション１は、ＷＥＢサーバ側の時間で０．２にクライアントから要求パケットを受信し、応答パケットを０．７と０．８で送信していることがわかる。同様に、コネクション２は、ＷＥＢサーバ側の時間で０．３にクライアントから要求パケットを受信し、応答パケットを０．９と１．０で送信していることがわかる。同様に、トランザクションＢについても、トランザクションＢに関するトランザクション情報（図１３）から、２つのコネクション（コネクション３とコネクション４）が発生し、コネクション３は、ＷＥＢサーバ側の時間で５．２にクライアントから要求パケットを受信し、応答パケットを５．７で送信していることがわかる。
【００８７】
このようにして得られたトランザクション情報に基づき、サーバ処理時間手段１ｂは、サーバ処理時間をする。また、必要に応じて、さらに、ＣＰＵ使用時間補正手段１ｃがＣＰＵ処理時間を算出する。ＣＰＵ使用時算出手段１ｃによる補正が行われない場合は、サーバ処理時間算出手段１ｂの算出したサーバ処理時間をＣＰＵ使用時間と見なす。
【００８８】
そして、トランザクションごとのＣＰＵ使用時間が算出される。
図１４は、トランザクションごとのＣＰＵ使用時間情報の一例を示した図である。
図の例では、ＣＰＵ使用時間情報として、トランザクションと、実行サーバ、そのＣＰＵ使用時間が格納される。たとえば、ＣＰＵ使用時間情報から、トランザクションＡは、ＷＥＢサーバで実行され、ＣＰＵ使用時間は１．１であることがわかる。同様に、トランザクションＢは、ＷＥＢサーバとＡＰＰサーバで実行され、ＷＥＢサーバのＣＰＵ使用時間は０．２、ＡＰＰサーバのＣＰＵ使用時間は０．３であることがわかる。
【００８９】
こうして算出されたＣＰＵ使用時間は、ワークロード定義手段１ｄで、モデルのワークロードを定義するために使用される。
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、ワークロードモデル作成装置が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＤＶＤ(Digital Versatile Disc)、ＤＶＤ−ＲＡＭ(Random Access Memory)、ＣＤ−ＲＯＭ(Compact Disc Read Only Memory)、ＣＤ−Ｒ(Recordable)／ＲＷ(ReWritable)などがある。光磁気記録媒体には、ＭＯ(Magneto-Optical disk)などがある。
【００９０】
プログラムを流通させる場合には、たとえば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【００９１】
プログラムを実行するコンピュータは、たとえば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。
【００９２】
（付記１）  実環境もしくはテスト環境でアプリケーションを実行する測定対象サーバ群について汎用観測ツールを用いて観測された測定情報に基づき、所定のトランザクションに要する処理時間を算出するための処理時間算出プログラムにおいて、
コンピュータを、
前記汎用観測ツールが捉えた前記サーバに送受信されるパケットのパケットトレース情報を取得して解析し、前記トランザクションに関し依存関係のあるパケット群に関する情報を抽出したトランザクション情報を作成するパケット解析手段、
前記トランザクション情報に基づいて、前記依存関係のあるパケット群の処理が前記サーバに滞留しているサーバ滞留時間を算出するとともに、前記トランザクションの重なりや前記サーバの構成を含む前記測定対象の特性に基づいて前記サーバ滞留時間を補正し、前記トランザクションごとの前記サーバ処理時間を算出するサーバ処理時間算出手段、
として機能させることを特徴とする処理時間算出プログラム。
【００９３】
（付記２）  前記サーバ処理時間算出手段に、同一の前記トランザクションの複数要求が同一時刻に前記サーバに滞留している場合に、同一時刻に重複するコネクション数と前記サーバを構成するＣＰＵの数を比較し、前記コネクション数が前記ＣＰＵ数までは前記サーバ滞留時間を前記サーバ処理時間に加算し、前記コネクション数が前記ＣＰＵ数を超える場合には超えた前記コネクション数の前記サーバ滞留時間を加算せずに前記サーバ処理時間を算出させる、
ことを特徴とする付記１記載の処理時間算出プログラム。
【００９４】
（付記３）  前記サーバ処理時間算出手段に、前記サーバに滞留する前記コネクション数が変化する区間ごとに、前記区間において重なったコネクション数と前記サーバの有するＣＰＵ数を比較し、前記コネクション数が前記ＣＰＵ数を超えない場合は前記区間の処理時間と前記コネクション数を乗算し、前記コネクション数が前記ＣＰＵ数を超えた場合は前記区間の処理時間と前記ＣＰＵ数を乗算して前記区間ごとの前記サーバ処理時間を算出し、全区間の前記サーバ処理時間を累積して前記サーバ処理時間を算出させる、
ことを特徴とする付記２記載の処理時間算出プログラム。
【００９５】
（付記４）  前記サーバ処理時間算出手段に、複数の別トランザクションの複数要求が同一時刻に前記サーバに滞留している場合に、前記別トランザクションのコネクションが重なる区間において、注目する前記トランザクションのコネクションが前記重なる区間における前記コネクションの総和に占める割合で、前記サーバの構成に応じて算出された前記サーバ処理時間を比例配分して前記トランザクションごとの前記サーバ処理時間を算出させる、
ことを特徴とする付記１記載の処理時間算出プログラム。
【００９６】
（付記５）  前記サーバ処理時間算出手段に、前記サーバに滞留する前記コネクション数が変化する区間ごとに、前記コネクション数と前記サーバの有するＣＰＵ数を比較し、前記コネクション数が前記ＣＰＵ数を超えない場合は前記区間の処理時間と前記コネクション数を乗算し、前記コネクション数が前記ＣＰＵ数を超えた場合は前記区間の処理時間と前記ＣＰＵ数を乗算して前記区間ごとの前記サーバ処理時間を算出し、前記区間に複数の別トランザクションのコネクションが重なる場合、注目する前記トランザクションの前記コネクションが前記重なる区間における前記コネクションの総和に占める割合で、前記ＣＰＵ数に応じて算出された前記区間のサーバ処理時間を比例配分して前記トランザクションの前記区間における前記サーバ処理時間を算出し、算出された全区間の前記サーバ処理時間を累積して前記サーバ処理時間を算出させる、
ことを特徴とする付記４記載の処理時間算出プログラム。
【００９７】
（付記６）  コンピュータを、さらに、
前記汎用観測ツールで測定された前記サーバのＣＰＵが使用されたトータルＣＰＵ処理時間を、前記サーバ処理時間算出手段によって算出された前記トランザクションごとの前記サーバ処理時間が前記サーバ処理時間の総和に占める割合に応じて比例配分し、前記トランザクションごとのＣＰＵ使用時間を補正するＣＰＵ使用時間補正手段、
として機能させることを特徴とする付記１記載の処理時間算出プログラム。
【００９８】
（付記７）  前記サーバ処理時間算出手段に、前記測定対象サーバが複数の装置から成るサーバ群に属しており、前記トランザクションに応じて前記サーバ群に属する他の前記サーバに処理を依頼する場合、前記他のサーバによる処理時間を前記サーバ処理時間から減算させる、
ことを特徴とする付記１記載の処理時間算出プログラム。
【００９９】
（付記８）  実環境もしくはテスト環境でアプリケーションを実行する測定対象サーバ群について汎用観測ツールを用いて観測された測定情報に基づいて所定のトランザクションに要する処理時間を算出し、前記処理時間を用いてワークロードモデルを定義するためのワークロードモデル作成プログラムにおいて、
コンピュータを、
前記汎用観測ツールが捉えた前記サーバに送受信されるパケットのパケットトレース情報を取得して解析し、前記トランザクションに関し依存関係のあるパケット群に関する情報を抽出したトランザクション情報を作成するパケット解析手段、
前記トランザクション情報に基づいて、前記依存関係のあるパケット群の処理が前記サーバに滞留しているサーバ滞留時間を算出するとともに、前記トランザクションの重なりや前記サーバの構成を含む前記測定対象の特性に基づいて前記サーバ滞留時間を補正し、前記トランザクションごとの前記サーバ処理時間を算出するサーバ処理時間算出手段、
前記トランザクションごとの前記サーバ処理時間を前記サーバのＣＰＵ処理時間と見なしてワークロードを定義し、性能予測の対象のワークロードモデルを作成するワークロード定義手段、
として機能させることを特徴とするワークロードモデル作成プログラム。
【０１００】
（付記９）  コンピュータを、さらに、
前記汎用観測ツールで測定された所定の区間にＣＰＵが使用されたトータルＣＰＵ処理時間を、前記サーバ処理時間算出手段によって算出された前記トランザクションごとの前記サーバ処理時間が前記所定の区間に占める割合に応じて比例配分し、トランザクションごとのＣＰＵ使用時間を算出するＣＰＵ使用時間補正手段、として機能させるとともに、
前記ワークロード定義手段に、前記ＣＰＵ使用時間補正手段によって算出された前記トランザクションごとの前記ＣＰＵ処理時間を用いてワークロードを定義させる、
ことを特徴とする付記８記載のワークロードモデル作成プログラム。
【図面の簡単な説明】
【０１０１】
【図１】実施の形態に適用される発明の概念図である。
【図２】本実施の形態のワークロードモデル作成装置のハードウェア構成例を示すブロック図である。
【図３】第１の実施の形態のクライアント−ＷＥＢサーバにおける一連のパケットの流れを示した図である。
【図４】複数要求におけるＣＰＵの個数に応じたサーバ処理時間の算出例を示している。
【図５】実施の形態のＣＰＵ数に応じたサーバ処理時間の算出方法を示した図である。
【図６】第１の実施の形態のコネクション数に応じたサーバ処理時間の算出方法を示した図である。
【図７】第１の実施の形態のサーバ処理時間算出手順を示したフローチャートである。
【図８】第２の実施の形態のクライアント−二階層サーバにおける一連のパケットの流れを示した図である。
【図９】第２の実施の形態における区間ごとの多重度を示した図である。
【図１０】クライアントで取得されたパケットトレース情報の一例を示した図である。
【図１１】ＷＥＢサーバで取得されたパケットトレース情報の一例を示した図である。
【図１２】トランザクションＡのトランザクション情報の一例を示した図である。
【図１３】トランザクションＢのトランザクション情報の一例を示した図である。
【図１４】トランザクションごとのＣＰＵ使用時間情報の一例を示した図である。
【図１５】従来のワークロードモデル作成手順を示したフロー図である。
【図１６】ワークロードモデルの概要を示した図である。
【符号の説明】
【０１０２】
１  ワークロードモデル作成装置
１ａ  パケット解析手段
１ｂ  サーバ処理時間算出手段
１ｃ  ＣＰＵ使用時間補正手段
１ｄ  ワークロード定義手段
２  実機システム
２ａ  サーバＡ
２ｂ  サーバＢ
３  パケットトレース情報
４  サーバ資源情報
５  トランザクション情報
６  サーバ処理時間情報
７  ワークロードモデル
【図１】
2006133820.tif 000004
【図２】
2006133820.tif 000005
【図３】
2006133820.tif 000006
【図４】
2006133820.tif 000007
【図５】
2006133820.tif 000008
【図６】
2006133820.tif 000009
【図７】
2006133820.tif 000010
【図８】
2006133820.tif 000011
【図９】
2006133820.tif 000012
【図１０】
2006133820.tif 000013
【図１１】
2006133820.tif 000014
【図１２】
2006133820.tif 000015
【図１３】
2006133820.tif 000016
【図１４】
2006133820.tif 000017
【図１５】
2006133820.tif 000018
【図１６】
2006133820.tif 000019