(57)【特許請求の範囲】
【請求項１】
複数の仮想マシンが動作する情報処理システムまたは複数の仮想マシンのそれぞれで動作する複数の評価対象ソフトウェアの性能を予測する装置であり、ソフトウェアのプログラム特徴量が入力されると前記情報処理システムまたは前記ソフトウェアの性能データを出力する性能予測モデルを用いる性能予測装置であって、
試験用ソフトウェアのプログラム特徴量を入力とし、各仮想マシンで前記試験用ソフトウェアが動作したときの前記情報処理システムの性能データまたは前記試験用ソフトウェアの各性能データを出力とする予測モデルを前記性能予測モデルとして作成する性能予測モデル作成手段を備え、
前記性能予測モデル作成手段は、複数の仮想マシンのそれぞれと複数の試験用ソフトウェアのそれぞれとによる複数の組み合わせを用いて前記予測モデルを作成する
ことを特徴とする性能予測装置。
【請求項２】
単独の仮想マシンが動作する情報処理システムにおける当該仮想マシンで試験用ソフトウェアが動作したときの前記情報処理システムの性能データまたは前記試験用ソフトウェアの性能データを入力とし、前記試験用ソフトウェアのプログラム特徴量を出力とするプログラム特徴量変換モデルを作成するプログラム特徴量変換モデル作成手段と、
前記プログラム特徴量変換モデルに評価対象ソフトウェアが前記仮想マシンで動作したときの前記情報処理システムの性能データまたは前記評価対象ソフトウェアの性能データを入力して、前記評価対象ソフトウェアのプログラム特徴量を得るプログラム特徴量推定手段とを備える
請求項１記載の性能予測装置。
【請求項３】
複数の仮想マシンが動作する情報処理システムまたは複数の仮想マシンのそれぞれで動作する複数の評価対象ソフトウェアの性能を予測する性能予測方法であって、
試験用ソフトウェアのプログラム特徴量を入力とし、各仮想マシンで前記試験用ソフトウェアが動作したときの前記情報処理システムの性能データまたは前記試験用ソフトウェアの各性能データを出力とする性能予測モデルを作成し、
前記性能予測モデルに前記複数の評価対象ソフトウェアのプログラム特徴量を入力して、前記複数の評価対象ソフトウェアが前記各仮想マシンで動作するときの前記情報処理システムの性能データまたは前記複数の評価対象ソフトウェアの各性能データを得、
前記性能予測モデルを作成するときに、複数の仮想マシンのそれぞれと複数の試験用ソフトウェアのそれぞれとによる複数の組み合わせを用いて当該性能予測モデルを作成する
ことを特徴とする性能予測方法。
【請求項４】
単独の仮想マシンが動作する情報処理システムにおける当該仮想マシンで試験用ソフトウェアが動作したときの前記情報処理システムの性能データまたは前記試験用ソフトウェアの性能データを入力とし、前記試験用ソフトウェアのプログラム特徴量を出力とするプログラム特徴量変換モデルを作成し、
前記プログラム特徴量変換モデルに評価対象ソフトウェアが前記仮想マシンで動作したときの前記情報処理システムの性能データまたは前記ソフトウェアの性能データを入力して、前記評価対象ソフトウェアのプログラム特徴量を得る
請求項３記載の性能予測方法。
【請求項５】
コンピュータに、
複数の仮想マシンが動作する情報処理システムまたは複数の仮想マシンのそれぞれで動作する複数の評価対象ソフトウェアの性能を予測する処理を実行させる性能予測プログラムであって、
コンピュータに、
試験用ソフトウェアのプログラム特徴量を入力とし、各仮想マシンで前記試験用ソフトウェアが動作したときの前記情報処理システムの性能データまたは前記試験用ソフトウェアの各性能データを出力とする性能予測モデルを作成する性能予測モデル作成処理、および
前記性能予測モデルに前記複数の評価対象ソフトウェアのプログラム特徴量を入力して、前記複数の評価対象ソフトウェアが前記各仮想マシンで動作するときの前記情報処理システムの性能データまたは前記複数の評価対象ソフトウェアの各性能データを得る性能データ取得処理を実行させ、
前記性能予測モデル作成処理で、複数の仮想マシンのそれぞれと複数の試験用ソフトウェアのそれぞれとによる複数の組み合わせを用いて前記性能予測モデルを作成させるための性能予測プログラム。
【請求項６】
コンピュータに、
単独の仮想マシンが動作する情報処理システムにおける当該仮想マシンで試験用ソフトウェアが動作したときの前記情報処理システムの性能データまたは前記試験用ソフトウェアの性能データを入力とし、前記試験用ソフトウェアのプログラム特徴量を出力とするプログラム特徴量変換モデルを作成する変換モデル作成処理、および
前記プログラム特徴量変換モデルに評価対象ソフトウェアが前記仮想マシンで動作したときの前記情報処理システムの性能データまたは前記評価対象ソフトウェアの性能データを入力して、前記評価対象ソフトウェアのプログラム特徴量を得る特徴量取得処理を実行させる
請求項５記載の性能予測プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想化される情報処理システムの性能を予測する性能予測装置、性能予測方法および性能予測プログラムに関する。
【背景技術】
【０００２】
仮想化技術のために発生するオーバヘッドは、情報処理システムの性能に影響を及ぼす。すなわち、仮想化しようとする情報処理システムに対して、実環境で運用する前に仮想化に伴うシステムの性能を予測することが重要である。【０００３】
特許文献１には、情報処理システムの各構成要素の設計情報を基に、性能予測モデルを作成する性能予測装置が記載されている。特許文献１に記載された性能予測装置は、データベースに記憶されている仮想化のために発生する仮想マシンモニタごとのオーバヘッドを含んだ性能計算式を用いて、性能予測モデルのオーバヘッドを考慮する。【０００４】
特許文献２には、ストレージ仮想化装置の構成要素のモデル情報を基に、ストレージシステムの性能予測モデルを作成する性能予測装置が記載されている。【０００５】
特許文献３には、仮想化技術のために発生するオーバヘッドを含んだ性能評価関数および性能評価モデルを用いて、仮想化されたシステムの性能予測値を算出する性能予測装置が記載されている。【０００６】
非特許文献１には、単独の仮想マシンにおける性能を予測したいアプリケーションソフトウェアのプログラム特徴量と類似しているプログラム特徴量を持つベンチマークソフトウェア（以下、「ＢＭ」という。）を用いて、単独の仮想マシンにおけるＢＭ動作時の性能からアプリケーションソフトウェアの仮想マシンにおける性能予測値を算出する性能予測装置が記載されている。【０００７】
非特許文献２には、複数のＢＭについて、単独の仮想マシンにおける動作時の性能と、複数の仮想マシンにおける様々な組み合わせのＢＭを動作させたときの性能を用いて、単独の仮想マシンにおけるアプリケーションソフトウェアを動作させたときの性能から、複数の仮想マシンにおけるアプリケーションソフトウェアおよび複数のＢＭが動作している状況における性能予測値を算出する性能予測装置が記載されている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２０１２−１４６０１５号公報
【特許文献２】特開２００６−１４６３５４号公報
【特許文献３】特開２０１０−００９１６０号公報
【非特許文献】
【０００９】
【非特許文献１】Ｋｅｎｎｅｔｈ  Ｈｏｓｔｅ，  Ａａｓｈｉｓｈ  Ｐｈａｎｓａｌｋａｒ，  Ｌｉｅｖｅｎ  Ｅｅｃｋｈｏｕｔ，  Ａｎｄｙ  Ｇｅｏｒｇｅｓ，  Ｌｉｚｙ  Ｋ．  Ｊｏｈｎ，  Ｋｏｅｎ  Ｄｅ  Ｂｏｓｓｃｈｅｒｅ，  Ｐｅｒｆｏｒｍａｎｃｅ  Ｐｒｅｄｉｃｔｉｏｎ  ｂａｓｅｄ  ｏｎ  Ｉｎｈｅｒｅｎｔ  Ｐｒｏｇｒａｍ  Ｓｉｍｉｌａｒｉｔｙ，  ＰＡＣＴ’０６  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  １５ｔｈ  ｉｎｔｅｒｎａｔｉｏｎａｌ  ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｐａｒａｌｌｅｌ  ａｒｃｈｉｔｅｃｔｕｒｅｓ  ａｎｄ  ｃｏｍｐｉｌａｔｉｏｎ  ｔｅｃｈｎｉｑｕｅｓ，  ２００６，  Ｓｅｐｔｅｍｂｅｒ １６  −  ２０，  Ｐａｇｅｓ  １１４  −  １２２
【非特許文献２】Ｙｏｕｎｇｇｙｕｎ  Ｋｏｈ，  Ｒｏｂ  Ｋｎａｕｅｒｈａｓｅ，  Ｐａｕｌ  Ｂｒｅｔｔ，  Ｍｉｃ  Ｂｏｗｍａｎ，  Ｚｈｉｈｕａ  Ｗｅｎ，  Ｃａｌｔｏｎ  Ｐｕ，  Ａｎ Ａｎａｌｙｓｉｓ  ｏｆ  Ｐｅｒｆｏｒｍａｎｃｅ  Ｉｎｔｅｒｆｅｒｅｎｃｅ  Ｅｆｆｅｃｔｓｉｎ  Ｖｉｒｔｕａｌ Ｅｎｖｉｒｏｎｍｅｎｔｓ，  ＩＥＥＥ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｓｙｍｐｏｓｉｕｍ  ｏｎ  Ｐｅｒｆｏｒｍａｎｃｅ  Ａｎａｌｙｓｉｓ  ｏｆ  Ｓｙｓｔｅｍｓ  ＆  Ｓｏｆｔｗａｒｅ，  ２００７，  Ｐａｇｅｓ  ２００  −  ２０９
【発明の概要】
【発明が解決しようとする課題】
【００１０】
特許文献１〜３に記載されている性能予測装置は、情報処理システムの各構成要素の設計情報および動作情報を基に、性能予測モデルを作成する。しかし、複数の仮想マシンが存在する場合、それらの仮想マシンを模倣する仮想マシンモニタの動作は複雑である。【００１１】
すなわち、精緻な性能予測モデルを作成するには、仮想マシンモニタに対する多大な知識が求められる。また、仮想マシンモニタの動作が複雑であるため、設計情報などに複雑な動作などが正しく反映されないなどの理由により、性能予測装置は間違った性能予測モデルを作成しやすい。このため、作成される性能予測モデルの精度は低い可能性が高い。【００１２】
また、非特許文献１に記載されている性能予測装置は、仮想マシンが単独の場合のみを考慮している。すなわち、この性能予測装置では複数の仮想マシンが存在する場合の性能を予測する手段を提供できないという問題がある。【００１３】
また、非特許文献２に記載されている性能予測装置は、単独の仮想マシンでアプリケーションソフトウェアを動作させたときの性能を用いて、複数の仮想マシンでアプリケーションソフトウェアを動作させる場合の性能を予測する。しかし、仮想マシンが単独の場合の性能は、仮想マシンモニタのオーバヘッドによる影響をすでに受けた性能である。【００１４】
すなわち、仮想マシンが単独の場合の性能は、仮想マシンが複数存在する場合の仮想マシンのオーバヘッドによる影響を予測するためのテストデータとして使用するには精度が落ちたデータである。よって、非特許文献２に記載されている性能予測装置では精度の高い性能予測ができないという問題がある。【００１５】
そこで、本発明は、精度の高い性能予測モデルを使用して性能予測を実行できる性能予測装置、性能予測方法および性能予測プログラムを提供する。
【課題を解決するための手段】
【００１６】
本発明による性能予測装置は、複数の仮想マシンが動作する情報処理システムまたは複数の仮想マシンのそれぞれで動作する複数の評価対象ソフトウェアの性能を予測する装置であり、ソフトウェアのプログラム特徴量が入力されると情報処理システムまたはソフトウェアの性能データを出力する性能予測モデルを用いる性能予測装置であって、試験用ソフトウェアのプログラム特徴量を入力とし、各仮想マシンで試験用ソフトウェアが動作したときの情報処理システムの性能データまたは試験用ソフトウェアの各性能データを出力とする予測モデルを性能予測モデルとして作成する性能予測モデル作成手段を備え、性能予測モデル作成手段は、複数の仮想マシンのそれぞれと複数の試験用ソフトウェアのそれぞれとによる複数の組み合わせを用いて予測モデルを作成することを特徴とする。
【００１７】
本発明による性能予測方法は、複数の仮想マシンが動作する情報処理システムまたは複数の仮想マシンのそれぞれで動作する複数の評価対象ソフトウェアの性能を予測する性能予測方法であって、試験用ソフトウェアのプログラム特徴量を入力とし、各仮想マシンで試験用ソフトウェアが動作したときの情報処理システムの性能データまたは試験用ソフトウェアの各性能データを出力とする性能予測モデルを作成し、性能予測モデルに複数の評価対象ソフトウェアのプログラム特徴量を入力して、複数の評価対象ソフトウェアが各仮想マシンで動作するときの情報処理システムの性能データまたは複数の評価対象ソフトウェアの各性能データを得、性能予測モデルを作成するときに、複数の仮想マシンのそれぞれと複数の試験用ソフトウェアのそれぞれとによる複数の組み合わせを用いて当該性能予測モデルを作成することを特徴とする。
【００１８】
本発明による性能予測プログラムは、複数の仮想マシンが動作する情報処理システムまたは複数の仮想マシンのそれぞれで動作する複数の評価対象ソフトウェアの性能を予測する性能予測プログラムであって、コンピュータに、試験用ソフトウェアのプログラム特徴量を入力とし、各仮想マシンで試験用ソフトウェアが動作したときの情報処理システムの性能データまたは試験用ソフトウェアの各性能データを出力とする性能予測モデルを作成する性能予測モデル作成処理、および性能予測モデルに複数の評価対象ソフトウェアのプログラム特徴量を入力して、複数の評価対象ソフトウェアが各仮想マシンで動作するときの情報処理システムの性能データまたは複数の評価対象ソフトウェアの各性能データを得る性能データ取得処理を実行させ、性能予測モデル作成処理で、複数の仮想マシンのそれぞれと複数の試験用ソフトウェアのそれぞれとによる複数の組み合わせを用いて性能予測モデルを作成させることを特徴とする。
【発明の効果】
【００１９】
本発明によれば、精度の高い性能予測モデルを使用して性能予測を実行できる。
【図面の簡単な説明】
【００２０】
【図１】性能予測装置１００の第１の実施形態の構成例を示すブロック図である。
【図２】性能予測装置１００の第１の実施形態の性能予測処理の動作を示すフローチャートである。
【図３】性能予測モデル作成部１０１が作成した性能予測モデルへ入力される入力変数の例を示す説明図である。
【図４】性能予測モデル作成部１０１が性能予測モデルのパラメータを調整するときに使用するテストパターンの例を示す説明図である。
【図５】性能予測装置１００の第２の実施形態の構成例を示すブロック図である。
【図６】性能予測装置１００の第２の実施形態の性能予測処理の動作を示すフローチャートである。
【図７】本発明による性能予測装置の概要を示すブロック図である。
【発明を実施するための形態】
【００２１】
実施形態１．
以下、本発明の実施形態を図面を参照して説明する。図１は、性能予測装置１００の第１の実施形態の構成例を示すブロック図である。図１に示す性能予測装置１００は、性能予測モデル作成部１０１と、性能予測部１０２とを含む。
【００２２】
性能予測装置１００は、複数の仮想マシンが動作する情報処理システム（以下、「予測対象システム」という。）の性能を予測する。性能予測装置１００は、複数の仮想マシンでアプリケーションソフトウェアが稼働するときの、予測対象システムの性能データと各仮想マシンで動作するアプリケーションソフトウェアの性能データとを出力する。
【００２３】
性能予測モデル作成部１０１は、性能予測モデルを作成する機能を有する。性能予測モデルは、ＢＭのプログラム特徴量を入力すると、予測対象システム上の各仮想マシンでＢＭが動作したときの予測対象システムの性能データと各仮想マシンで動作するＢＭの性能データとを出力する。
【００２４】
ここで、ＢＭは、コンピュータハードウェアやソフトウェアの性能を計測するソフトウェアである。ＢＭは、例えば、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）やディスクなどの特定のリソースに負荷を掛けて性能を測るソフトウェアである。また、ＢＭは、オークションサイトやエレクトロニックコマース（Ｅコマース）システムなど、システム全体の性能を測るために特定の利用形態を模倣したソフトウェアでもよい。
【００２５】
また、予測対象システムの性能と各仮想マシンで動作するＢＭの性能は、スループット、応答時間、リソース使用率、またはＢＭが独自に定義したスコアなどである。
【００２６】
また、プログラム特徴量は、ソフトウェアプログラムの特徴や性質を表す量である。プログラム特徴量は、ソフトウェアが動作する環境に依存しない量である。
【００２７】
プログラム特徴量は、非特許文献１に記載されている命令混合率（ｉｎｓｔｒｕｃｔｉｏｎ  ｍｉｘ）、命令レベルの並列性（ｉｎｓｔｒｕｃｔｉｏｎ−ｌｅｖｅｌ  ｐａｒａｌｌｅｌｉｓｍ）、レジスタの特性（ｒｅｇｉｓｔｅｒ  ｔｒａｆｆｉｃ  ｃｈａｒａｃｔｅｒｉｓｔｉｃｓ）、負荷特性（ｗｏｒｋｉｎｇ  ｓｅｔ）、データ転送とストライドのパターン（ｄａｔａ  ｓｔｒｅａｍ  ｓｔｒｉｄｅｓ）、分岐予測成功率（ｂｒａｎｃｈ  ｐｒｅｄｉｃｔａｂｉｌｉｔｙ）などである。また、プログラム特徴量は、プロファイラなどを用いた動的プログラム解析で得られる指標などでもよい。
【００２８】
また、性能予測モデルは、学習や回帰などの方法によって、入力データに対して適当な出力データを決定できる仕組みを持つモデルであればどのようなモデルでもよい。性能予測モデルは、ニューラルネットワークや隠れマルコフモデルなどで実現されてもよい。また、性能予測モデルは、多項式関数などによる近似式やノンパラメトリック回帰関数で実現されてもよい。
【００２９】
性能予測部１０２は、性能予測モデル作成部１０１が作成した性能予測モデルに、予測対象システム上の各仮想マシンで動作する各アプリケーションソフトウェア（以下、「想定ＡＰ」という。）のプログラム特徴量を入力し、各想定ＡＰが動作するときの予測される予測対象システムの性能データと各想定ＡＰの各性能データとを出力する機能を有する。
【００３０】
なお、性能予測部１０２は、予測される性能データを表示してもよい。また、性能予測部１０２は、性能予測装置１００以外の他の装置に性能データを出力してもよい。
【００３１】
なお、本実施形態における性能予測モデル作成部１０１および性能予測部１０２は、例えば、プログラムに従って動作するＣＰＵによって実現される。
【００３２】
以下、本実施形態の性能予測処理の動作を図２のフローチャートを参照して説明する。図２は、性能予測装置１００の第１の実施形態の性能予測処理の動作を示すフローチャートである。
【００３３】
性能予測モデル作成部１０１は、初期の性能予測モデルを作成する（ステップＳ１０１）。初期の性能予測モデルは、各仮想マシンで動作するソフトウェアのプログラム特徴量を入力変数とし、予測対象システムの性能データと各ソフトウェアの性能データとを出力変数とするモデルである。
【００３４】
図３に入力変数の例を示す。図３は、性能予測モデル作成部１０１が作成した性能予測モデルへ入力される入力変数の例を示す説明図である。図３には、仮想マシンが２つあり、各仮想マシンにおいて動作するソフトウェアのプログラム特徴量が３種類ある場合の入力変数の例が示されている。
【００３５】
図３に示す例の場合、性能予測モデルへ入力される入力変数の数は、２つの仮想マシンと３種類のプログラム特徴量より、２×３＝６つとなる。なお、ユーザは、プログラム特徴量をすべて入力変数として使用せずに、自分が選択したプログラム特徴量のみを入力変数としてもよい。出力変数も同様に、自分が選択した性能データのみを出力変数としてもよい。
【００３６】
次に、性能予測モデル作成部１０１は、性能予測モデルが持つパラメータを調整する（ステップＳ１０２）。具体的には、性能予測モデル作成部１０１は、性能予測モデルに各ＢＭのそれぞれの組み合わせに対応する各ＢＭのプログラム特徴量を入力したときに、性能予測モデルから予測対象システム上の各仮想マシンで各ＢＭが動作したときの予測対象システムの適切な性能データ、または各ＢＭの適切な性能データ、または適切な双方の性能データが出力されるようにパラメータを調整する。
【００３７】
ここで、性能予測モデルが持つパラメータとは、入力データに対して適切な出力データを決めるために調整する値である。性能予測モデルが持つパラメータは、性能予測モデルがニューラルネットワークの場合であればシナプス荷重である。また、性能予測モデルが回帰式の場合であれば各係数などである。
【００３８】
パラメータの調整の手法は、入力データに対して適切な出力データを決定できる手法であればどのような手法でもよい。パラメータの調整の手法は、バックプロパゲーションや遺伝的アルゴリズムでもよい。
【００３９】
図４は、性能予測モデル作成部１０１が性能予測モデルのパラメータを調整するときに使用するテストパターンの例を示す説明図である。図４には、予測対象システムにおいて仮想マシンが２つ稼働しており、動作するＢＭが２つの場合のテストパターンが示されている。図４に示す例の場合、パラメータ調整に使用されるテストパターンの数は、２つの仮想マシンと２つの動作するＢＭより、２×２＝４つとなる。
【００４０】
例えば、ＢＭ１が仮想マシン１において動作し、ＢＭ２が仮想マシン２において動作している１つ目のテストパターンの場合、ＢＭ１のプログラム特徴量とＢＭ２のプログラム特徴量が入力データとなり、そのときの予測対象システムの性能データ、仮想マシン１で動作したＢＭ１の性能データおよび仮想マシン２で動作したＢＭ２の性能データが出力データとなる。これらの入力データおよび出力データをもとに、性能予測モデル作成部１０１は、パラメータを調整する。
【００４１】
ここで、仮想マシンの仕様が同一の場合など各仮想マシンの区別をつけなくてもよい場合には、ユーザはテストパターンを省略できる。
【００４２】
例えば、図４に示す例では、ＢＭ１が仮想マシン１で動作しＢＭ２が仮想マシン２で動作するテストパターンと、ＢＭ２が仮想マシン１で動作しＢＭ１が仮想マシン２で動作するテストパターンとがそれぞれ分けられている。しかし、仮想マシン１と仮想マシン２との区別をつけなくてもよい場合には、これらのテストパターンを分けなくてもよい。
【００４３】
次に、性能予測モデル作成部１０１は、性能予測モデルの調整が十分か否かを判断する（ステップＳ１０３）。
【００４４】
ここで、性能予測モデル作成部１０１は、性能予測モデルの調整が十分であると判断する条件を、予測対象システムに合わせて設定すればよい。例えば、性能予測モデル作成部１０１は、「予測対象システムの出力データと性能予測モデルが予測した出力データとの誤差が、予め定められた閾値未満である」という条件を使用できる。
【００４５】
また、性能予測モデル作成部１０１は、「予測対象システムの出力データと性能予測モデルが予測した出力データとの誤差が、所定の回数の調整を経ても変化せず、調整が平衡状態にあるとみなせる」という条件を使用してもよい。また、性能予測モデル作成部１０１は、「予め定められた回数調整した」という条件を使用してもよい。
【００４６】
性能予測モデルの調整が十分ではないと性能予測モデル作成部１０１が判断すると（ステップＳ１０３のＮｏ）、性能予測装置１００は、ステップＳ１０２に処理を移動する。
【００４７】
ステップＳ１０２において、性能予測モデル作成部１０１は、再び性能予測モデルのパラメータを調整する。性能予測装置１００は、調整が十分であると性能予測モデル作成部１０１が判断するまで調整を繰り返す。
【００４８】
性能予測モデルの調整が十分であると性能予測モデル作成部１０１が判断すると（ステップＳ１０３のＹｅｓ）、性能予測装置１００は、ステップＳ１０４に処理を移動する。
【００４９】
調整が十分な場合、性能予測部１０２は、作成された性能予測モデルに予測対象システム上の各仮想マシンで動作する想定ＡＰのプログラム特徴量を入力する。そして、性能予測部１０２は、予測対象システムの予測される性能データもしくは各想定ＡＰの予測される性能データまたは双方の性能データを出力させる（ステップＳ１０４）。
【００５０】
例えば、仮想マシンが２つ、想定ＡＰが２つの場合には、図３に示されるような項目の入力変数が入力される。この場合、図３に示す仮想マシン１上のソフトウェアのプログラム特徴量１〜３は、１つ目の想定ＡＰのプログラム特徴量１〜３が対応する。同様に、仮想マシン２上のプログラム特徴量１〜３は、２つ目の想定ＡＰのプログラム特徴量１〜３が対応する。このようなデータが入力されると、性能予測モデルは、入力されたデータに基づき予測される性能データを出力する。
【００５１】
本実施形態の性能予測装置１００を使用する場合、使用するユーザは、ＢＭのプログラム特徴量から性能予測モデルを作成し、その性能予測モデルを基に、想定ＡＰが予測対象システムで動作する場合の性能を予測できる。
【００５２】
その理由は、本実施形態の性能予測装置１００の性能予測モデル作成部１０１は、各ＢＭのプログラム特徴量を入力データとし、予測対象システム上の各仮想マシンでＢＭが動作したときの予測対象システムの性能データと各ＢＭの性能データとを出力データとする性能予測モデルを作成する。つまり、性能予測モデル作成部１０１は、プログラム特徴量を入力し、各仮想マシンでソフトウェアが動作する場合の性能データを出力する性能予測モデルを作成する。
【００５３】
プログラム特徴量は、ソフトウェアが動作するプラットフォームである仮想マシンや仮想マシンモニタに依存しない。よって、性能予測装置１００は、各ソフトウェアのプログラム特徴量を入力することで、仮想マシンが複数存在する場合の仮想マシンモニタのオーバヘッドによる純粋な影響をモデル化できる。
【００５４】
非特許文献２に記載された方法において、入力される指標はすでに仮想マシンモニタの影響を受けている。よって、非特許文献２に記載された方法は、仮想マシンが複数存在する場合の仮想マシンモニタのオーバヘッドの純粋な影響をモデル化する際に使用するには不適当な方法である。しかし、本実施形態の性能予測装置を使用すれば、上記の問題は解消される。
【００５５】
実施形態２．
次に、本発明の第２の実施形態を説明する。図５は、性能予測装置１００の第２の実施形態の構成例を示すブロック図である。
【００５６】
性能予測装置１００は、性能予測モデル作成部１０１と、性能予測部１０２と、プログラム特徴量変換モデル作成部１０３と、プログラム特徴量推定部１０４とを含む。
【００５７】
プログラム特徴量変換モデル作成部１０３は、単独の仮想マシンが動作する予測対象システムにおいて、仮想マシンでＢＭが動作したときの予測対象システムの性能データとＢＭの性能データとを入力データとし、ＢＭのプログラム特徴量を出力データとするプログラム特徴量変換モデルを作成する機能を有する。
【００５８】
ここで、プログラム特徴量変換モデルは、学習や回帰などの方法によって、入力データに対して適当な出力データを決定できる仕組みを持つモデルであればどのようなモデルでもよい。プログラム特徴量変換モデルは、ニューラルネットワークや隠れマルコフモデルなどで実現されてもよい。また、プログラム特徴量変換モデルは、多項式関数などによる近似式やノンパラメトリック回帰関数で実現されてもよい。
【００５９】
なお、入力変数も出力変数も多変数であることが多いため、プログラム特徴量変換モデルは、多変数を扱うことができるモデルであることが望ましい。
【００６０】
プログラム特徴量推定部１０４は、プログラム特徴量変換モデル作成部１０３が作成したプログラム特徴量変換モデルに、プログラム特徴量を推定したいアプリケーションソフトウェア（以下、「推定対象ＡＰ」という。）が仮想マシンで動作したときの予測対象システムの性能データと推定対象ＡＰの性能データとを入力し、推定対象ＡＰの推定されるプログラム特徴量を出力させる機能を有する。
【００６１】
なお、プログラム特徴量推定部１０４は、推定されるプログラム特徴量を表示してもよい。また、プログラム特徴量推定部１０４は、性能予測装置１００以外の他の装置に推定されるプログラム特徴量を出力してもよい。
【００６２】
なお、本実施形態におけるプログラム特徴量変換モデル作成部１０３およびプログラム特徴量推定部１０４は、例えば、プログラムに従って動作するＣＰＵによって実現される。
【００６３】
以下、本実施形態の性能予測処理の動作を図６のフローチャートを参照して説明する。図６は、性能予測装置１００の性能予測処理の動作を示すフローチャートである。
【００６４】
プログラム特徴量変換モデル作成部１０３は、初期のプログラム特徴量変換モデルを作成する（ステップＳ２０１）。初期のプログラム特徴量変換モデルは、予測対象システム上の単独の仮想マシンでソフトウェアが動作した場合の予測対象システムの性能データとソフトウェアの性能データとを入力変数とし、ソフトウェアのプログラム特徴量を出力変数とするモデルである。
【００６５】
なお、ユーザは、予測対象システムの性能データとソフトウェアの性能データをすべて入力変数として使用せずに、自分が選択した性能データのみを入力変数としてもよい。ユーザは、出力変数も同様に、自分が選択したプログラム特徴量のみを出力変数としてもよい。
【００６６】
プログラム特徴量変換モデル作成部１０３は、プログラム特徴量変換モデルが持つパラメータを調整する（ステップＳ２０２）。具体的には、プログラム特徴量変換モデル作成部１０３は、各ＢＭについて、プログラム特徴量変換モデルに予測対象システム上の単独の仮想マシンで１つのＢＭが動作したときの予測対象システムの性能データとＢＭの性能データを入力したときに、プログラム特徴量変換モデルからＢＭの適切なプログラム特徴量が出力されるようにパラメータを調整する。
【００６７】
ここで、プログラム特徴量変換モデルが持つパラメータとは、入力データに対して適切な出力データを決めるために調整する値である。プログラム特徴量変換モデルが持つパラメータは、プログラム特徴量変換モデルがニューラルネットワークの場合であればシナプス荷重である。また、プログラム特徴量変換モデルが持つパラメータは、プログラム特徴量変換モデルが回帰式の場合であれば各係数などである。
【００６８】
パラメータの調整の手法は、入力データに対して適切な出力データを決定できる手法であればどのような手法でもよい。パラメータの調整の手法は、バックプロパゲーションや遺伝的アルゴリズムでもよい。
【００６９】
次に、プログラム特徴量変換モデル作成部１０３は、プログラム特徴量変換モデルの調整が十分か否かを判断する（ステップＳ２０３）。
【００７０】
ここで、プログラム特徴量変換モデル作成部１０３は、プログラム特徴量変換モデルの調整が十分であると判断する条件を、予測対象システムおよびＢＭに合わせて設定すればよい。例えば、プログラム特徴量変換モデル作成部１０３は、「ＢＭのプログラム特徴量とプログラム特徴量変換モデルが推定したプログラム特徴量との誤差が、予め定められた閾値未満である」という条件を使用できる。
【００７１】
また、プログラム特徴量変換モデル作成部１０３は、「ＢＭのプログラム特徴量とプログラム特徴量変換モデルが推定したプログラム特徴量との誤差が、所定の回数の調整を経ても変化せず、調整が平衡状態にあるとみなせる」という条件を使用してもよい。また、プログラム特徴量変換モデル作成部１０３は、「予め定められた回数調整した」という条件を使用してもよい。
【００７２】
プログラム特徴量変換モデルの調整が十分ではないとプログラム特徴量変換モデル作成部１０３が判断すると（ステップＳ２０３のＮｏ）、性能予測装置１００は、ステップＳ２０２に処理を移動する。
【００７３】
ステップＳ２０２において、プログラム特徴量変換モデル作成部１０３は、再びプログラム特徴量変換モデルのパラメータを調整する。性能予測装置１００は、調整が十分であるとプログラム特徴量変換モデル作成部１０３が判断するまで調整を繰り返す。
【００７４】
プログラム特徴量変換モデルの調整が十分であるとプログラム特徴量変換モデル作成部１０３が判断すると（ステップＳ２０３のＹｅｓ）、性能予測装置１００は、ステップＳ２０４に処理を移動する。
【００７５】
プログラム特徴量推定部１０４は、作成されたプログラム特徴量変換モデルに、予測対象システム上の単独の仮想マシンで推定対象ＡＰが動作したときの予測対象システムの性能データと推定対象ＡＰの性能データとを入力し、推定対象ＡＰの推定されるプログラム特徴量を出力させる（ステップＳ２０４）。
【００７６】
以後、性能予測装置１００は、出力されたプログラム特徴量を用いて、推定対象ＡＰが予測対象システムで動作する場合の性能を予測する。ステップＳ２０５〜ステップＳ２０８の各処理は、第１の実施形態の性能予測処理の動作におけるステップＳ１０１〜ステップＳ１０４の各処理と同様であるため、説明を省略する。
【００７７】
本実施形態の性能予測装置を使用する場合、使用するユーザは、想定ＡＰのプログラム特徴量を事前に知らなくても、想定ＡＰが予測対象システムで動作する場合の性能を予測できる。
【００７８】
その理由は、本実施形態に係る性能予測装置１００のプログラム特徴量変換モデル作成部１０３は、単独の仮想マシンが動作する予測対象システムにおいて、仮想マシンでＢＭが動作したときの予測対象システムの性能データとＢＭの性能データとを入力データとし、ＢＭのプログラム特徴量を出力データとするプログラム特徴量変換モデルを作成する。
【００７９】
そして、プログラム特徴量推定部１０４は、作成されたプログラム特徴量変換モデルに、想定ＡＰが仮想マシンで動作したときの予測対象システムの性能データと想定ＡＰの性能データとを入力し、推定される想定ＡＰのプログラム特徴量を出力させる。
【００８０】
第１の実施形態と比較すると、本実施形態に係る性能予測装置１００の性能予測部１０２は、プログラム特徴量推定部が推定した想定ＡＰのプログラム特徴量を入力データとして性能を予測する。このように、本実施形態の性能予測装置１００を使用した場合、使用するユーザは、想定ＡＰのプログラム特徴量を知らない場合でも性能を予測できる。
【００８１】
次に、本発明の概要を説明する。図７は、本発明による性能予測装置の概要を示すブロック図である。本発明による性能予測装置１は、複数の仮想マシンが動作する情報処理システムまたは複数の仮想マシンのそれぞれで動作する複数の評価対象ソフトウェアの性能を予測する装置であり、ソフトウェアのプログラム特徴量が入力されると情報処理システムまたはソフトウェアの性能データを出力する性能予測モデルを用いる性能予測装置であって、試験用ソフトウェアのプログラム特徴量を入力とし、各仮想マシンで試験用ソフトウェアが動作したときの情報処理システムの性能データまたは試験用ソフトウェアの各性能データを出力とする予測モデルを性能予測モデルとして作成する性能予測モデル作成手段２（例えば、性能予測モデル作成部１０１）を備える。
【００８２】
そのような構成により、この性能予測装置は、精度の高い性能予測モデルを使用して性能予測を実行できる。
【００８３】
また、性能予測装置１は、単独の仮想マシンが動作する情報処理システムにおける当該仮想マシンで試験用ソフトウェアが動作したときの情報処理システムの性能データまたは試験用ソフトウェアの性能データを入力とし、試験用ソフトウェアのプログラム特徴量を出力とするプログラム特徴量変換モデルを作成するプログラム特徴量変換モデル作成手段（例えば、プログラム特徴量変換モデル作成部１０３）と、プログラム特徴量変換モデルに評価対象ソフトウェアが仮想マシンで動作したときの情報処理システムの性能データまたは評価対象ソフトウェアの性能データを入力して、評価対象ソフトウェアのプログラム特徴量を得るプログラム特徴量推定手段（例えば、プログラム特徴量推定部１０４）とを備えていてもよい。
【００８４】
そのような構成により、この性能予測装置を使用する場合、使用するユーザは、アプリケーションソフトウェアのプログラム特徴量を事前に知らなくても、アプリケーションソフトウェアが予測対象システムで動作する場合の性能を予測できる。
【００８５】
また、性能予測モデル作成手段２は、複数の仮想マシンのそれぞれと複数の試験用ソフトウェアのそれぞれとによる複数の組み合わせを用いて予測モデルを作成してもよい。
【００８６】
そのような構成により、この性能予測装置を使用する場合、使用するユーザは、自分が選択したプログラム特徴量の組み合わせのみを入力変数とすることができる。
【００８７】
この出願は、２０１３年４月９日に出願された日本出願特願２０１３−０８１３７８を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【００８８】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【符号の説明】
【００８９】
１、１００  性能予測装置
２  性能予測モデル作成手段
１０１  性能予測モデル作成部
１０２  性能予測部
１０３  プログラム特徴量変換モデル作成部
１０４  プログラム特徴量推定部
【図１】
0005807732.tif 000002
【図２】
0005807732.tif 000003
【図３】
0005807732.tif 000004
【図４】
0005807732.tif 000005
【図５】
0005807732.tif 000006
【図６】
0005807732.tif 000007
【図７】
0005807732.tif 000008