(57)【特許請求の範囲】
【請求項１】
メモリと
前記メモリに接続され、ホストＶＭＭ（Virtual  Machine  Monitor）と、前記ホストＶＭＭ上の１段目ＶＭ（Virtual  Machine）と、前記１段目ＶＭにおけるゲストＶＭＭと、前記ゲストＶＭＭ上の２段目ＶＭとを実行するプロセッサと
を有し、
前記ホストＶＭＭが、
前記２段目ＶＭに対する仮想ＶＭＥＮＴＲＹが原因で物理ＶＭＥＮＴＲＹを実行するのか否かの第１の判断と、前記２段目ＶＭの仮想ＶＭＥＸＩＴが原因で物理ＶＭＥＸＩＴが検出されたか否かの第２の判断とを行い、
前記第１及び第２の判断の結果を基に、前記２段目ＶＭの実行時間を算出し、算出された実行時間に基づく情報を前記メモリに格納し、
物理ＶＭＥＮＴＲＹは、前記ホストＶＭＭによるＶＭＥＮＴＲＹであり、
仮想ＶＭＥＮＴＲＹは、前記ゲストＶＭＭによるＶＭＥＮＴＲＹであり、
物理ＶＭＥＸＩＴは、前記ホストＶＭＭの開始の契機となるＶＭＥＸＩＴであり、
仮想ＶＭＥＸＩＴは、前記２段目ＶＭの終了であるＶＭＥＸＩＴである、
仮想計算機システム。
【請求項２】
前記ホストＶＭＭが、前記第１の判断の結果が真であれば、前記２段目ＶＭの実行開始時刻を前記メモリに格納し、
前記ホストＶＭＭが、物理ＶＭＥＸＩＴを検出した場合に、前記第２の判断を行い、前記第２の判断の結果が真であれば、前記２段目ＶＭの実行終了時刻を前記メモリに格納し、
前記ホストＶＭＭが、前記実行開始時刻と前記実行終了時刻との差分を前記２段目ＶＭの実行時間として算出する、
請求項１記載の仮想計算機システム。
【請求項３】
前記ホストＶＭＭが、前記２段目ＶＭの仮想ＶＭＥＮＴＲＹが原因で前記第２段目ＶＭに対する物理ＶＭＥＮＴＲＹを実行し、前記２段目ＶＭの仮想ＶＭＥＮＴＲＹとは別の原因で前記１段目ＶＭにおける前記ゲストＶＭＭを実行開始するようになっている、
請求項２記載の仮想計算機システム。
【請求項４】
前記１段目ＶＭ上で複数の２段目ＶＭが実行され、
前記ホストＶＭＭが、前記第１の判断の結果が真の場合、前記複数の２段目ＶＭのうち仮想ＶＭＥＮＴＲＹの対象である対象２段目ＶＭを識別し、前記対象２段目ＶＭの識別子を前記メモリに格納し、且つ、前記対象２段目ＶＭの実行開始時刻を前記メモリに格納し、
前記ホストＶＭＭが、前記第２の判断の結果が真の場合、前記メモリに格納されている識別子から前記対象２段目ＶＭを識別し、前記対象２段目ＶＭについて実行終了時刻を前記メモリに格納する、
請求項３記載の仮想計算機システム。
【請求項５】
前記ゲストＶＭＭが、前記２段目ＶＭに対応した制御情報であるゲストＶＭ制御情報を、前記ホストＶＭＭが参照可能であり前記メモリにおける記憶領域にコピーし、前記記憶領域にコピーされたゲストＶＭ制御情報を使用して、前記２段目ＶＭに対する仮想ＶＭＥＮＴＲＹを実行するようになっており、
前記ホストＶＭＭが、前記記憶領域にコピーされたゲストＶＭ制御情報を使用して前記２段目ＶＭに対する物理ＶＭＥＮＴＲＹを実行する、
請求項３記載の仮想計算機システム。
【請求項６】
前記プロセッサは、前記２段目ＶＭの実行時間の算出の都度に、前記メモリに、前記２段目ＶＭの実行時間の累積値を更新し、
前記プロセッサは、前記２段目ＶＭの実行時間の累積値を複数の時点の各々で出力する、又は、複数の時点と前記２段目ＶＭの実行時間の累積値又はそれに基づく情報との関係を出力する、
請求項１記載の仮想計算機システム。
【請求項７】
前記メモリ及び前記プロセッサを有する物理計算機と、
前記物理計算機に接続された管理計算機と
を有し、
前記プロセッサによる出力の先が、前記管理計算機である、
請求項６記載の仮想計算機システム。
【請求項８】
ホストＶＭＭ（Virtual  Machine  Monitor）と、前記ホストＶＭＭ上の１段目ＶＭ（Virtual  Machine）と、前記１段目ＶＭにおけるゲストＶＭＭと、前記ゲストＶＭＭ上の２段目ＶＭとを実行するプロセッサを有する仮想計算機システムでのプロセッサ性能測定方法であって、
（Ａ）前記２段目ＶＭの仮想ＶＭＥＮＴＲＹが原因で物理ＶＭＥＮＴＲＹを実行するのか否かの第１の判断と、前記２段目ＶＭの仮想ＶＭＥＸＩＴが原因で物理ＶＭＥＸＩＴが検出されたか否かの第２の判断とを前記ホストＶＭＭにより行い、
（Ｂ）前記第１及び第２の判断の結果を基に、前記２段目ＶＭの実行時間を前記ホストＶＭＭにより算出し、
物理ＶＭＥＮＴＲＹは、前記ホストＶＭＭによるＶＭＥＮＴＲＹであり、
仮想ＶＭＥＮＴＲＹは、前記ゲストＶＭＭによるＶＭＥＮＴＲＹであり、
物理ＶＭＥＸＩＴは、前記ホストＶＭＭの開始の契機となるＶＭＥＸＩＴであり、
仮想ＶＭＥＸＩＴは、前記２段目ＶＭの終了であるＶＭＥＸＩＴである、
プロセッサ性能測定方法。
【請求項９】
前記第１の判断の結果が真であれば、前記ホストＶＭＭにより、前記２段目ＶＭの実行開始時刻をメモリに格納し、
物理ＶＭＥＸＩＴを検出した場合に、前記ホストＶＭＭにより、前記第２の判断を行い、
前記第２の判断の結果が真であれば、前記２段目ＶＭの実行終了時刻を前記メモリに格納し、
（Ｂ）において、前記ホストＶＭＭにより、前記実行開始時刻と前記実行終了時刻との差分を前記２段目ＶＭの実行時間として算出する、
請求項８記載のプロセッサ性能測定方法。
【請求項１０】
前記ゲストＶＭＭにより、前記２段目ＶＭに対する仮想ＶＭＥＮＴＲＹを実行し、
前記２段目ＶＭに対する仮想ＶＭＥＮＴＲＹとは別の原因で前記ゲストＶＭＭを実行開始する前記ホストＶＭＭにより、前記第１の判断を行い、前記２段目ＶＭに対する仮想ＶＭＥＮＴＲＹが原因で前記第２段目ＶＭに対する物理ＶＭＥＮＴＲＹを実行し、前記第２の判断を行う、
請求項８記載のプロセッサ性能測定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、１段目ＶＭ（Virtual  Machine）上で２段目ＶＭを実行する仮想計算機システムでのプロセッサ性能測定に関する。
【背景技術】
【０００２】
一般に、サーバ台数の増加と共に運用に関する複雑さが増加しており、運用コストが問題化する。運用コストを低減する技術として、複数サーバを１台にまとめるサーバ統合が注目を集めている。サーバ統合を実現する技術として、１つのコンピュータを任意の割合で論理的に分割する仮想計算機技術が知られている。仮想計算機技術では、例えば、ハイパバイザなどのファームウェア（またはミドルウェア）が、物理計算機を複数の論理区画（ＬＰＡＲ：Logical  PARtition）に分割し、各ＬＰＡＲに対して計算機資源（典型的には、プロセッサ、メモリ、Ｉ／Ｏ（Input/Output）デバイス）を割り当て、各ＬＰＡＲ上でそれぞれＯＳ（Operating  System）を動作させる。あるいは、１つのサーバ上で１つのホストＯＳ（物理計算機を直接使用するＯＳ）が実行され、このホストＯＳ上稼動するハイパバイザが、上記と同様の分割処理を行って、複数のゲストＯＳ（ホストＯＳ上で稼動するＯＳ）を稼動させる。仮想計算機技術は、複数のサーバで稼動していたＯＳ、及び、ＯＳ上で稼動するソフトウェアを、１台のサーバで稼動させることを可能にしており、サーバ統合を実現している。
【０００３】
また、仮想計算機技術は、一般に、汎用機（Mainframe）等の大型計算機で用いられてきた技術であるが、近年のマイクロプロセッサの性能向上に伴い、ローエンドサーバでも普及しつつある。仮想計算機技術を採用したサーバ等の計算機は、ゲスト（ゲストＯＳ及び、ゲストＯＳ上で稼動するソフトウェアの総称）を稼動させる複数の仮想計算機（Virtual  Machine）と、仮想計算機の制御を行う仮想計算機モニタ（Virtual  Machine  Monitor、以下「ＶＭＭ」とする）とを有する。
【０００４】
ＶＭＭを支援する機能を提供及び拡充するプロセッサが知られている。そのようなプロセッサとして、例えば、ｘ８６プロセッサがある。ローエンドサーバの中でも特に、ｘ８６プロセッサはＶＭＭを支援する機能を提供及び拡充しており、ｘ８６プロセッサを搭載するｘ８６サーバは仮想計算機の性能を改善している。今後もｘ８６サーバの性能は継続的に向上すると推測され、１サーバ上で稼動できるゲスト数は増加傾向にある。
【０００５】
本傾向が進むと、障害が発生した場合に、多数のゲストが一斉に停止する懸念が生じてくる。本懸念に対しては、占有方式が有効である。占有方式は、計算機資源（典型的には、プロセッサ、メモリ、Ｉ／Ｏデバイス）を単一のゲストに占有させて、故障時の影響範囲を最小化し、それにより、信頼性を高める。一方で、ＶＭＭには、計算機資源を複数のゲストで共有させる共有方式も存在する。共有方式では、計算機資源の空き時間を活用するなど、計算機資源を柔軟に割当て可能であり、利便性が向上するメリットがある。
【０００６】
信頼性と利便性はいずれも重要であるため、今後はサーバとＯＳの間で、占有方式のＶＭＭ（ホストＶＭＭ）と共有方式のＶＭＭ（ゲストＶＭＭ）を重ねて稼動させて、信頼性と利便性のバランスを取る方法が定着していくと考えられる。本形態を「２レベル仮想計算機システム」（又はマルチレイヤ仮想計算機システム）と呼ぶことができる。しかしながら、ｘ８６プロセッサは、１レベル仮想計算機システム（ホストＶＭＭは存在するがゲストＶＭＭは存在しないシステム）にのみ対応している。以下、ｘ８６プロセッサで実装されている機能の概要について述べる。
【０００７】
ｘ８６プロセッサは、ゲストの動作を開始する機能と、ゲストの動作を監視して特定のイベントが発生した場合にゲストの動作を中断してＶＭＭを呼ぶアシスト機能とを有する。アシスト機能は、例えば、Ｉｎｔｅｌ社のプロセッサではＶＴ（Virtualization  Technology）と呼ばれ、ＡＭＤ社のプロセッサではＳＶＭ（Secure  Virtual  Machine）と呼ばれる。また、ゲスト動作の開始は、「ＶＭＥＮＴＲＹ」と呼ばれ、ゲスト動作の中断は、「ＶＭＥＸＩＴ」と呼ばれる。
【０００８】
アシスト機能は、ゲスト動作の中断又は再開時に、ゲスト動作中のプロセッサの状態をメモリに退避又は回復する。ＶＭＭは、アシスト機能を利用し、ゲストが他ゲストに影響する動作（例えば電源OFF）を行う場合に、サーバの電源をOFFする代わりにそのゲストの実行を停止させる等のエミュレーション（代替処理）を行う。エミュレーションに際して、ＶＭＭは、メモリ中のゲスト状態を変更する。
【０００９】
ＶＭＭを呼ぶ条件は、ＶＭＭのポリシーによって異なる。例えば、共有方式では、ゲストがＩ／Ｏを操作すると他のゲストに影響するため、アクセスを制限する必要がある。しかし、占有方式であれば、ゲストがＩ／Ｏを操作しても構わない。そこで、ｘ８６プロセッサによれば、ＶＭＭのポリシーの違いに対応して、ＶＭＭ呼び出し条件を、細かく設定することができる。また、ゲスト状態の退避及び回復に使用する領域を、指定することができる。ＶＭＭ呼び出し条件、及びゲスト状態の退避及び回復に使用する領域は、Ｉｎｔｅｌ社のプロセッサでは、ＶＭＣＳ（Virtual  Machine  Control  Structure）と呼ばれるデータ構造に含まれ、プロセッサ内のＶＭＣＳポインタから参照される。同様に、ＡＭＤ社のプロセッサでは、ＶＭＣＢ（Virtual  Machine  Control  Block）と呼ばれるデータ構造に含まれ、プロセッサ内のＶＭＣＢポインタから参照される。
【００１０】
ｘ８６プロセッサは、１レベル仮想計算機システムにのみ対応しているため、２レベル仮想計算機システムを構築するためには、ホストＶＭＭがアシスト機能をエミュレーションしてゲストＶＭＭを動作させる（特許文献１）。ホストＶＭＭは、動作主体（ゲストＶＭＭ及びゲストＯＳ）に対応した２種類のＶＭＣＳ（ＡＭＤ社のプロセッサならばＶＭＣＢが該当：以下同様）を作成又は管理する。また、ホストＶＭＭは、ゲストＶＭＭが作成したＶＭＣＳも必要に応じて参照又は更新する。以下では、ホストＶＭＭに作成又は管理されゲストＶＭＭに対応したＶＭＣＳを、「ゲストＶＭＭ用ホストＶＭＣＳ」と呼び、ホストＶＭＭに作成又は管理されゲストＯＳに対応したＶＭＣＳを、「ゲストＯＳ用ホストＶＭＣＳ」と呼び、ゲストＶＭＭにより作成されたＶＭＣＳを「ゲストＶＭＣＳ」と呼ぶ。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開2009-3749号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
仮想計算機システムでは、一般に、プロセッサの性能情報として、ＶＭＭの実行時間と各ゲストの実行時間が採取される。２レベル仮想計算機システムでは、ホストＶＭＭとゲストＶＭＭが、それぞれ、プロセッサの実行時間（性能情報）を採取する。
【００１３】
しかし、これらのＶＭＭは、２レベル仮想計算機システムを考慮してプロセッサの実行時間の採取を行っていない。具体的には、ホストＶＭＭは、２段目ＶＭについて実行時間を採取することはできない。一方、ゲストＶＭＭは、２段目ＶＭの実行時間を採取することはできるが、その実行時間は、１段目ＶＭにおける仮想プロセッサ（仮想計算機システムでのプロセッサ（物理プロセッサ）に基づく仮想資源）の性能である。物理プロセッサに対する仮想プロセッサの割合と、２段目ＶＭＭについてゲストＶＭＭにより採取された実行時間とから、２段目ＶＭＭについての物理プロセッサ性能を推測することはできるが、推測された性能は正確ではない。
【００１４】
以上のように、２レベル仮想計算機システムでは、２段目ＶＭについての物理プロセッサ性能（言い換えれば、２段目ＶＭの物理プロセッサに対する影響）を正確に把握するための情報を取得することはできない。この種の問題は、ｘ８６プロセッサ以外のプロセッサが物理プロセッサとして使用される場合にもあり得る。
【課題を解決するための手段】
【００１５】
１段目ＶＭと１段目ＶＭ上に生成される２段目ＶＭとを実行する仮想計算機システムにおいて、プロセッサが、２段目ＶＭの仮想的な実行開始が原因で物理的に実行開始を指示するのか否かの第１の判断と、２段目ＶＭの仮想的な終了が原因で物理的な終了が検出されたか否かの第２の判断とを行い、第１及び第２の判断の結果を基に、２段目ＶＭの実行時間を算出する。
【発明の効果】
【００１６】
２段目ＶＭについて把握される物理プロセッサ性能の正確性を向上することができる。
【図面の簡単な説明】
【００１７】
【図１】実施例１に係る計算機システムのブロック図である。
【図２】実施例１に係る性能管理テーブル１８０の一例を示す。
【図３】実施例１に係る性能管理テーブル１６０の比較例を示す。
【図４】実施例１に係る、ホストＶＭＭ、ゲストＶＭＭ及び２段目ＶＭの実行の一例、を示すタイムチャートである。
【図５】実施例１に係る物理ＶＭＥＮＴＲＹ処理のフローチャートである。
【図６】実施例１に係る物理ＶＭＥＸＩＴ処理のフローチャートである。
【図７】実施例１に係る性能管理テーブル１６０の一例を示す。
【図８】実施例１に係る性能管理テーブル８０の一例を示す。
【図９】実施例２に係る物理ＶＭＥＮＴＲＹ処理のフローチャートである。
【図１０】実施例２に係る物理ＶＭＥＸＩＴ処理のフローチャートである。
【図１１】実施例２に係る性能管理テーブル１６０´の一例を示す。
【発明を実施するための形態】
【００１８】
以下、幾つかの実施例を説明する。
【００１９】
以下の説明では、「×××テーブル」の表現にて情報を説明することがあるが、情報は、どのようなデータ構造で表現されていてもよい。すなわち、情報がデータ構造に依存しないことを示すために、「×××テーブル」を「×××情報」と呼ぶことができる。
【００２０】
また、以下の説明では、「プログラム」を主語として処理を説明する場合があるが、プログラムは、プロセッサ（例えばＣＰＵ（Central  Processing  Unit））によって実行されることで、定められた処理を、適宜に記憶デバイス（例えばメモリ）及び／又は通信インタフェースデバイス（例えば通信ポート）を用いながら行うため、処理の主語がプロセッサとされてもよい。プログラムを主語として説明された処理は、プロセッサ或いはそのプロセッサを有するシステムが行う処理としてもよい。また、プロセッサは、ＣＰＵそれ自体であってもよいし、プロセッサが行う処理の一部又は全部を行うハードウェア回路を含んでもよい。プログラムは、プログラムソースからインストールされてもよい。プログラムソースは、例えば、プログラム配布サーバ又は記憶メディアであってもよい。プログラム配布サーバは、管理用計算機であってもよい。
【実施例１】
【００２１】
図１は、実施例１に係る計算機システムのブロック図である。
【００２２】
計算機システムは、物理計算機１０と、管理計算機７０とを有する。
【００２３】
物理計算機１０は、２レベル仮想計算機システムの一例である。物理計算機１０は、仮想化支援機能を備えて演算処理を実行する物理プロセッサ２０と、データやプログラムを格納するメモリ３０と、物理計算機１０の外部の装置とデータの送受信を行うためのＩ／Ｏ（Input/Output）デバイス４０とを有する。物理プロセッサは、メモリ３０及びＩ／Ｏデバイス４０に接続されている。Ｉ／Ｏデバイス４０は、例えば、ネットワークインターフェースやホストバスアダプタ等で構成される。また、物理プロセッサ２０は、複数のプロセッサで構成してもよいし、複数の演算コアを備えたプロセッサで構成してもよい。また、「仮想化支援機能」は、ゲストの動作を開始する機能と、ゲストの動作を監視して特定のイベントが発生した場合にゲストの動作を中断してＶＭＭ（Virtual  Machine  Monitor）を呼ぶアシスト機能とを含んでよい。
【００２４】
物理計算機１０では、ホストＶＭＭ５０が実行される。ホストＶＭＭ５０は、複数の１段目ＶＭ（Virtual  Machine）１００、１１０）を稼動させるため、物理計算機１０の物理資源を仮想化した仮想資源に変換し、各１段目ＶＭへ仮想資源を割り当てる。ホストＶＭＭ５０は、仮想化機構の一例であり、例えばハイパバイザである。ホストＶＭＭ５０は、メモリ３０に読み込まれて物理プロセッサ２０で実行されるプログラムでよいが、ホストＶＭＭ５０の機能の一部又は全部がハードウェア回路で実現されてよい。なお、物理計算機１０の物理資源（例えば、物理プロセッサ２０、物理メモリ３０及び物理Ｉ／Ｏデバイス４０）に基づく仮想資源（例えば、仮想プロセッサ、仮想メモリ及び仮想Ｉ／Ｏデバイス）を各１段目ＶＭに割り当てる技術は既知であるため、ここでは詳述しない。また、１段目ＶＭの数は、図示の例では２であるが、１でも３以上でもよい。
【００２５】
１段目ＶＭでは、ゲストＯＳあるいはゲストＶＭＭが稼動する。ゲストＯＳが稼動する例として、１段目ＶＭ１１０上でゲストＯＳ１１１が稼動し、ゲストＯＳ１１１上で、ゲストＡＰＰ１１２及び１１３が実行される。ゲストＡＰＰは、それぞれ、ゲストＯＳ上で実行されるアプリケーションプログラムである。ゲストＶＭＭが稼動する例として、１段目ＶＭ１００上でゲストＶＭＭ１０１が稼動し、ゲストＶＭＭ１０１上で、複数の２段目ＶＭ１２０及びＶＭ１３０が実行される。２段目ＶＭ１２０（１３０）上では、ゲストＯＳ１２１（１３１）が稼働し、ゲストＯＳ１２１（１３１）上で、ゲストＡＰＰ１２２及び１２３（１３２及び１３３）が実行される。１段目ＶＭにおいて、ゲストＯＳの数とゲストＶＭＭの数は、それぞれ２以上でもよい。また、２段目ＶＭにおいて、ゲストＯＳの数は、２以上でもよい。また、２段目ＶＭにおいて、ゲストＡＰＰの数は、１でも３以上でもよい。
【００２６】
ホストＶＭＭ５０は、１段目ＶＭ１００及び１１０と、１段目ＶＭ１１０及び１１０のそれぞれに対応するホストＶＭＣＳ（Virtual  Machine  Control  Structure）１５０及び１５１とを作成及び管理することにより、１段目ＶＭ１００及び１１０を動作させる。１段目ＶＭ１００はゲストＶＭＭ１０１を稼動しているため、対応するホストＶＭＣＳ１５０は、ゲストＶＭＭ用ホストＶＭＣＳである。一方、１段目ＶＭ１１０はゲストＯＳ１１１を稼動しているため、対応するホストＶＭＣＳ１５１は、ゲストＯＳ用ホストＶＭＣＳである。また、ＶＭＣＳは、Ｉｎｔｅｌ社のプロセッサに関してのデータ構造であり、ＡＭＤ社のプロセッサであれば、ＶＭＣＳはＶＭＣＢ（Virtual  Machine  Control  Block）と呼ばれるデータ構造に相当するが、ＶＭＣＳ及びＶＭＣＢのような情報は、ＶＭの制御情報の一例である。
【００２７】
同様に、ゲストＶＭＭ１０１は、２段目ＶＭ１２０及び１３０と、２段目ＶＭ１２０及び１３０にそれぞれに対応したゲストＶＭＣＳ１７０及び１７１を作成及び管理することで、２段目ＶＭ１２０及び１３０を動作させる。ゲストＶＭＭ１０１は、例えば、仮想的なハイパバイザである。
【００２８】
ホストＶＭＭ５０は、物理プロセッサ２０について、ホストＶＭＭ５０の実行時間（性能情報）と各１段目ＶＭの実行時間を採取して、採取されたそれぞれの実行時間を性能管理テーブル１６０に記録する。性能管理テーブル１６０は、ホストＶＭＭ５０により採取された実行時間が記録されるテーブルである。性能管理テーブル１６０は、物理プロセッサ２０毎に存在してよい。
【００２９】
同様に、ゲストＶＭＭ１０１は、仮想プロセッサについて、ゲストＶＭＭ１０１の実行時間と各２段目ＶＭの実行時間を採取して、採取されたそれぞれの実行時間を性能管理テーブル１８０に記録する。性能管理テーブル１８０は、ゲストＶＭＭ１０１により採取された実行時間が記録されるテーブルである。性能管理テーブル１８０は、仮想プロセッサ毎に存在してよい。仮想プロセッサは、仮想資源に含まれる資源の１つであり、物理プロセッサ２０に基づく資源である。
【００３０】
物理プロセッサ２０、例えばホストＶＭＭ５０（及びゲストＶＭＭ１０１）が、管理計算機７０からのリクエストに応答して、テーブル１６０（及び１８０）が有する情報を管理計算機７０に出力してよい。
【００３１】
物理計算機１０は、Ｉ／Ｏデバイス４０によりネットワーク（例えばインターネット）６０を経由して管理計算機７０と接続している。管理計算機７０は、Ｉ／Ｏデバイス４０と通信するためのインタフェースデバイスであるＩ／Ｏデバイスと、メモリと、それらに接続されたプロセッサとを有した計算機でよい。管理計算機７０のプロセッサが、ホストＶＭＭ５０（及びゲストＶＭＭ１０１）から、性能管理テーブル１６０（及び１８０）が有する情報を周期的に取得して、取得した情報を基に性能管理テーブル８０を更新する。性能管理テーブル８０は、例えば、管理計算機７０のメモリに記憶される。管理計算機７０は、性能管理テーブル８０に基づく情報を表示してよい。具体的には、例えば、管理計算機７０は、表示デバイスを有していてよく、その表示デバイスに、性能管理テーブル８０に基づく情報を表示してよいし、或いは、表示デバイスを有する遠隔の計算機である表示用計算機に、性能管理テーブル８０に基づく情報を表示用の情報として送信してもよい。
【００３２】
図２は、性能管理テーブル１８０の一例を示す。
【００３３】
性能管理テーブル１８０は、ゲストＶＭＭ１０１と、ゲストＶＭＭ１０１により実行される２段目ＶＭ１２０及び２段目ＶＭ１３０とのそれぞれのプログラムについて、最終実行開始時刻２０１と、最終実行終了時刻２０２と、累計実行時間２０３とを有する。最終実行開始時刻２０１は、プログラムの最近の実行開始時刻を表す。最終実行終了時刻２０２は、プログラムの最近の実行終了時刻を表す。累計実行時間２０３は、プログラムの実行時間の累積値を表す。プログラムの最近の実行時間は、プログラムの最終実行終了時刻２０２と最終実行開始時刻２０１との差分である。
【００３４】
ゲストＶＭＭ１０１は、最初に全ての行の累計実行時間２０３を初期値で初期化する。ゲストＶＭＭ１０１は、ゲストＶＭＭ１０１、２段目ＶＭ１２０又は２段目ＶＭ１３０の実行を開始する時に、実行対象のプログラムに対応した最終実行開始時刻２０１を、その実行開始時の時刻に更新する。また、ゲストＶＭＭ１０１は、ゲストＶＭＭ１０１、２段目ＶＭ１２０又は２段目ＶＭ１３０の実行を終了する時に、最終実行終了時刻２０２を、その実行終了時の時刻に更新する。そして、ゲストＶＭＭ１０１は、最終実行終了時刻２０２と最終実行開始時刻２０１の差分を、実行終了対象のプログラムに対応した累計実行時間２０３に加算する。
【００３５】
図３は、性能管理テーブル１６０の比較例を示す。
【００３６】
図３に示すテーブルは、ホストＶＭＭが管理する従来型のテーブル（以下、従来テーブル）である。従来テーブルは、最終実行開始時刻と、最終実行終了時刻と、累計実行時間とを、ホストＶＭＭと、そのホストＶＭＭにより実行される１段目ＶＭとのそれぞれのプログラムについて有する（最終実行開始時刻、最終実行終了時刻及び累計実行時間の意味は、実質的に、前述した情報２０１〜２０３とそれぞれ同様である）。
【００３７】
しかし、従来テーブルによれば、ホストＶＭＭは、２段目ＶＭについて、最終実行開始時刻、最終実行終了時刻及び累計実行時間を管理しない。このため、従来テーブルからは、２段目ＶＭについての物理プロセッサ性能は全くわからない。
【００３８】
また、従来テーブルと図２に示した性能管理テーブル１８０との両方を使用したとしても、２段目ＶＭＭについての物理プロセッサ性能を推測することはできても、２段目ＶＭについての物理プロセッサ性能を正確に把握することはできない。
【００３９】
本実施例では、ホストＶＭＭが、ゲストＶＭＭの終了の契機に基づき２段目ＶＭの実行を開始できるようになっており、また、ホストＶＭＭが、ホストＶＭＭの開始及び終了のそれぞれについて１段目ＶＭと２段目ＶＭのどちらが原因であるかを判断し、その判断結果を基に、ホストＶＭＭが２段目ＶＭの実行時間を採取することができるようになっている。以下、そのことを詳細に説明する。なお、以下の説明では、ゲスト（ゲストＶＭＭや２段目ＶＭなどホストＶＭＭ５０上のプログラム）の実行開始コマンドの一例を「ＶＭＥＮＴＲＹ」と言い、特に、ホストＶＭＭによるＶＭＥＮＴＲＹを「物理ＶＭＥＮＴＲＹ」と言い、ゲストＶＭＭによるＶＭＥＮＴＲＹを「仮想ＶＭＥＮＴＲＹ」と言う。また、ゲストが終了することの一例を「ＶＭＥＸＩＴ」と言い、特に、ゲストの種類に関わらずホストＶＭＭの開始の契機となるＶＭＥＸＩＴを「物理ＶＭＥＸＩＴ」と言い、２段目ＶＭの終了を「仮想ＶＭＥＸＩＴ」と言う。
【００４０】
図４は、ホストＶＭＭ、ゲストＶＭＭ、２段目ＶＭの実行の一例を示すタイムチャートである。
【００４１】
時刻Ｔ１では、ホストＶＭＭ５０は、物理ＶＭＥＮＴＲＹにより、ゲストＶＭＭ１０１の実行を開始する。
【００４２】
時刻Ｔ２では、ゲストＶＭＭ１０１が２段目ＶＭ（例えば１２０）を実行するために仮想ＶＭＥＮＴＲＹを行い、その仮想ＶＭＥＮＴＲＹを契機として、物理ＶＭＥＸＩＴが発生する。それにより、ゲストＶＭＭ１０１の実行が終了し、ホストＶＭＭ５０の実行が開始する。
【００４３】
時刻Ｔ３では、ホストＶＭＭ５０は、仮想ＶＭＥＮＴＲＹを処理するために、物理ＶＭＥＮＴＲＹにより、２段目ＶＭの実行を開始する。ここで開始される２段目ＶＭは、仮想ＶＭＥＮＴＲＹで実行開始された２段目ＶＭ（例えば１２０）である。具体的には、ゲストＶＭＭ１０１は、ゲストＶＭＣＳを記憶領域（例えばワーク領域）にコピーしそのコピーされたゲストＶＭＣＳを使用して仮想ＶＭＥＮＴＲＹを行うようになっている。そして、ゲストＶＭＣＳのコピー先の記憶領域を、ホストＶＭＭ５０も参照可能である。ホストＶＭＭ５０は、仮想ＶＥＮＴＲＹを処理する場合、その記憶領域にあるゲストＶＭＣＳを使用した物理ＶＥＮＴＲＹを行う。その結果として、そのゲストＶＭＣＳ（例えば１７０）に対応した２段目ＶＭ（例えば１２０）の実行が開始される。ホストＶＭＭ５０は、どのゲストＶＭＣＳがどの２段目ＶＭに対応しているか等を把握していないので、ホストＶＭＭ５０にとっては、時刻Ｔ３での物理ＶＭＥＮＴＲＹの実行対象がどの２段目ＶＭかはわからない。以下、その物理ＶＭＥＮＴＲＹで実行される２段目ＶＭは２段目ＶＭ１２０であるとする。
【００４４】
時刻Ｔ４では、２段目ＶＭ１２０の実行を中断する要因である仮想ＶＭＥＸＩＴを契機として物理ＶＭＥＸＩＴが発生し、それにより、２段目ＶＭ１２０の実行が終了し、ホストＶＭＭ５０の実行が開始する。具体的には、ゲストＶＭＣＳ１７０に、２段目ＶＭ１２０が仮想ＶＭＥＸＩＴとなる要因（例えば、割り込みの発生）が定義されており、その要因が検出された場合に、物理プロセッサ２０により２段目ＶＭ１２０の仮想ＶＭＥＸＩＴとなる。
【００４５】
時刻Ｔ５では、ホストＶＭＭ５０は、仮想ＶＭＥＸＩＴに対応した処理をゲストＶＭＭ１０１にさせるために、物理ＶＭＥＮＴＲＹによりゲストＶＭＭ１０１の実行を開始する。
【００４６】
時刻Ｔ３と時刻Ｔ２の差分と、時刻Ｔ５と時刻Ｔ４の差分が、それぞれ、ホストＶＭＭ５０の実行時間である。時刻Ｔ２と時刻Ｔ１の差分が、ゲストＶＭＭ１０１の実行時間である。時刻Ｔ４と時刻Ｔ３の差分が、２段目ＶＭ１２０の実行時間であり、ホストＶＭＭ５０により採取される実行時間である。ゲストＶＭＭ１０１により採取される、２段目ＶＭ１２０の実行時間は、時刻Ｔ５と時刻Ｔ２の差分である。
【００４７】
図５は、物理ＶＥＮＴＲＹ処理（１段目ＶＭ１００と２段目ＶＭ１２０又は１３０を実行するための物理ＶＭＥＮＴＲＹ実行でのテーブル１６０の更新処理）のフローチャート、図６は、物理ＶＭＥＸＩＴ処理（物理ＶＭＥＸＩＴ契機でのテーブル１６０の更新処理）のフローチャート、図７は、性能管理テーブル１６０の一例を示す。以下、ホストＶＭＭ５０、ゲストＶＭＭ１０１、ゲストＶＭＭ１０１上で動作する２段目ＶＭ（２段目ＶＭ１２０および２段目ＶＭ１３０）の実行の例として説明する。
【００４８】
まず、図７を参照し、性能管理テーブル１６０を説明する。
【００４９】
性能管理テーブル１６０は、最終実行開始時刻４０１と、最終実行終了時刻４０２と、累計実行時間４０３とを、ホストＶＭＭ及び１段目ＶＭの他に、ゲストＶＭＭ及び２段目ＶＭについても有する（最終実行開始時刻４０１、最終実行終了時刻４０２及び累計実行時間４０３の意味は、実質的に、前述した情報２０１〜２０３とそれぞれ同様である）。なお、前述したように、ホストＶＭＭ５０は、どの２段目ＶＭが物理ＶＭＥＮＴＲＹ及び物理ＶＭＥＸＩＴの対象かはわからないので、２段目ＶＭについては、２段目ＶＭの数に関わらず行が共通している。ホストＶＭＭ５０は、最初に全ての行の累計実行時間４０３を初期値で初期化する。
【００５０】
次に図５を参照し、物理ＶＥＮＴＲＹ処理を説明する。
【００５１】
ステップＳ１１００では、ホストＶＭＭ５０は、物理ＶＭＥＮＴＲＹ実行の直前に現在時刻（タイマから取得される時刻）を取得する。ステップＳ１１０１では、ホストＶＭＭ５０は、ホストＶＭＭ５０の最終実行終了時刻４０２を、ステップＳ１１００で取得した時刻に更新する。ステップＳ１１０２では、ホストＶＭＭ５０は、ホストＶＭＭ５０の最終実行終了時刻４０２とホストＶＭＭ５０の最終実行開始時刻４０１の差分をホストＶＭＭ５０の累計実行時間４０３に加算する。ステップＳ１１０３では、ホストＶＭＭ５０は、物理ＶＭＥＮＴＲＹの実行契機が仮想ＶＭＥＮＴＲＹであるかどうかを判断することにより、２段目ＶＭの実行（仮想ＶＭＥＮＴＲＹである）かゲストＶＭＭを含む１段目ＶＭの実行かを判断する。
【００５２】
ステップＳ１１０３で１段目ＶＭと判断した場合、ステップＳ１１０４で、ホストＶＭＭ５０は、対象１段目ＶＭの最終実行開始時刻４０１（今回の例では、ゲストＶＭＭ１０１の最終実行開始時刻４０１）を、ステップＳ１１００で取得した時刻に更新する。
【００５３】
ステップＳ１１０３で１段目ＶＭでないと判断した場合、ステップＳ１１０６で、ホストＶＭＭ５０は、対象１段目ＶＭ（今回の例では、ゲストＶＭＭ１０１）上で動作する２段目ＶＭ（今回の例では、２段目ＶＭ１２０および２段目ＶＭ１３０）に対応した最終実行開始時刻４０１を、ステップＳ１１００で取得した時刻に更新する。
【００５４】
ホストＶＭＭ５０は、ステップＳ１１０５で（ステップＳ１１０４またはステップＳ１１０６を実行後に）、物理ＶＭＥＮＴＲＹを実行する。
【００５５】
次に図６を参照し、物理ＶＭＥＸＩＴ処理を説明する。
【００５６】
ステップＳ１２００で、ホストＶＭＭ５０は、物理ＶＭＥＸＩＴの検出を契機として処理を開始して、ステップＳ１２０１で、現在時刻を取得する。ステップＳ１２０２では、ホストＶＭＭ５０は、ホストＶＭＭ５０の最終実行開始時刻４０１を、ステップＳ１２０１で取得した時刻に更新する。ステップＳ１２０３では、ホストＶＭＭ５０は、ホストＶＭＭ５０の前回の物理ＶＭＥＮＴＲＹの実行でステップＳ１１０４とステップＳ１１０６のどちらを通過したのかにより、１段目ＶＭを実行していたのか、２段目ＶＭを実行していたのかを判断する。
【００５７】
ステップＳ１２０３で１段目ＶＭと判断した場合、ホストＶＭＭ５０は、ステップＳ１２０４で、対象１段目ＶＭの最終実行終了時刻４０２（今回の例では、ゲストＶＭＭ１０１の最終実行終了時刻４０２）を、ステップＳ１２０１で取得した時刻に更新する。そして、ステップＳ１２０５で、ホストＶＭＭ５０は、対象１段目ＶＭの累計実行時間４０３（今回の例では、ゲストＶＭＭ１０１の累計実行時間４０３）に、ゲストＶＭＭ１０１の最終実行終了時刻４０２とゲストＶＭＭ１０１の最終実行開始時刻４０１の差分を加算する。
【００５８】
ステップＳ１２０３で１段目ＶＭでないと判断した場合、ホストＶＭＭ５０は、ステップＳ１２０６で、対象２段目ＶＭの最終実行終了時刻４０２（今回の例では、２段目ＶＭ１２０および２段目ＶＭ１３０の最終実行終了時刻４０２）を、ステップＳ１２０１で取得した時刻に更新する。そして、ホストＶＭＭ５０は、ステップＳ１２０７で、対象２段目ＶＭの累計実行時間４０３（今回の例では、２段目ＶＭ１２０および２段目ＶＭ１３０の累計実行時間４０３）に、２段目ＶＭ１２０および２段目ＶＭ１３０の最終実行終了時刻４０２と２段目ＶＭ１２０および２段目ＶＭ１３０の最終実行開始時刻４０１の差分を加算する。
【００５９】
上記図５および図６のフローにより、ホストＶＭＭ５０の累計実行時間４０３、ゲストＶＭＭ１０１の累計実行時間４０３、２段目ＶＭ１２０および２段目ＶＭ１３０の累計実行時間４０３、１段目ＶＭ１１０の累計実行時間４０３がそれぞれ算出及び更新される。
【００６０】
図８は、管理計算機７０が有する性能管理テーブル８０の一例を示す。
【００６１】
性能管理テーブル８０は、ホストＶＭＭ、１段目ＶＭ、ゲストＶＭＭ及び２段目ＶＭの各々のプログラムについて、前回取得累計実行時間５０１、今回取得累計実行時間５０２及び実行時間／取得周期時間５０３を有する。今回取得累計実行時間５０２は、管理計算機７０が、ホストＶＭＭ５０が有する性能管理テーブル１６０から、今回取得した累計実行時間４０３の時間であり、前回取得累計実行時間５０１は、管理計算機７０が、ホストＶＭＭ５０が有する性能管理テーブル１６０から、前回取得した累計実行時間４０３の時間である。実行時間／取得周期時間５０３は、今回取得累計実行時間５０２と前回取得累計実行時間５０１との差分を取得周期時間（例えばポーリング間隔）で割った値である。
【００６２】
管理計算機７０は、最初に全ての行の今回取得累計実行時間５０２を初期値で初期化する。管理計算機７０は、周期的に、ホストＶＭＭ５０が有する性能管理テーブル１６０から、各プログラム（ホストＶＭＭ、１段目ＶＭ、ゲストＶＭＭ及び２段目ＶＭの各々）について、累計実行時間４０３を取得し、前回取得累計実行時間５０１を今回取得累計実行時間５０２（前回取得した累計実行時間４０３の時間）に更新する。そして、今回取得累計実行時間５０２を今回取得した累計実行時間４０３に更新し、時間５０１と５０２の差分を取得周期時間で割ることにより得られた値を実行時間／取得周期時間５０３として登録する。図８の例では、取得周期時間を１秒としている。実行時間／取得周期時間５０３により、ホストＶＭＭ５０と各ＶＭ（ゲストＶＭＭ１０１、２段目ＶＭ（２段目ＶＭ１２０および２段目ＶＭ１３０）、１段目ＶＭ１１０）のプロセッサ使用率が分かる。実行時間／取得周期時間５０３は、ホストＶＭＭ５０（またはゲストＶＭＭ１０１）で算出されてもよく、その場合、性能管理テーブル１６０（または性能管理テーブル１８０）に実行時間／取得周期時間５０３が格納されてよい。また、実行時間／取得周期時間５０３が算出された後、前回取得累計実行時間５０１が今回取得累計実行時間５０２の値に更新されてよい。
【００６３】
管理計算機７０は、少なくとも２段目ＶＭ（２段目ＶＭ１２０および２段目ＶＭ１３０）について、取得時刻毎にプロセッサ使用率（実行時間／取得周期時間５０３）を保持し、取得時刻と実行時間／取得周期時間５０３との関係（例えばその関係を表すグラフ）を表示したり、プロセッサ使用率の変化に基づく制御コマンドを物理計算機１０（例えばホストＶＭＭ５０）に送信したりしてよい。ユーザは、少なくとも２段目ＶＭ（２段目ＶＭ１２０および２段目ＶＭ１３０）について、取得時刻とプロセッサ使用率（実行時間／取得周期時間５０３）との関係を見て、管理計算機７０を通じて物理計算機１０を制御してよい。例えば、或る時間帯に複数のプログラムのプロセッサ使用率の上昇が集中しているようであれば（物理プロセッサ２０全体としてのプロセッサ使用率が所定値を超えていれば）、２段目ＶＭの実行開始、或いは１段目ＶＭの実行開始をずらす等の制御をとることができる。どのような制御をするかは、ユーザの判断を基に行われてもよいし、管理計算機７０又は物理計算機１０の判断を基に行われてもよい。
【００６４】
以上が、実施例１の説明である。なお、実施例１において、管理計算機７０又はホストＶＭＭは、２段目ＶＭ（２段目ＶＭ１２０および２段目ＶＭ１３０）についての値（例えば値５０３又は４０３）を、性能管理テーブル１８０における２段目ＶＭ毎の値２０３を基に、２段目ＶＭ毎の値に分けてもよい。例えば、２段目ＶＭ１２０の累計実行時間２０３が「１００」（例えば秒）であり、２段目ＶＭ１３０の累計実行時間２０３が「２００」であるとする。２段目ＶＭ（２段目ＶＭ１２０および２段目ＶＭ１３０）の実行時間／取得周期時間５０３が「０．３」の場合、管理計算機７０は、「０．３」と、２段目ＶＭの累計実行時間２０３の合計に対する２段目ＶＭ１２０の累計実行時間２０３の割合「１／３（＝１００／（１００＋２００））」とを乗じることで、２段目ＶＭ１２０の実行時間／取得周期時間５０３を「０．１」と算出することができる。同様に、例えば、２段目ＶＭ（２段目ＶＭ１２０および２段目ＶＭ１３０）の累計実行時間４０３が「１２０」（例えば秒）の場合、ホストＶＭＭ５０は、「１２０」と、上記割合「１／３」とを乗じることで、２段目ＶＭ１２０の累計実行時間４０３を「４０」と算出することができる。
【実施例２】
【００６５】
本実施例では、性能管理テーブル１６０に代えて、後に説明する性能管理テーブル１６０´（図１１参照）が使用される。つまり、２段目ＶＭ毎に行（レコード）が設けられている。本実施例では、ホストＶＭＭ５０は、２段目ＶＭ毎に累計実行時間４０３を算出することができる。以下、図面に基づいて実施例１との違いを主に説明し、実施例１との共通点については説明を省略又は簡略する。
【００６６】
本実施例は、ホストＶＭＭ５０とゲストＶＭＭ１０１が互いに連携することにより、ホストＶＭＭ５０が２段目ＶＭを一意に識別する。具体的には、ゲストＶＭＭ１０１が、２段目ＶＭ（２段目ＶＭ１２０又は１３０）の仮想ＶＭＥＮＴＲＹ実行時に、実行対象の２段目ＶＭに対応するゲストＶＭＣＳを明示的に分けることで、ホストＶＭＭ５０は、２段目ＶＭ１２０と２段目ＶＭ１３０を識別可能となる。ゲストＶＭＭ１０１が、ゲストＶＭＣＳを明示的に分ける方法として、２段目ＶＭ毎に固定的にゲストＶＭＣＳアドレス（ゲストＶＭＣＳの記憶領域のアドレス）を用意しておく第１方法と、各ゲストＶＭＣＳ内に各２段目ＶＭの識別子を登録しておく第２方法の２つが考えられる。第１方法であれば、例えば、第１のアドレスに属する記憶領域には、２段目ＶＭ１２０に対応したゲストＶＭＣＳ１７０がコピーされるようになっており、第２のアドレスに属する記憶領域には、２段目ＶＭ１３０に対応したゲストＶＭＣＳ１７１がコピーされるようになっている。従って、ホストＶＭＭ５０は、ゲストＶＭＣＳがコピーされている記憶領域を特定し、特定された記憶領域内のゲストＶＭＣＳを使用して物理ＶＭＥＮＴＲＹを実行できる。第２方法であれば、ホストＶＭＭ５０は、記憶領域にコピーされたゲストＶＭＣＳを参照し、そのゲストＶＭＣＳに記録されている識別子を使用して物理ＶＭＥＮＴＲＹを実行することができる。
【００６７】
図９は、実施例２に係る物理ＶＭＥＮＴＲＹ処理のフローチャートであり、図１０は、実施例２に係る物理ＶＭＥＸＩＴ処理のフローチャートであり、図１１は、性能管理テーブル１６０´の一例を示す。
【００６８】
図５と図９の違いは、図５のステップＳ１１０６が、図９ではステップＳ１１１０とステップＳ１１１１に変わっていることである。ステップＳ１１１０では、ホストＶＭＭ５０は、ゲストＶＭＣＳから２段目ＶＭ１２０の物理ＶＭＥＮＴＲＹ実行なのか２段目ＶＭ１３０の物理ＶＭＥＮＴＲＹ実行かを判断し、判断された２段目ＶＭの識別子（今回の例では、２段目ＶＭ１２０を示す識別子）をメモリ３０に記録しておく。ステップＳ１１１１では、ホストＶＭＭ５０は、ステップＳ１１１０で記録した識別子から識別される２段目ＶＭ（今回の例では、２段目ＶＭ１２０）に対応した最終実行開始時刻４０１を、ステップＳ１１００で取得した時刻に更新する。
【００６９】
図６と図１０の違いは、図６のステップＳ１２０６とステップＳ１２０７が、図１０ではステップＳ１２１０からステップＳ１２１２に変わっていることである。ステップＳ１２１０では、ホストＶＭＭ５０は、図９のステップＳ１１１０で記録した２段目ＶＭの識別子（今回の例では、２段目ＶＭ１２０を示す識別子）を取得する。ステップＳ１２１１では、ホストＶＭＭ５０は、ステップＳ１２１０で取得した識別子から識別される２段目ＶＭ１２０に対応した最終実行終了時刻４０２を、ステップ１２０１で取得した時刻に更新する。そして、ホストＶＭＭ５０は、ステップＳ１２１２で、ステップＳ１２１０で取得した識別子から識別される２段目ＶＭ１２０について、２段目ＶＭ１２０の累計実行時間４０３に２段目ＶＭ１２０の最終実行終了時刻４０２と２段目ＶＭ１２０の最終実行開始時刻４０１の差分を加算する。
【００７０】
図９と図１０のフローにより、図１１に示すように、各２段目ＶＭに対応した累計実行時間６０３が求まる。本実施例によれば、２段目ＶＭ毎に物理プロセッサ性能を正確に把握することが期待できる。
【００７１】
以上、幾つかの実施例を説明したが、本発明は、これらの実施例に限定されるものでなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。例えば、管理計算機７０は、非周期的に、テーブル１６０（及び１８０）が有する情報を取得してよい。また、管理計算機７０の機能は、物理計算機１０（例えば物理プロセッサ２０）がもっていてもよく、管理計算機７０は必ずしも存在しないでよい。また、物理プロセッサ２０（例えばホストＶＭＭ５０）が、物理メモリ３０に、複数の時点（時刻）とテーブル１６０（１６０´）の各行の累計実行時間４０３との関係を格納してよい。また、物理プロセッサ２０（例えばホストＶＭＭ５０）が、少なくとも２段目ＶＭ（１２０及び１３０、又は、１２０と１３０の各々）について、複数の時点と累計実行時間４０３との関係、又は、複数の時点とプロセッサ使用率（実行時間／取得周期時間５０３）との関係を出力（例えば、表示、或いは管理計算機７０に送信）してもよい。
【符号の説明】
【００７２】
１０：物理計算機、２０：プロセッサ、３０：メモリ、４０：Ｉ／Ｏデバイス、５０：ホストＶＭＭ、６０：ネットワーク、７０：管理計算機、８０：性能管理テーブル、１００：１段目ＶＭ、１０１：ゲストＶＭＭ、１１０：１段目ＶＭ、１１１：ゲストＯＳ、１２０：２段目ＶＭ、１２１：ゲストＯＳ、１２２：ゲストＡＰＰ、１２３：ゲストＡＰＰ、１３０：２段目ＶＭ、１３１：ゲストＯＳ、１３２：ゲストＡＰＰ、１３３：ゲストＡＰＰ、１５０：ホストＶＭＣＳ、１５１：ホストＶＭＣＳ、１６０：性能管理テーブル、１７０：ゲストＶＭＣＳ、１７１：ゲストＶＭＣＳ、１８０：性能管理テーブル
【図１】
0005905412.tif 000002
【図２】
0005905412.tif 000003
【図３】
0005905412.tif 000004
【図４】
0005905412.tif 000005
【図５】
0005905412.tif 000006
【図６】
0005905412.tif 000007
【図７】
0005905412.tif 000008
【図８】
0005905412.tif 000009
【図９】
0005905412.tif 000010
【図１０】
0005905412.tif 000011
【図１１】
0005905412.tif 000012