(57)【要約】【課題】仮想マシンの負荷評価の際に実際の運用環境に近い条件で負荷評価を行う。【解決手段】仮想マシン（９）で実行される評価対象アプリケーション（１１）とともに他の仮想マシンで実行される関係にあるアプリケーションを事前に物理サーバが実行した際に物理サーバのハードウェア資源にかかった負荷が示される負荷データ（４）と、物理サーバと仮想環境サーバ（１）とのハードウェア構成が示される構成データ（１２）をデータ記憶部（３）に格納しておき、仮想マシンオーバヘッド算出部（７）が負荷データ（４）と構成データ（１２）から仮想マシンオーバヘッドを算出し、負荷再生部（８）が、評価対象アプリケーション（１１）の負荷評価の際に、仮想マシンオーバヘッドを反映させながら、負荷データ（４）に示される負荷を再生する。【選択図】図１
2010128866.tif 000002
【特許請求の範囲】
【請求項１】
仮想マシンを実現する情報処理装置であって、
特定のプログラムを物理計算機で実行した際に前記物理計算機のハードウェア資源にかかった負荷が示される負荷データを記憶する負荷データ記憶部と、
前記負荷データに示されている負荷に基づき、前記特定のプログラムを仮想マシンで実行する際に生じるオーバヘッドを仮想マシンオーバヘッドとして算出する仮想マシンオーバヘッド算出部と、
前記仮想マシンオーバヘッド算出部により算出された仮想マシンオーバヘッドを反映させて、前記負荷データに示されている負荷を再生する負荷再生部とを有することを特徴とする情報処理装置。
【請求項２】
前記情報処理装置は、
複数の仮想マシンを実現することが可能であり、
前記負荷データ記憶部は、
第１の仮想マシンで実行される第１のプログラムとともに第２の仮想マシンで実行される関係にある第２のプログラムを前記物理計算機で実行した際に前記物理計算機のハードウェア資源にかかった負荷が示される負荷データを記憶し、
前記仮想マシンオーバヘッド算出部は、
前記第２のプログラムを前記第２の仮想マシンで実行する際に生じるオーバヘッドを仮想マシンオーバヘッドとして算出することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記負荷再生部は、
前記第１の仮想マシンで前記第１のプログラムを実行させて前記第１の仮想マシンによる前記第１のプログラムの実行状況に対する評価が行われる際に、前記仮想マシンオーバヘッドを反映させて前記負荷データに示されている負荷を再生することを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記情報処理装置は、
ホストＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）を有し、
前記仮想マシンオーバヘッド算出部及び前記負荷再生部が前記ホストＯＳ上で動作することを特徴とする請求項１〜３のいずれかに記載の情報処理装置。
【請求項５】
前記仮想マシンオーバヘッド算出部は、
前記仮想マシンオーバヘッドとして、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ  ）のスピンループ時間を算出し、
前記負荷再生部は、
前記仮想マシンオーバヘッド部により算出されたスピンループ時間分前記情報処理装置に搭載されているＣＰＵをスピンループさせて、前記負荷データに示されている負荷を再生することを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記負荷データ記憶部は、
前記特定のプログラムを前記物理計算機で実行した際に前記物理計算機のハードウェア資源にかかった負荷を単位時間ごとに示す負荷データを記憶しており、
前記仮想マシンオーバヘッド算出部は、
前記負荷データに示されている単位時間ごとの負荷に基づき、単位時間ごとにスピンループ時間を算出し、
前記負荷再生部は、
単位時間ごとに、前記仮想マシンオーバヘッド部により算出されたスピンループ時間分前記情報処理装置に搭載されているＣＰＵをスピンループさせて、単位時間ごとの負荷を再生することを特徴とする請求項５に記載の情報処理装置。
【請求項７】
前記情報処理装置は、更に、
前記物理計算機に搭載されているＣＰＵの属性と、前記情報処理装置に搭載されているＣＰＵの属性と、前記情報処理装置で動作する仮想マシンの総数と各仮想マシンに割り当てられるＣＰＵコア数により求められるＣＰＵオーバヘッド係数と、前記情報処理装置における記録ディスクのエミュレーションに要するＣＰＵ使用量とが示される構成データを記憶する構成データ記憶部を有し、
前記負荷データ記憶部は、
前記特定のプログラムを前記物理計算機で実行した際に前記物理計算機のハードウェア資源にかかった負荷として、ＣＰＵの使用率と、記録ディスクからのデータ読み込み量と、記録ディスクへのデータ書き込み量とが単位時間ごとに示される負荷データを記憶しており、
前記仮想マシンオーバヘッド算出部は、
前記構成データに示される内容及び前記負荷データに示される内容に基づいて、単位時間ごとにスピンループ時間を算出することを特徴とする請求項６に記載の情報処理装置。
【請求項８】
前記負荷データ記憶部は、
前記特定のプログラムを前記物理計算機で実行した際に前記物理計算機のハードウェア資源にかかった負荷として、更に、ネットワークからのデータ受信量及びネットワークへのデータ送信量が単位時間ごとに示される負荷データを記憶していることを特徴とする請求項７に記載の情報処理装置。
【請求項９】
前記負荷再生部は、
前記負荷データに示されているデータ受信量に相当するデータを単位時間ごとに外部装置から受信して、単位時間ごとの負荷を再生することを特徴とする請求項８に記載の情報処理装置。
【請求項１０】
前記情報処理装置は、更に、
前記負荷データに示されているデータ受信量に相当するデータを単位時間ごとに前記負荷再生部に送信するデータ送信部を有し、
前記負荷再生部は、
前記負荷データに示されているデータ受信量に相当するデータを単位時間ごとに前記データ送信部から受信して、単位時間ごとの負荷を再生することを特徴とする請求項８に記載の情報処理装置。
【請求項１１】
前記仮想マシンオーバヘッド算出部は、
前記負荷データに示されている負荷と前記データ送信部によるデータ送信に要する負荷とに基づき、仮想マシンオーバヘッドを算出し、
前記負荷再生部は、
前記仮想マシンオーバヘッド算出部により算出された仮想マシンオーバヘッドを反映させるとともに、前記負荷データに示されている負荷から前記データ送信部によるデータ送信に要する負荷を減じた負荷を再生することを特徴とする請求項１０に記載の情報処理装置。
【請求項１２】
前記負荷データ記憶部は、
各々が異なるプログラムを対象としている複数の負荷データを記憶し、
前記仮想マシンオーバヘッド算出部及び前記負荷再生部は、
前記負荷データ記憶部に記憶されている複数の負荷データに対応して、それぞれ、複数のスレッドとして動作することを特徴とする請求項１〜１１のいずれかに記載の情報処理装置。
【請求項１３】
仮想マシンを実現するコンピュータが、特定のプログラムを物理計算機で実行した際に前記物理計算機のハードウェア資源にかかった負荷が示される負荷データを記憶する負荷データ記憶領域から前記負荷データを読み出す負荷データ読み出しステップと、
前記コンピュータが、前記負荷データに示されている負荷に基づき、前記特定のプログラムを仮想マシンで実行する際に生じるオーバヘッドを仮想マシンオーバヘッドとして算出する仮想マシンオーバヘッド算出ステップと、
前記コンピュータが、前記仮想マシンオーバヘッド算出ステップにより算出された仮想マシンオーバヘッドを反映させて、前記負荷データに示されている負荷を再生する負荷再生ステップとを有することを特徴とする情報処理方法。
【請求項１４】
仮想マシンを実現するコンピュータに、
特定のプログラムを物理計算機で実行した際に前記物理計算機のハードウェア資源にかかった負荷が示される負荷データを記憶する負荷データ記憶領域から前記負荷データを読み出す負荷データ読み出し処理と、
前記負荷データに示されている負荷に基づき、前記特定のプログラムを仮想マシンで実行する際に生じるオーバヘッドを仮想マシンオーバヘッドとして算出する仮想マシンオーバヘッド算出処理と、
前記仮想マシンオーバヘッド算出処理により算出された仮想マシンオーバヘッドを反映させて、前記負荷データに示されている負荷を再生する負荷再生処理とを実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、計算機システムの評価に関し、特に仮想マシンを実現する計算機システムの評価に関する。
【背景技術】
【０００２】
仮想マシン技術により、１つの物理サーバ上に複数のマシン（仮想マシン）を稼動することが可能となっている。
各仮想マシンは、物理サーバのＣＰＵ、メモリ、入出力装置（以下Ｉ／Ｏ）等のハードウェア資源を時分割または排他的に使用することで論理的に個別の計算機として動作するため、これらの資源の競合を実際の運用環境にできるだけ近い条件で評価することが不可欠である。
また、仮想マシンモニタのオーバヘッドがあるため、オーバヘッドを含めた評価が必要である。
【０００３】
仮想マシンの負荷評価を行う方法として、例えば特許文献１に示すように、仮想マシンのゲスト上である一定の負荷を発生して評価を行う方法がある。
【０００４】
図１１を参照して特許文献１に係る評価方法を説明する。
図１１では、物理サーバ（８１）内で４つの仮想マシン（８３）、（８４）、（８５）、（８６）が起動している。
仮想マシン（８３）、（８４）内に評価対象である、ゲストＯＳ（８７）、（８８）とアプリケーション（８９）、（９０）が動作している。
仮想マシン（８５）、（８６）は負荷をかけるためのゲストであり、負荷を生成するためのテストプログラム（９１）、（９２）が動作する。
結合機構制御プログラム（８２）により、テストプログラム（９１）、（９２）が、ある決まった負荷を同時に生成し、アプリケーション（８９）、（９０）の負荷評価を行うものである。
【特許文献１】特開２００２−７１７３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
特許文献１に示されている方法は、ある決まった負荷を与えるものであり、負荷を生成させるプログラムは実際のアプリケーションではない。
そのため実際の運用環境にできるだけ近づけて負荷評価を行いたいという要求には対応できないという課題がある。
また、負荷生成専用アプリケーションを複数の仮想マシンゲスト上で動作させているため、それらを連携して動作されるための機構が必要となるという課題がある。
【０００６】
この発明は、上記のような課題を解決することを主な目的とし、ハードウェア資源の競合を実際の運用環境にできるだけ近い条件で効率的に評価し、かつ仮想マシンモニタのオーバヘッドも考慮した負荷評価が行えるようにすることを主な目的とする。
【課題を解決するための手段】
【０００７】
本発明に係る情報処理装置は、
仮想マシンを実現する情報処理装置であって、
特定のプログラムを物理計算機で実行した際に前記物理計算機のハードウェア資源にかかった負荷が示される負荷データを記憶する負荷データ記憶部と、
前記負荷データに示されている負荷に基づき、前記特定のプログラムを仮想マシンで実行する際に生じるオーバヘッドを仮想マシンオーバヘッドとして算出する仮想マシンオーバヘッド算出部と、
前記仮想マシンオーバヘッド算出部により算出された仮想マシンオーバヘッドを反映させて、前記負荷データに示されている負荷を再生する負荷再生部とを有することを特徴とする。
【発明の効果】
【０００８】
本発明によれば、特定のプログラムを物理計算機で実行した際に物理計算機のハードウェア資源にかかった負荷に基づき、特定のプログラムを仮想マシンで実行する際に生じるオーバヘッドを仮想マシンオーバヘッドとして算出し、仮想マシンオーバヘッドを反映させて負荷を再生するため、実際の運用環境に近い負荷条件にて仮想マシンの評価を行うことができる。
【発明を実施するための最良の形態】
【０００９】
実施の形態１．
実施の形態１では、事前に物理サーバ装置で取得した負荷データを仮想環境サーバ装置で再生することにより負荷評価を行う。
【００１０】
図１に、本実施の形態に係る仮想環境サーバ装置（１）（情報処理装置）の構成図を示す。
【００１１】
図１において、仮想環境サーバ装置（１）（以下、単に仮想環境サーバともいう）上で仮想マシンモニタ（２）が動作している。
仮想環境サーバ（１）内のデータ記憶部（３）には負荷データ（４）と構成データ（１２）が記憶されている。
データ記憶部（３）は、負荷データ記憶部及び構成データ記憶部の例である。
【００１２】
負荷データ（４）は、あらかじめ不図示の物理サーバ装置（物理計算機）（以下、単に物理サーバともいう）で特定のアプリケーションプログラム（以下、単にアプリケーションともいう）を実行し、負荷のデータを収集したものである。
負荷データ（４）は、後述する仮想マシン（９）（第１の仮想マシン）で実行される評価対象アプリケーション（１１）（第１のプログラム）とともに他の仮想マシン（第２の仮想マシン）で実行される関係にあるアプリケーション（第２のプログラム）を事前に物理サーバが実行した際に物理サーバのハードウェア資源にかかった負荷が示されるデータである。なお、以降、負荷データ（４）が対象としているアプリケーションを負荷アプリケーションという。
負荷データ（４）は、例えば図５に示すデータである。
図５では、物理サーバで負荷アプリケーションを実行した際に物理サーバのハードウェア資源（ＣＰＵ、メモリ、ディスク等）にかかった負荷を単位時間（１秒）ごとに示している。
【００１３】
構成データ（１２）とは、物理サーバに搭載されているＣＰＵの属性（ＣＰＵ周波数、ＣＰＵコア数、ＣＰＵ名等）、仮想環境サーバ装置（１）に搭載されているＣＰＵの属性（ＣＰＵ周波数、ＣＰＵコア数、ＣＰＵ名等）、仮想環境サーバ装置（１）で動作する仮想マシンの総数と各仮想マシンに割り当てられるＣＰＵコア数により求められるＣＰＵオーバヘッド係数、仮想環境サーバ装置（１）における記録ディスクのエミュレーションに要するＣＰＵ使用量等が示される情報であり、例えば、図６のＣＰＵ性能情報テーブル、図７のＣＰＵオーバヘッド係数テーブル、図８のＩ／Ｏ負荷変換テーブルで構成データ（１２）が管理されている。
【００１４】
また、図１において、ホスト（５）内でホストＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）（６）が動作しており、ホスト（５）内のアプリケーションとして仮想マシンオーバヘッド算出部（７）と負荷再生部（８）が動作する。
仮想マシンオーバヘッド算出部（７）は、負荷データ（４）のデータから仮想マシンのオーバヘッドを算出する機能である。
つまり、仮想オーバヘッド算出部（７）は、負荷データ（４）に示されている負荷に基づき、負荷アプリケーション（第２のプログラム）を仮想マシン（９）以外の仮想マシンで実行する際に生じると考えられるオーバヘッドを仮想マシンオーバヘッドとして算出する。
負荷再生部（８）は、負荷データ（４）と仮想マシンオーバヘッド算出部（７）の結果を合わせて、負荷を再生する機能である。
つまり、負荷再生部（８）は、評価対象アプリケーション（１１）の負荷評価の際に、仮想マシンオーバヘッド算出部（７）により算出された仮想マシンオーバヘッドを反映させて、負荷データ（４）に示されている負荷を再生する。
このように負荷再生部（８）は、負荷データ（４）に示されている負荷に仮想マシンオーバヘッドを加えることで、仮想マシンでの負荷アプリケーションの実行により生じるであろう固有のオーバヘッドを反映させることができ、仮想マシンで負荷アプリケーションを実行する環境に近づけて、評価対象アプリケーション（１１）の評価を行うことができる。
【００１５】
仮想マシン（９）は、評価対象となる仮想マシンであり、ゲストＯＳ（１０）が動作し、評価対象アプリケーション（１１）が動作する。
【００１６】
また、通信部（１３）は、負荷再生においてネットワーク通信を行う機能である。
【００１７】
次に、図９のフローチャートを参照しながら、本実施の形態に係る動作について述べる。
【００１８】
まず、負荷評価前の準備としてあらかじめ物理サーバで負荷アプリケーションを実行して負荷データを収集する。
負荷データの項目は、時刻ごとのＣＰＵ使用率、メモリ使用量、ディスク読み込み量、ディスク読み込み回数、ディスク書き込み量、ディスク書き込み回数、ネットワーク送信量、ネットワーク受信量である（図５）。
ここでは１秒ごとに取得した例で示すが、他の時間間隔でもかまわない。取得した負荷データは、仮想環境サーバ（１）内のデータ記憶部（３）にコピーしておく。
また、構成データ（１２）も負荷評価の開始前に予めデータ記憶部（３）に格納されているものとする。
【００１９】
次に、実際に負荷評価を行う。
まず、評価対象の仮想マシン（９）を起動する。
そして、仮想マシンオーバヘッド算出部（７）は、データ記憶部（３）から負荷データ（４）を読み出し（Ｓ１０１）（負荷データ読み出しステップ）、また、構成データ（１２）を読み出す（Ｓ１０２）。
そして、仮想マシンオーバヘッド算出部（７）は、負荷データ（４）及び構成データ（１２）から、仮想オーバヘッドとしてＣＰＵのスピンループ時間を算出する（Ｓ１０３）（仮想マシンオーバヘッド算出ステップ）。
ＣＰＵのスピンループ時間の算出方法については後述する。
【００２０】
次に、負荷再生部（８）は、所定のネットワーク負荷ツールを動作させる（Ｓ１０４）。
また、負荷再生部（８）は、負荷データ（４）を読み出し、負荷データ（４）の単位時間ごとに、スピンループ時間分ＣＰＵをスピンループさせて、負荷データ（４）の各レコードに示されている負荷を再生する（Ｓ１０５）（負荷再生ステップ）。ここでは、スピンループの負荷再生のみを示しているが、メモリ、ディスク、ネットワーク等の負荷再生もＳ１０５のステップで実行される。
なお、仮想マシン（９）における評価対象アプリケーション（１１）の実行及び評価対象アプリケーション（１１）の評価に並行して、負荷再生部（８）による負荷再生が行われる。
そして、負荷データ（４）の最後のレコードに到達するまで（Ｓ１０６）、Ｓ１０５の処理を繰り返し、負荷データ（４）の各レコードに示されている負荷を順に再生する。
このように、本実施の形態に係る負荷再生部（８）は、負荷を再生する際に、仮想マシンオーバヘッド算出部（７）によって算出されたオーバヘッドを加える。
【００２１】
次に、項目ごとに具体的な負荷再生について示す。
なお、前述したように、物理サーバのＣＰＵ周波数、ＣＰＵコア数、ＣＰＵ名、仮想環境サーバのＣＰＵ周波数、ＣＰＵ種類等は構成データ（２）においてあらかじめ管理されている。
また、ＣＰＵ種類ごとの性能値はあらかじめ求めておき、構成データ（１２）の一部を構成する図６に示すテーブルで管理する。
ＣＰＵオーバヘッド係数は、総仮想マシン数とＣＰＵコア数からあらかじめ求めておき、構成データ（１２）の一部を構成する図７に示すテーブルで管理する。
Ｉ／Ｏ負荷変換ＣＰＵ使用量（仮想マシンモニタがＩ／Ｏを実行するときにエミュレーションを行うため、エミュレーションに消費されるＣＰＵ使用量）は、ディスク、ネットワークごとにあらかじめ求めておき、構成データ（１２）の一部を構成する図８に示すテーブルで管理する。
【００２２】
（１）ＣＰＵの負荷再生
仮想マシンオーバヘッド算出部（７）が、仮想マシンオーバヘッドとして、以下の式（１）から、ＣＰＵのスピンループ時間を算出し、負荷再生部（８）が、単位時間（１秒）ごとにスピンループ時間の間ＣＰＵをスピンループさせる。
Ｔｓ＝Ｆｐ×Ｎｐ×Ｐｐ×Ｕ×Ｏ／（Ｆｖ×Ｐｖ）
＋（Ｒｄ＋Ｗｒ）×Ｌｄ／Ｆｖ＋（Ｔｘ＋Ｒｘ）×Ｌｎ／Ｆｖ  ・・・式（１）
Ｔｓ：スピンループ時間
Ｆｐ：物理サーバのＣＰＵ周波数
Ｎｐ：物理サーバのＣＰＵコア数
Ｐｐ：物理サーバのＣＰＵの性能値（図６のテーブルから）
Ｕ：ＣＰＵ使用率（図５のテーブルから）
Ｏ：ＣＰＵオーバヘッド係数（図７のテーブルから）
Ｆｖ：仮想環境サーバのＣＰＵ周波数
Ｐｖ：仮想環境サーバの性能値（図６のテーブルから）
Ｒｄ：ディスク読込量（図５のテーブルから）
Ｗｒ：ディスク書込量（図５のテーブルから）
Ｌｄ：ディスク負荷変換ＣＰＵ使用量（図８のテーブルから）
Ｌｎ：ネットワーク負荷変換ＣＰＵ使用量（図８のテーブルから）
Ｔｘ：ネットワーク送信量（図５のテーブルから）
Ｒｘ：ネットワーク受信量（図５のテーブルから）
【００２３】
なお、スピンループ時間Ｔｓが１秒を超える場合は、複数のスレッドで実行する（それぞれのスレッドでのスピンループ時間の合計がＴｓになるようにし、それぞれのスレッドでのスピンループ時間は１秒以下にする）。
【００２４】
（２）メモリの負荷再生
負荷再生部（８）は、単位時間（１秒）間、図５のメモリ使用量分メモリを確保し続ける。
【００２５】
（３）ディスク読み込み負荷再生
負荷再生部（８）は、単位時間（１秒）ごとに、Ｓｒサイズの読み込みをＮｒ回繰り返す。
Ｓｒ：ディスク読込量／ディスク読込回数（図５のテーブルから）
Ｎｒ：ディスク読込回数（図５のテーブルから）
【００２６】
（４）ディスク書き込み負荷再生
負荷再生部（８）は、単位時間（１秒）ごとに、Ｓｗサイズの書込みをＮｗ回繰り返す。
Ｓｗ：ディスク書込量／ディスク書込回数（図５のテーブルから）
Ｎｗ：ディスク書込回数（図５のテーブルから）
【００２７】
（５）ネットワーク送信負荷再生
負荷再生部（８）は、単位時間（１秒）ごとにＴｘのサイズ分ネットワークに送信を行う。
Ｔｘ：ネットワーク送信量（図５のテーブルから）
【００２８】
（６）ネットワーク受信負荷再生
負荷再生部（８）は、単位時間（１秒）ごとにＲｘのサイズ分ネットワークから受信を行う。
Ｒｘ：ネットワーク受信量（図５のテーブルから）
ネットワーク受信を行う場合、データを送信してくれる外部機器が必要であるため、図２に示す構成で行う。
外部ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）（２１）（外部装置）を用意し、ＰＣ上でネットワーク負荷ツール（２２）を動作させる。外部ＰＣ（２１）は、ネットワーク（２３）で仮想環境サーバ（１）と接続される。
ネットワーク受信負荷再生時は、Ｒｘサイズのデータを送信するように負荷再生部（８）がネットワーク負荷ツール（２２）に要求を出す。
ネットワーク負荷ツール（２２）は、要求を受けたら、負荷再生部（８）に対して指定されたサイズのデータを送信する。
このように実行することによりネットワーク受信負荷を再生する。
【００２９】
以上の方法により、負荷再生部（８）は、負荷を再生する。
【００３０】
このように本実施の形態によれば、物理サーバ装置でアプリケーションを実行した際に物理サーバ装置のハードウェア資源に実際にかかった負荷に基づき、仮想マシンで実行する際に生じるオーバヘッドを仮想マシンオーバヘッドとして算出し、仮想マシンオーバヘッドを反映させて負荷を再生するため、実際の運用環境に近い負荷条件にて仮想マシンの評価を行うことができる。
【００３１】
以上、本実施の形態では、
事前に物理サーバでアプリケーションを実行し、ハードウェア資源の使用率などの負荷データを時刻とともに記録しておき、この負荷データを記憶する記憶装置と、
ホストＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）と、ホストＯＳ上で動作する、仮想マシン（ＶＭ：Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ）オーバヘッド算出部と、負荷再生部とを有するホストと、
ゲストＯＳと、ゲストＯＳ上で動作する評価対象のアプリケーションを有するゲストを備え、
仮想マシンオーバヘッド算出部が負荷データを読み込み仮想マシンのオーバヘッドを算出し、
負荷再生部が負荷データを読み込み、仮想マシンオーバヘッド算出部が算出したオーバヘッドを加味して負荷を再生する情報処理装置による仮想マシンの負荷評価方式を説明した。
【００３２】
実施の形態２．
次に、負荷データが複数の場合の構成を図３に示す。
図３では、負荷データ（４）に加えて、負荷データ（３４）がデータ記憶部（３）内にある。
負荷データ（４）及び負荷データ（３４）は、それぞれ異なる負荷アプリケーションが物理サーバで実行された際の負荷を示している。
また、２つの負荷データを使い同時に動作させるため、負荷再生部（８）、（３８）、仮想マシンオーバヘッド算出部（７）、（３７）も複数の構成となり、それぞれ別スレッド（３１）、（３２）で動作するようにする。
【００３３】
実際の動作時は、２つのスレッド（３１）、（３２）が同時、または指定された時間差で実行を開始する。それぞれの動作については、実施の形態１と同じである。
ここでは負荷データが２つの場合を説明したが、３つ以上の場合も同様である。
【００３４】
以上、本実施の形態では、
記憶装置が、複数の負荷データを記憶し、
仮想マシンオーバヘッド算出部と負荷再生部を複数有し、仮想マシンオーバヘッド算出部と負荷再生部がそれぞれ別のスレッドで同時に動作し、仮想マシンオーバヘッド算出部と負荷再生部それぞれが負荷データを読み込み、複数の負荷を同時に再生可能とした仮想マシンの負荷評価方式を説明した。
【００３５】
実施の形態３．
実施の形態１ではネットワーク負荷ツールを外部ＰＣ内に構成していたが、実施の形態３では、ネットワーク負荷ツールも仮想環境サーバ内に持つ構成について示す。
【００３６】
図４に示すように、ネットワーク負荷ツール（４３）（データ送信部）を動作させる仮想マシン（４１）を用意する。
負荷再生部（８）は、仮想マシン（４１）内のネットワーク負荷ツール（４３）に対してネットワーク送信および、ネットワーク受信を行う。
この場合、仮想マシン（４１）が仮想環境サーバ（１）のリソースを消費する。このリソースの消費は、実際に外部ＰＣからデータを受信している場合には発生しない消費量である。このため、仮想マシン（４１）の動作により生じるリソース消費分の負荷を調整する必要がある。
そこで、負荷再生部（８）では、仮想マシン（４１）が消費するリソース負荷を引いた分の負荷を再生するようにする。
【００３７】
つまり、本実施の形態では、ネットワーク負荷ツール（４３）は、負荷データ（４）に示されているデータ受信量に相当するデータを単位時間ごとに負荷再生部（８）に送信し、負荷再生部（８）は、負荷データ（４）に示されているデータ受信量に相当するデータを単位時間ごとにネットワーク負荷ツール（４３）から受信して、単位時間ごとの負荷を再生する。
また、仮想マシンオーバヘッド算出部（７）は、負荷データ（４）に示されている負荷とネットワーク負荷ツール（４３）によるデータ送信に要する負荷とに基づき、仮想マシンオーバヘッドを算出し、負荷再生部（８）は、仮想マシンオーバヘッド算出部（７）により算出された仮想マシンオーバヘッドを反映させるとともに、負荷データ（４）に示されている負荷からネットワーク負荷ツール（４３）によるデータ送信に要する負荷を減じた負荷を再生する。
【００３８】
以下に、項目ごとの負荷再生を示す。
【００３９】
（１）ＣＰＵの負荷再生
仮想マシンオーバヘッド算出部（７）が、仮想マシンオーバヘッドとして、以下の式（２）から、ＣＰＵのスピンループ時間を算出し、負荷再生部（８）が、単位時間（１秒）ごとにスピンループ時間の間ＣＰＵをスピンループさせる。
仮想マシンオーバヘッド算出部（７）で算出するネットワーク負荷ＣＰＵ使用量と仮想マシン（４１）で使用するＣＰＵ量はほぼ同じと考え、以下の式（２）となる。
Ｔｓ＝Ｆｐ×Ｎｐ×Ｐｐ×Ｕ×Ｏ／（Ｆｖ×Ｐｖ）
＋（Ｒｄ＋Ｗｒ）×Ｌｄ／Ｆｖ                ・・・式（２）
【００４０】
（２）メモリの負荷再生
負荷再生部（８）が、単位時間（１秒）の間、図５のメモリ使用量分−仮想マシン（４１）が使用するメモリ量のメモリを確保し続ける。
【００４１】
なお、ディスク読み込み負荷再生、ディスク書き込み負荷再生、ネットワーク送信負荷再生、ネットワーク受信負荷再生については、実施の形態１と同じである。
【００４２】
以上、本実施の形態では、
ネットワーク負荷再生用ゲストＯＳと、ゲストＯＳ上で動作するネットワーク負荷ツールを有するゲストを備え、
ネットワーク負荷再生用ゲストＯＳのネットワーク負荷ツールは、ホストＯＳの負荷再生部からの要求でネットワーク負荷を再生することができるようにし、
ホストＯＳの負荷再生部は、ネットワーク負荷再生用ゲストで消費されるリソース負荷を引いた負荷を再生し、
自サーバのみで負荷評価を実行可能とした仮想マシンの負荷評価方式を説明した。
【００４３】
最後に、実施の形態１〜３に示した仮想環境サーバ装置（１）のハードウェア構成例について説明する。
図１０は、実施の形態１〜３に示す仮想環境サーバ装置（１）のハードウェア資源の一例を示す図である。
なお、図１０の構成は、あくまでも仮想環境サーバ装置（１）のハードウェア構成の一例を示すものであり、仮想環境サーバ装置（１）のハードウェア構成は図１０に記載の構成に限らず、他の構成であってもよい。
【００４４】
図１０において、仮想環境サーバ装置（１）は、プログラムを実行するＣＰＵ（９１１）（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう）を備えている。
ＣＰＵ（９１１）は、バス（９１２）を介して、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）（９１３）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）（９１４）、通信ボード（９１５）、表示装置（９０１）、キーボード（９０２）、マウス（９０３）、磁気ディスク装置（９２０）と接続され、これらのハードウェアデバイスを制御する。
更に、ＣＰＵ（９１１）は、ＦＤＤ（９０４）（Ｆｌｅｘｉｂｌｅ  Ｄｉｓｋ  Ｄｒｉｖｅ）、コンパクトディスク装置（９０５）（ＣＤＤ）、プリンタ装置（９０６）、スキャナ装置（９０７）と接続していてもよい。また、磁気ディスク装置（９２０）の代わりに、光ディスク装置、メモリカード（登録商標）読み書き装置などの記憶装置でもよい。
ＲＡＭ（９１４）は、揮発性メモリの一例である。ＲＯＭ（９１３）、ＦＤＤ（９０４）、ＣＤＤ（９０５）、磁気ディスク装置（９２０）の記憶媒体は、不揮発性メモリの一例である。これらは、記憶装置の一例である。
通信ボード（９１５）、キーボード（９０２）、マウス（９０３）、スキャナ装置（９０７）、ＦＤＤ（９０４）などは、入力部、入力装置の一例である。
また、通信ボード（９１５）、表示装置（９０１）、プリンタ装置（９０６）などは、出力部、出力装置の一例である。
【００４５】
通信ボード（９１５）は、ネットワークに接続される。例えば、通信ボード（９１５）は、ＬＡＮ（ローカルエリアネットワーク）、インターネット、ＷＡＮ（ワイドエリアネットワーク）などに接続される。
【００４６】
磁気ディスク装置（９２０）には、仮想マシンモニタ（９２１）、ホストＯＳ（９２２）、プログラム群（９２３）、ファイル群（９２４）が記憶されている。
プログラム群（９２３）のプログラムは、ＣＰＵ（９１１）、仮想マシンモニタ（９２１）、ホストＯＳ（９２２）により実行される。
また、仮想マシンモニタ（９２１）自身がホストＯＳ（９２２）の機能を含む場合や、ホストＯＳ（９２２）内に仮想マシンモニタ（９２１）が存在する場合もある。
【００４７】
ＲＯＭ（９１３）には、ＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ  Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）プログラムが格納され、磁気ディスク装置（９２０）にはブートプログラムが格納されている。
仮想環境サーバ装置（１）の起動時には、ＲＯＭ（９１３）のＢＩＯＳプログラム及び磁気ディスク装置（９２０）のブートプログラムが実行され、ＢＩＯＳプログラム及びブートプログラムにより仮想マシンモニタ（９２１）、ホストＯＳ（９２２）が起動される。
【００４８】
プログラム群（９２３）には、実施の形態１〜３に示される「〜部」を実現するプログラムが含まれる。
また、ファイル群（９２４）には、実施の形態１〜３に示される負荷データ（４）、構成データ（１２）等が含まれる。
【００４９】
更に、ファイル群（９２４）には、実施の形態１〜３の説明において、「〜の判断」、「〜の計算」、「〜の算出」、「〜の比較」、「〜の評価」、「〜の更新」、「〜の設定」、「〜の選択」等として説明している処理の結果を示す情報やデータや信号値や変数値やパラメータが、「〜ファイル」や「〜データベース」の各項目として記憶されている。
「〜ファイル」や「〜データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してＣＰＵ（９１１）によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示などのＣＰＵの動作に用いられる。
抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示のＣＰＵの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリ、レジスタ、キャッシュメモリ、バッファメモリ等に一時的に記憶される。
また、実施の形態１〜３で説明しているフローチャートの矢印の部分は主としてデータや信号の入出力を示し、データや信号値は、ＲＡＭ（９１４）のメモリ、ＦＤＤ（９０４）のフレキシブルディスク、ＣＤＤ（９０５）のコンパクトディスク、磁気ディスク装置（９２０）の磁気ディスク、その他光ディスク、ミニディスク、ＤＶＤ等の記録媒体に記録される。また、データや信号は、バス（９１２）や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
【００５０】
また、実施の形態１〜３の説明において「〜部」として説明しているものは、「〜回路」、「〜装置」、「〜機器」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。すなわち、「〜部」として説明しているものは、ＲＯＭ（９１３）に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、ＤＶＤ等の記録媒体に記憶される。プログラムはＣＰＵ（９１１）により読み出され、ＣＰＵ（９１１）により実行される。すなわち、プログラムは、実施の形態１〜３の「〜部」としてコンピュータを機能させるものである。あるいは、実施の形態１〜３の「〜部」の手順や方法をコンピュータに実行させるものである。
【００５１】
このように、実施の形態１〜３に示す仮想環境サーバ装置（１）は、処理装置たるＣＰＵ、記憶装置たるメモリ、磁気ディスク等、入力装置たるキーボード、マウス、通信ボード等、出力装置たる表示装置、通信ボード等を備えるコンピュータであり、上記したように「〜部」として示された機能をこれら処理装置、記憶装置、入力装置、出力装置を用いて実現するものである。
【図面の簡単な説明】
【００５２】
【図１】実施の形態１に係る仮想環境サーバ装置の構成例を示す図。
【図２】実施の形態１に係る仮想環境サーバ装置をネットワークに接続した例を示す図。
【図３】実施の形態２に係る仮想環境サーバ装置の構成例を示す図。
【図４】実施の形態３に係る仮想環境サーバ装置の構成例を示す図。
【図５】実施の形態１に係る負荷データの例を示す図。
【図６】実施の形態１に係るＣＰＵ性能情報テーブルの例を示す図。
【図７】実施の形態１に係るＣＰＵオーバヘッド係数テーブルの例を示す図。
【図８】実施の形態１に係るＩ／Ｏ負荷変換テーブルの例を示す図。
【図９】実施の形態１に係る仮想環境サーバ装置の動作例を示すフローチャート図。
【図１０】実施の形態１〜３に係る仮想環境サーバ装置のハードウェア構成例を示す図。
【図１１】従来技術を説明する図。
【符号の説明】
【００５３】
１  仮想環境サーバ装置、２  仮想マシンモニタ、３  データ記憶部、４  負荷データ、５  ホスト、６  ホストＯＳ、７  仮想マシンオーバヘッド算出部、８  負荷再生部、９  仮想マシン、１０  ゲストＯＳ、１１  評価対象アプリケーション、１２  構成データ、１３  通信部、２１  外部ＰＣ、２２  ネットワーク負荷ツール、２３  ネットワーク、３１  スレッド、３２  スレッド、３４  負荷データ、３７  仮想マシンオーバヘッド算出部、３８  負荷再生部、４１  仮想マシン、４２  ゲストＯＳ、４３  ネットワーク負荷ツール。
【図１】
2010128866.tif 000003
【図２】
2010128866.tif 000004
【図３】
2010128866.tif 000005
【図４】
2010128866.tif 000006
【図５】
2010128866.tif 000007
【図６】
2010128866.tif 000008
【図７】
2010128866.tif 000009
【図８】
2010128866.tif 000010
【図９】
2010128866.tif 000011
【図１０】
2010128866.tif 000012
【図１１】
2010128866.tif 000013