以下、本発明の実施形態を図面を参照して説明する。
実施形態1.
図1は、本発明の第1の実施形態のシミュレーション用データ生成システムの例を示すブロック図である。本発明のシミュレーション用データ生成システムは、予め定められたシミュレーション用モデルでシミュレーションを行うためのシミュレーション用データを生成する。
第1の実施形態のシミュレーション用データ生成システムは、データ測定手段1と、測定データマッピング知識記憶手段2と、シミュレーション用データ算出手段3と、シミュレーション用データ記憶手段4とを備える。シミュレーション用モデルは、予め定められていて、シミュレーション用データ記憶手段4に記憶されている。
測定対象システム10は、稼働しているコンピュータシステムである。測定対象システム10の例として、Web三層システムが挙げられるが、測定対象システム10の種類は特に限定されず、Web三層システム以外のシステムであってもよい。
データ測定手段1は、測定対象システム10から、測定対象システム10に関するデータを測定する。測定の対象となるデータは、予め定められている。以下、測定の対象となるデータを測定データと記す。測定データの例として、コンピュータの稼働状態に関する情報、コンピュータの構成に関する情報、アプリケーションプログラム(以下、単にアプリケーションと記す。)の動作状態に関する情報、アプリケーションの動作環境に関する情報等が挙げられる。測定データのより具体的な例として、例えば、CPU負荷、ネットワーク転送量、実行プロセス数、ディスク書き込みサイズ等の性能に関するパフォーマンスデータ、CPU等のシステム構成に関する情報、アプリケーションの設定情報等が挙げられる。
ただし、コンピュータの稼働状態に関する情報、コンピュータの構成に関する情報、アプリケーションの動作状態に関する情報、アプリケーションの動作環境に関する情報等は測定データの例示であり、データ測定手段1は、測定データとして、上記の各情報を全て測定せずに、上記の情報のうちの一部を測定してもよい。また、他の情報を測定データとして測定してもよい。
測定データマッピング知識記憶手段2は、少なくとも、測定データとシミュレーション用データとの関連を記述した情報である測定データマッピング知識を記憶する記憶装置である。測定データとシミュレーション用データとの関連の記述態様として、例えば、測定データ、または、測定データに対する演算結果を表す変数を用いて、その変数からシミュレーション用データの値を算出する算出式を記述する態様がある。以下、測定データマッピング知識内に、測定データとシミュレーション用データとの関連として、上記のような算出式が記述されている場合を例にして説明する。
シミュレーション用データの値を算出する算出式では、測定データそのものを表す変数が用いられていても、測定データに対する演算結果を表す変数が用いられていても、あるいは、その両方が用いられていてもよい。測定データから得られた値をこれらの変数に代入して計算することにより、シミュレーション用データの値を算出することができる。
ここで、シミュレーション用モデルは予め定められているので、シミュレーション用モデルでシミュレーションを行うためのシミュレーション用データも予め定めることができる。測定データマッピング知識内に記述する算出式は、そのシミュレーション用データと、データ測定手段1が測定する測定データの種類とに基づいて、予め定めておき、測定データマッピング知識に記述しておけばよい。
また、算出式で、測定データに対する演算結果を表す変数が用いられている場合、その演算結果の導出方法も測定データマッピング知識に記述しておけばよい。測定データに対する演算の例としては、測定データの平均値算出や、最大値の特定等が挙げられるが、これらの演算に限定されるわけではない。
シミュレーション用データ算出手段3は、測定データマッピング知識に記述された、測定データとシミュレーション用データとの関連に基づいて、測定データからシミュレーション用データの値を算出する。具体的には、測定データマッピング知識に記述された算出式における変数に、測定データ、または測定データに対する演算によって得られた結果を代入して、シミュレーション用データの値を計算すればよい。
シミュレーション用データ記憶手段4は、予め定められたシミュレーション用モデルを記憶するとともに、シミュレーション用データ算出手段3によって算出されたシミュレーション用データを記憶する記憶装置である。シミュレーション用データ算出手段3は、計算したシミュレーション用データをシミュレーション用データ記憶手段4に記憶させる。
データ測定手段1およびシミュレーション用データ算出手段3は、例えば、シミュレーション用データ生成プログラムに従って動作するコンピュータのCPUによって実現される。この場合、例えば、コンピュータのプログラム記憶装置(図示略)がシミュレーション用データ生成プログラムを記憶し、CPUがそのプログラムを読み込み、そのプログラムに従って、データ測定手段1およびシミュレーション用データ算出手段3として動作すればよい。また、データ測定手段1およびシミュレーション用データ算出手段3がそれぞれ別のユニットで実現されていてもよい。
また、測定データマッピング知識記憶手段2およびシミュレーション用データ記憶手段4は、それぞれ別々の記憶装置で実現されていても、あるいは、同一の記憶装置で実現されていてもよい。
次に、動作について説明する。
図2は、本発明の第1の実施形態の処理経過の例を示すフローチャートである。まず、データ測定手段1が、測定対象システムから測定データを収集する(ステップS1)。
次に、シミュレーション用データ算出手段3が、シミュレーションに必要なシミュレーション用データの算出方法を、測定データマッピング知識から抽出する(ステップS2)。シミュレーションに必要なシミュレーション用データは、予め定められている。また、そのシミュレーション用データは1つに限定されるわけではない。ステップS2において、シミュレーション用データ算出手段3が、予め定められたシミュレーション用データ毎に、その算出方法を、測定データマッピング知識から抽出すればよい。
また、本例では、測定データとシミュレーション用データとの関連として、測定データ、または、測定データに対する演算結果を変数として、その変数からシミュレーション用データの値を算出する算出式が測定データマッピング知識に記述されている。従って、ステップS2において、シミュレーション用データ算出手段3は、予め定められたシミュレーション用データ毎に、シミュレーション用データの算出式を測定データマッピング知識から抽出すればよい。なお、算出式で、測定データに対する演算結果を表す変数が用いられている場合、その演算結果の導出方法も測定データマッピング知識から抽出すればよい。
続いて、シミュレーション用データ算出手段3は、ステップS2で抽出した算出方法(算出式)に従って、シミュレーション用データの値を計算する(ステップS3)。シミュレーション用データ算出手段3は、シミュレーション用データの算出式における変数に、その変数が表す測定データの値や、測定データを用いた演算の演算結果を代入して、シミュレーション用データを算出すればよい。算出式における変数が、測定データを用いた演算の演算結果(例えば、測定データの平均値や最大値等)を表している場合、測定データを用いて平均値や最大値等を求める演算を行ってから、その演算結果を変数に代入すればよい。
シミュレーション用データ算出手段3は、予め定められたシミュレーション用データに対して、それぞれステップS3の処理を行い、シミュレーション用データの値を計算する。
シミュレーション用データ算出手段3は、ステップS3で算出した各シミュレーション用データの値をシミュレーション用データ記憶手段4に記憶させる(ステップS4)。
シミュレーション用データ記憶手段4に記憶された各シミュレーション用データをシミュレーション用モデルに適用してシミュレーションを行うことで、精度の高いシミュレーション結果を得ることができる。
本実施形態によれば、シミュレーション用データ算出手段3が、測定データマッピング知識に記述された方法(算出式)に従って、測定データからシミュレーション用データを計算する。従って、シミュレーション用データと、測定データの項目とが一致していなくても、予め用意されたシミュレーション用モデルに適合するシミュレーション用データを得ることができる。よって、そのシミュレーション用データを用いて、精度の高いシミュレーションを実行することができる。
また、シミュレーション用モデルに適合するシミュレーション用データを算出することができるので、シミュレーション用データと、測定データの項目とが一致していなくても、シミュレーション用データに合わせてデータ測定を行う必要がない。また、シミュレーション用データに合わせて測定したデータよりも、高精度のシミュレーションを行えるシミュレーション用データを得ることができる。
実施形態2.
図3は、本発明の第2の実施形態のシミュレーション用データの生成システムの例を示すブロック図である。第1の実施形態と同様の構成要素に関しては、図1と同一の符号を付し、詳細な説明を省略する。第2の実施形態のシミュレーション用データ生成システムは、データ測定手段1と、測定データ状態分析ルール記憶手段21と、システム状態分析手段22と、状態付き測定データ記憶手段23と、測定データマッピング知識記憶手段2と、マッピング知識選択手段24と、シミュレーション用データ算出手段3と、シミュレーション用データ記憶手段4とを備える。
データ測定手段1は、第1の実施形態と同様に、測定対象システム10から測定データを測定する。本実施形態では、データ測定手段1は、その測定データを、システム状態分析手段22に入力する。また、データ測定手段1は、その測定データを状態付き測定データ記憶手段23に記憶させてもよい。
測定データ状態分析ルール記憶手段21は、システムの状態(例えば、負荷状態)を表す条件と、その条件が満たされた場合に測定データに対して行う演算とを、システムの複数の状態に関して規定した情報を記憶する。本実施形態では、この情報を、測定データ状態分析ルールと記すが、この情報は、演算規定情報と称することもできる。また、この条件は、満たされている場合に、システムの特定の状態に該当することを表す。
測定データ状態分析ルールでは、例えば、定常状態、最大負荷状態等の複数の状態に関して、それぞれ、その状態に該当することを表す条件と、その条件が満たされた場合に測定データに対して行う演算の情報とが対応付けられる。この条件は、測定データを参照することにより満たされているか否かを判定可能な条件である。条件が満たされた場合に測定データに対して行う演算の例として、例えば、平均値算出や、最大値の特定等が挙げられるが、これらの演算に限定されない。例えば、演算の内容が、「何も行わない」というものであってもよい。
システム状態分析手段22は、データ測定手段1によって測定された測定データと、測定データ状態分析ルールにおいてシステムの各種状態毎に記述された条件とを比較し、測定データが条件を満たしている場合、その条件が表しているシステムの状態を特定する。そして、システム状態分析手段22は、測定データが条件を満たしている場合、その条件に対応付けられた演算を、測定データに対して行い、その演算結果と、その条件が表しているシステムの状態の情報とを対応づけて状態付き測定データ記憶手段23に記憶させる。
状態付き測定データ記憶手段23は、上述のように、システム状態分析手段22によって特定されたシステムの状態と、その状態を表す条件が満たされる場合に行われる演算の結果とを対応付けて記憶する記憶装置である。
第2の実施形態でも、測定データマッピング知識記憶手段2は、測定データマッピング知識を記憶する。第2の実施形態では、ある一つのシミュレーション用データに着目した場合、そのシミュレーション用データを算出式を含む測定データマッピング知識を複数種類記憶する。すなわち、本実施形態では、測定データマッピング知識記憶手段2は、シミュレーション用データ毎に、複数種類の測定データマッピング知識を記憶する。
また、本実施形態において、測定データマッピング知識が、シミュレーション用データの算出式として、システムの状態を表す条件が満たされた場合にシステム状態分析手段22によって行われる演算の演算結果を表す変数を用いた算出式が記述される。そして、ある一つのシミュレーション用データに着目した場合、そのシミュレーション用データを算出するための各測定データマッピング知識同士では、算出式に用いる変数が異なる。
例えば、シミュレーション用データ“D”を算出するための複数の測定データマッピング知識を定める場合、それらの測定データマッピング知識には、それぞれ、Dの算出式が記述されているが、Dの算出式で用いられる変数の組合せが異なる。例えば、ある測定データマッピング知識では、Dの算出式において、定常状態を表す条件が満足された場合の演算の演算結果を表す変数と、無負荷状態を表す条件が満足された場合の演算の演算結果を表す変数とが用いているとする。他の測定データマッピング知識では、Dの算出式において、そのような変数の組合せを用いず、他の変数の組合せを用いる。例えば、最大負荷状態を表す条件が満足された場合の演算の演算結果を表す変数や、ボトルネック発生状態を表す条件が満足された場合の演算の演算結果を表す変数を用いてDを算出する算出式が記述される。
このように、1つのシミュレーション用データに着目した場合、システムの種々の状態の組合せに関して、それぞれ、そのシミュレーション用データを算出するための算出式を定めておき、状態の各組合せに対応する各測定データマッピング知識を定めておく。このとき、算出式で用いられている変数が、システムのどの状態を表す条件が満たされた場合の演算結果であるのかを識別できるように、その変数に対応するシステムの状態を示す情報を測定データマッピング知識に記述しておく。そして、そのシミュレーション用データを算出するため複数の測定データマッピング知識を測定データマッピング知識記憶手段2に記憶させておく。このように、個々のシミュレーション用データ毎に測定データマッピング知識を複数種類定めておき、それぞれ測定データマッピング知識記憶手段2に記憶させておく。
マッピング知識選択手段24は、測定データ状態分析ルール内の満たされている条件が表すシステムの状態(すなわち、システム状態分析手段22によって特定されたシステムの状態)を示す情報と、その状態に対応付けられた演算結果とを、状態付き測定データ記憶手段23から読み込む。そして、マッピング知識選択手段24は、そのシステムの状態に応じた測定データマッピング知識(すなわち、そのシステムの状態を示す情報が記述された測定データマッピング知識)を、測定データマッピング知識記憶手段2から読み込む。このとき、マッピング知識選択手段24は、より具体的には、測定データ状態分析ルール内の満たされている条件が表すシステムの状態を示す情報が記述されていて、満たされていない条件が表すシステムの状態を示す情報が記述されていない測定データマッピング知識を読み込む。
シミュレーション用データ算出手段3は、マッピング知識選択手段24が測定データマッピング知識記憶手段2から読み込んだ測定データマッピング知識内の算出式の変数に、マッピング知識選択手段24が状態付きデータ記憶手段23から読み込んだ演算結果を代入して、その算出式を計算することによって、シミュレーション用データの値を算出する。
マッピング知識選択手段24が読み込んだ測定データマッピング知識には、測定データ状態分析ルール内の満たされている条件に応じて、測定データに対してシステム状態分析手段22が行った演算結果を表す変数が含まれている。しかし、条件が満たされていないために行われなかった演算に関する演算結果を表す変数は含まれていない。シミュレーション用データ算出手段3は、このような算出式を用いて、シミュレーション用データの値を算出する。
シミュレーション用データ算出手段3は、算出したシミュレーション用データの値をシミュレーション用データ記憶手段4に記憶させる。
第2の実施形態において、データ測定手段1、システム状態分析手段22、マッピング知識選択手段24およびシミュレーション用データ算出手段3は、例えば、シミュレーション用データ生成プログラムに従って動作するコンピュータのCPUによって実現される。この場合、例えば、コンピュータのプログラム記憶装置(図示略)がシミュレーション用データ生成プログラムを記憶し、CPUがそのプログラムを読み込み、そのプログラムに従って、データ測定手段1、システム状態分析手段22、マッピング知識選択手段24およびシミュレーション用データ算出手段3として動作すればよい。また、データ測定手段1、システム状態分析手段22、マッピング知識選択手段24およびシミュレーション用データ算出手段3がそれぞれ別のユニットで実現されていてもよい。
また、測定データ状態分析ルール記憶手段21、状態付き測定データ記憶手段23、測定データマッピング知識記憶手段2およびシミュレーション用データ記憶手段4は、それぞれ別々の記憶装置で実現されていても、あるいは、同一の記憶装置で実現されていてもよい。
次に、動作について説明する。
図4は、本発明の第2の実施形態の処理経過の例を示すフローチャートである。まず、データ測定手段1が、測定対象システムから測定データを収集する(ステップS11)。
次に、システム状態分析手段22が、測定データ状態分析ルールを参照して、その測定データ状態分析ルール内の条件が測定データによって満たされている場合、その条件に対応するシステムの状態を特定する。また、システム状態分析手段22は、測定データ状態分析ルールにおいて、その条件に対応付けて定められている演算を、測定データを用いて行う(ステップS12)。
システム状態分析手段22が、満たされていると判定された条件に対応するシステムの状態を示す情報と、演算結果とを対応づけて、状態付き測定データ記憶手段23に記憶させる(ステップS13)。すなわち、ステップS12で特定されたシステムの状態を示す情報と、ステップS12で行われた演算の演算結果とを対応付けて状態付き測定データ記憶手段23に記憶させる。
マッピング知識選択手段24は、満たされていると判定された条件に対応するシステムの状態を示す情報が記述されている測定データマッピング知識を読み出す。具体的には、マッピング知識選択手段24は、満たされている条件が表すシステムの状態を示す情報と、その状態に対応付けられた演算結果とを、状態付き測定データ記憶手段23から読み込む。そして、その状態を示す情報が記述され、満たされていない条件が表すシステムの状態を示す情報が記述されていない測定データマッピング知識を読み込む。
そして、マッピング知識選択手段24は、その測定データマッピング知識から、シミュレーションに必要なシミュレーション用データの算出方法を抽出する(ステップS14)。
マッピング知識選択手段24が読み込んだ測定データマッピング知識には、測定データ状態分析ルール内の条件が満たされていることにより、その条件に対応付けられた演算の演算結果を表す変数を用いたシミュレーション用データの算出式が記述されている。また、この算出式では、測定データ状態分析ルール内の満たされていない条件に対応する演算の演算結果を表す変数は含まれていない。マッピング知識選択手段24は、測定データマッピング知識から、この算出式を抽出する。
次に、シミュレーション用データ算出手段3は、ステップS14で抽出された算出式で用いられている変数に値を代入する。この値は、条件が満たされていることにより行われた演算の結果であり、マッピング知識選択手段24が条件付測定データ記憶手段23から読み込んだ値である。シミュレーション用データ算出手段3は、この値をステップS14で抽出された算出式に代入して、その算出式の計算を行うことによって、シミュレーション用データを算出する(ステップS15)。
シミュレーション用データ算出手段3は、ステップS15の計算結果(すなわち、シミュレーション用データ)をシミュレーション用データ記憶手段4に記憶させる(ステップS16)。
マッピング知識選択手段24およびシミュレーション用データ算出手段3は、予め定められたシミュレーション用データに対して、それぞれステップS14〜S16の処理を行えばよい。
シミュレーション用データ記憶手段4に記憶された各シミュレーション用データをシミュレーション用モデルに適用してシミュレーションを行うことで、精度の高いシミュレーション結果を得ることができる。
本実施形態においても、第1の実施形態と同様の効果が得られる。
以下、本発明の実施例を説明する。
実施例1は、第1の実施形態に対応する実施例である。本実施例では、測定対象システム10がWeb三層システムである場合を例にして説明する。図5は、Web三層システムの例を示す説明図である。Web三層システムは、リクエストを受け付けるWebサーバ41と、リクエストに応じた処理を行うWebAP(アプリケーション)サーバ42と、データベースサーバ43とを備える。また、それらの各サーバ41〜43は、スイッチ44に接続されている。
データ測定手段1は、図5に例示するWeb三層システムから測定データ(例えば、各サーバの性能情報や構成情報)を収集する。データ測定手段1(図1参照)が収集した測定データの一部を図6に例示する。図6に示す例は、データ測定手段1がWindows(登録商標)に付属のパフォーマンスモニタを利用して収集した測定データの例であり、横軸方向に測定対象の名前を列挙し、縦軸方向に各測定データをそれぞれ時系列順に示している。データ測定手段1は、Linuxに付属のsar コマンドや、その他のツールを利用して、Web三層システムから測定データを収集してもよい。また、収集されるデータは、図6に例示するような時系列データでなくてもよい。測定データが時系列データである場合には、シミュレーション用データ算出手段3は、時系列データの平均値や再頻出値を計算するフィルタ処理を行って、測定データの値を一つに定めればよい。また、測定データが時系列データでない場合、ミュレーション用データ算出手段3は、そのようなフィルタ処理を行わなくてよい。また、測定データは、複数のデータの集合であってもよい。
図6に示す例では、コンピュータの稼働状態に関する情報(\\WIN-182RQP2H476\LogicalDisk(_Total)\Disk Read Bytes/sec)や、アプリケーションの動作状態に関する情報((,\\WIN-182RQP2H476\Process(oracle)\% User Time)を示している。これらの情報と同様に、構成情報もパフォーマンスモニタを利用して収集してもよい。一般に、構成情報については、測定データと、シミュレーション用データとの間で乖離がほとんどないため、以下、性能情報を中心に説明する。
図7は、Web三層システムの性能をシミュレーションする際に必要なシミュレーション用データの例を示す。例えば、図7では、Webサーバ、WebAPサーバおよびデータベースサーバに関する処理数等をシミュレーション用データとして用いることを示している。
図8は、実施例1(第1の実施形態に対応する実施例)で用いる測定データマッピング知識の例を示す説明図である。図8に例示する測定データマッピング知識では、測定データの名前、測定データが時系列データである場合に切り出す時間、切り出した測定データに対する処理内容(演算の種類)、シミュレーション用データの名前、1リクエスト当たりの数値を計算するために必要なリクエスト数、シミュレーション用データの計算方法(算出式)が記載されている。
図8に示す例では、測定データの名前は、logData エレメントにおけるname属性として記載されている。具体的には、“\\WIN-182RQP2H476\LogicalDisk(_Total)\Disk Read Bytes/sec”である。また、この測定データは、算出式において“diskRead”と表されることも記載されている。
測定データが時系列データである場合に切り出す時間は、timeOptionエレメントに記載されている。具体的には“07/07/2010 09:33:52.201 ”から“07/07/2010 09:53:52.123 ”までの時間帯が定められている。
切り出した測定データに対する処理内容(演算の種類)は、filterエレメントにおけるname属性として記載されている。具体的には、“average”と記載され、切り出した時系列データの平均値を算出することを定めている。
シミュレーション用データの名前は、systemmodel エレメント内のtargetエレメントにおけるname属性として記載されている。図8に示す例では、「Webサーバ」の「ディスク読み込み時間」である。また、このシミュレーション用データは、算出式において“ret ”と表されることも記載されている。
1リクエスト当たりの数値を計算するために必要なリクエスト数は、requestData value 属性として記載されている。具体的には“10”と記載され、算出式において“req ”と表されることも記載されている。すなわち、reqは、算出式中における定数に該当する。
シミュレーション用データの計算方法(算出式)は、scriptエレメント内に記載されている。具体的には、“ret = diskRead / 400 / req”と記載されている。
上記の算出式において、diskReadが、指定された時間帯の測定データに対する平均値計算の結果を表す変数である。
シミュレーション用データ算出手段3は、図8に例示する測定データマッピング知識に従い、以下のようにシミュレーション用データの値を計算する。シミュレーション用データ算出手段3は、図6に例示する収集された測定データから、測定データマッピング知識で指定された測定データの名前(本例では、“\\WIN-182RQP2H476\LogicalDisk(_Total)\Disk Read Bytes/sec”)と一致する測定データを取り出す。この測定データが時系列データである場合、測定データマッピング知識で指定された時間帯(“07/07/2010 09:33:52.201 ”から“07/07/2010 09:53:52.123 ”までの時間帯)に該当するデータを切り出し、指定された演算を行う。本例では、演算の種類として“average”と記載されているので、切り出した時系列データの平均値を算出する。そして、その平均値の計算結果を、diskReadとする。すなわち、“ret = diskRead / 400 / req”におけるdiskReadに代入する。ここで、req は定数“10”である。例えば、平均値の計算結果が200であるとすると、上記の式は、“ret = 200 / 400 / 10”となり、ret=0.05 となる。以上の計算により、シミュレーション用データ算出手段3は、Webサーバのディスク読み込み時間の値を、0.05と算出する。
なお、取り出した測定データが時系列データでなければ、その測定データの値を、シミュレーション用データの算出式に代入すればよい。
上記の例では、シミュレーション用データのうち、「Webサーバ」の「ディスク読み込み時間」を計算する場合を示したが、他のシミュレーション用データに関しても、測定データマッピング知識に従って計算すればよい。
シミュレーション用データ算出手段3は、計算した各シミュレーション用データをシミュレーション用データ記憶手段4に記憶させる。
実施例2は、第2の実施形態に対応する実施例である。実施例2においても、Web三層システムから測定データを収集する場合を例にして説明する。本例では、測定データ状態分析ルール記憶手段21は、図9に例示する測定データ状態分析ルールを記憶しているものとする。
図9では、測定対象システムの状態として、「定常状態」、「最大負荷」、「ボトルネック発生時」、「無負荷時」の各状態に関する情報を記述している。「最大負荷」は、最大負荷となった状態を意味する。「ボトルネック発生時」は、ボトルネックが発生した状態を意味する。無負荷時は、負荷のない状態を意味する。個々の状態毎に、満たされている場合にその状態に該当することになる条件(条件式)が記述され、また、その条件が満たされた場合に、測定データに対して行う演算の内容が記述されている。
例えば、「\**\% User Time < 40% 」という条件が満たされている場合、「定常状態」であることを意味し、その場合には、測定データの平均値を算出すること(“average ”)が記述されている。この記述は、具体的には、“User Time ”を含む測定データが40%未満であれば、その時間に対応するデータを抽出し、そのデータの平均値を計算することを意味する。
また、例えば、「70% =< \**\%User Time & \**\%User Time < 80 」という条件が満たされている場合、「最大負荷」であることを意味し、その場合には、測定データの最大値を取り出すこと(“max ”)が記述されている。この記述は、具体的には、“User Time ”を含む測定データが70%以上80%未満であれば、それに対応する時間分のデータを切り取り、その時系列データの最大値を取得することを意味する。
システム状態分析手段22は、測定データと測定データ状態分析ルールに記述された条件とを比較して、条件が満たされているか否かを判定し、条件が満たされている場合には、その条件に応じた状態を示す情報と、条件が満たされていることに基づいて行った演算の結果とを、状態付き測定データ記憶手段23に記憶させる。システム状態分析手段22は、種々の測定データに関して同様の処理を行う。なお、条件が満たされていない場合には、その旨を条件付測定データ記憶手段23に記憶させればよい。
図10は、条件付測定データ記憶手段23に記憶された情報の例を示す説明図である。図10に例示するように、測定データ毎に、各状態を表す条件を満足した場合に行う演算の結果が、該当する状態に対応付けて記憶される。また、条件が満たされていない場合には、その条件に対応する状態に関して「該当なし」と記述している。「該当なし」は、条件が満たされていないことを意味する。
例えば、測定データ“\\WIN-182RQP2H476\Processor Time”に関しては、「定常状態」に対応する条件は満たされていて、その場合に行う演算の結果が“0.5”であったことを意味している。「ボトルネック発生時」や「無負荷時」に対応する条件も満たされていて、その場合に行う演算の結果も、“0.98”や“0.3”として記憶されている。また、「最大負荷」に関しては、「該当なし」と記憶されているので、「最大負荷」に対応する条件は満たされてないことになる。
図10に例示する情報が条件付測定データ記憶手段23に記憶されているとする。また、以下の説明では、シミュレーション用データとして、「Webサーバ」の「CPU負荷/リクエスト数」を算出する場合を例にして説明する。このシミュレーション用データを算出するための測定データマッピング知識として、複数の測定データマッピング知識が測定データマッピング知識記憶手段2に記憶されている。図11は、その測定データマッピング知識のうちの一例を示す説明図である。
図11に例示する測定データマッピング知識では、シミュレーション用データの測定に用いる測定データが2つ指定されている。具体的には、測定データ“\\WIN-182RQP2H476\Processor Time”が2箇所で指定されている。従って、同じ測定データが延べ2つ指定されていることになる。
そして、一方の“\\WIN-182RQP2H476\Processor Time”に関しては、“<stateOption name=“定常状態”/>”,“<filter name=“average”>”と記載されている。このことは、“=“\\WIN-182RQP2H476\Processor Time”に関し、定常状態であることを示す条件が満たされたことにより、システム状態分析手段22によって計算された平均値を用いることを意味している。また、この平均値を表す変数は、valueName=cocpu と記載されていることから、cocpu である。
また、もう一方の“=“\\WIN-182RQP2H476\Processor Time”に関しては、“<stateOption name=“無負荷時”/>”,“<filter name=“average”>” と記載されている。このことは、“=“\\WIN-182RQP2H476\Processor Time”に関し、無負荷時であることを示す条件が満たされたことにより、システム状態分析手段22によって計算された平均値を用いることを意味している。また、この平均値を表す変数は、valueName=nocpu と記載されていることから、nocpu である。
図11に示す測定データマッピング知識では、定常状態の条件が満たされていることに基づいて、“\\WIN-182RQP2H476\Processor Time”に対して行った演算(平均値算出)の結果と、無負荷時の条件が満たされていることに基づいて、“=“\\WIN-182RQP2H476\Processor Time”に対して行った演算(平均値算出)の結果とを用いて、「Webサーバ」の「CPU負荷/リクエスト数」することを示している。「Webサーバ」の「CPU負荷/リクエスト数」を算出するための測定データマッピング知識としては、他にも、他の種々の状態の条件が満たされていることに基づいて、測定データに対して行った演算結果を用いて「Webサーバ」の「CPU負荷/リクエスト数」を算出することを規定した測定データマッピング知識が予め用意されている。
マッピング知識選択手段24は、着目しているシミュレーション用データに関して、シミュレーション用データに用いる測定データが条件を満たしている状態を明示し、条件を満たしていることによって行われる演算の演算結果を表す変数を用いた算出式を規定している測定データマッピング知識を選択する。このとき、シミュレーション用データに用いる測定データが条件を満たしている状態を明示しておらず、測定データに対して行っていない演算に関する演算結果を表す変数が算出式で用いられていないという条件も満足する測定データマッピング知識を選択する。
図10に例示する状態付き測定データ記憶手段23に記憶された情報では、“\\WIN-182RQP2H476\Processor Time”という測定データについて、「定常状態」、「ボトルネック時」および「無負荷時」の条件が満たされ、それらの条件毎に、指定された演算の結果が記憶されている。そして、「最大負荷」に関しては、条件を満たしていない。
図11に示す測定データマッピング知識では、“\\WIN-182RQP2H476\Processor Time”に関して、条件が満たされている「定常状態」および「無負荷時」が明示され、それらの状態の条件が満たされることにより行われた演算結果を表す変数cocpu,nocpu が定められている。一方、条件が満たされていない「最大負荷」は明示されておらず、「最大負荷」の条件が満たされる場合に行われる演算結果を表す変数も定められていない。よって、マッピング知識選択手段24は、「Webサーバ」の「CPU負荷/リクエスト数」を算出するための測定データマッピング知識として、図11に例示する測定データマッピング知識を選択する。
また、図11に例示する測定データマッピング知識では、「Webサーバ」の「CPU負荷/リクエスト数」が、その算出式において“ret ”と表されることも記載されている。
「Webサーバ」の「CPU負荷/リクエスト数」の計算方法(算出式)は、scriptエレメント内に記載されている。具体的には、“ret = (cocpu - nocpu) / req”と記載されている。なお、req は、図8に示す場合と同様に定数“10”であり、その意味も図8に示す場合と同様であるので、詳細な説明を省略する。
シミュレーション用データ算出部3は、図11に例示する算出式に、マッピング知識選択手段24が状態付き測定データ記憶手段23から読み込んだ値を代入し、その算出式の計算を行う。本例では、“cocpu ”に該当する値が0.5であり、“nocpu ”に該当する値が0.3である。よって、“ret = (cocpu - nocpu) / req”における変数“cocpu ”,“nocpu ”に、該当する値を代入すると、上記の式は、“ret = (0.5 - 0.3) / 10”となり、ret=0.02となる。このような計算により、シミュレーション用データ算出手段3は、「Webサーバ」の「CPU負荷/リクエスト数」の値を、0.02と算出する。
上記の例では、シミュレーション用データのうち、「Webサーバ」の「CPU負荷/リクエスト数」を計算する場合を示したが、他のシミュレーション用データに関しても、測定データマッピング知識に従って計算すればよい。
また、実施例2において、測定データマッピング知識記憶手段2は、実施例1と同様の記述形式の測定データマッピング知識(図8参照)を記憶していてもよい。そして、図8に例示する測定データマッピング知識から所望のシミュレーション用データを算出できる場合には、マッピング知識選択手段24がその測定データマッピング知識を読み込み、シミュレーション用データ算出手段3が実施例1と同様にシミュレーション用データを算出してもよい。
例えば、シミュレーション用データ差出手段3が、図11に例示する算出式から、「Webサーバ」の「CPU負荷/リクエスト数」を算出し、図8に例示する算出式から、「Webサーバ」の「ディスク読み込み時間」を算出してもよい。
シミュレーション用データ算出手段3は、計算した各シミュレーション用データをシミュレーション用データ記憶手段4に記憶させる。図12は、算出されたシミュレーション用データの一部を例示する説明図である。図12に示す例では、実施例2で示したように「Webサーバ」の「CPU負荷/リクエスト数」を算出した結果“0.02”と、実施例1と同様に「Webサーバ」の「ディスク読み込み時間」を算出した結果“0.05”を示している。
次に、本発明の最小構成について説明する。図13は、本発明のシミュレーション用データ生成システムの最小構成の例を示すブロック図である。本発明のシミュレーション用データ生成システムは、データ測定手段90と、データ間関連情報記憶手段91と、シミュレーション用データ算出手段92とを備える。
データ測定手段90(例えば、実施形態で示したデータ測定手段1)は、稼働中のシステム(例えば、測定対象システム10)から測定の対象となるデータである測定データを測定する。
データ間関連情報記憶手段91(例えば、測定データマッピング知識記憶手段2)は、測定データと、シミュレーションで用いる予め定められたシミュレーション用データとの関連を記述したデータ間関連情報(例えば、測定データマッピング知識)を記憶する。
シミュレーション用データ算出手段92(例えば、実施形態で示したシミュレーション用データ算出手段3)は、測定データとシミュレーション用データとの関連に基づいて、データ測定手段90によって計測された測定データからシミュレーション用データの値を算出する。
このような構成により、予めシミュレーション用モデルが定められている場合に、そのシミュレーション用モデルでシミュレーションを実行する際に用いるシミュレーション用データと、測定データの項目とが一致していなくても、適切なシミュレーション用データを得ることができる。その結果、高精度のシミュレーションを行うことができる。
また、データ間関連情報記憶手段91が、測定データとシミュレーション用データとの関連として、測定データ、または、測定データに対する演算結果を表す変数を用いて、当該変数からシミュレーション用データの値を算出する算出式を記述したデータ間関連情報を記憶し、シミュレーション用データ算出手段は92が、測定データに基づく値を、変数に代入して算出式の計算を行うことにより、シミュレーション用データの値を算出する構成であってもよい。
また、システムの状態を表す条件と、当該条件が満たされた場合に測定データに対して行う演算とを、システムの複数の状態に関して規定した情報である演算規定情報(例えば、測定データ状態分析ルール)を記憶する演算規定情報記憶手段(例えば、測定データ状態分析ルール記憶手段21)と、測定データを用いて、演算規定情報におけるどの条件が満たされているかを判定し、測定データに対して、満たされている条件に応じた演算を行うデータ演算手段(例えば、システム状態分析手段22)とを備え、データ間関連情報記憶手段91が、システムの状態を表す条件が満たされた場合に行われる演算の演算結果を変数として用いてシミュレーション用データの値を算出する算出式を記述した複数のデータ間関連情報であって、算出されるシミュレーション用データは共通であるが、算出式に用いる変数が異なる複数のデータ間関連情報を、シミュレーション用データ毎に記憶し、シミュレーション用データ算出手段92が、データ演算手段が演算規定情報内の満たされている条件に応じて測定データに対して行った演算の演算結果を変数として用いるシミュレーション用データの値の算出式の計算を行う構成であってもよい。