(57)【要約】【課題】  改善されたトレーサ・ノードが取得するトレース・データから特定の仮想マシンに関連するトレース・データを特定するためのコンピュータ実装方法を提供する。【解決手段】  方法は、１以上の処理ノードおよびメモリ装置へのアクセスのトレースを取得するトレーサ・ノードを含むコンピューティング環境において実行される。方法は、トレーサ・ノードのメモリ装置へのアクセスのトレースの情報を含むトレース・データの記録を開始するステップと、ある処理ノードからトレーサ・ノードへ特定の仮想マシンがマイグレーションされたことに応じて、特定の仮想マシンに割り当てられたトレーサ・ノードのメモリ装置の物理アドレスを特定する情報を記憶するステップと、割り当てられたトレーサ・ノードのメモリ装置の物理アドレスを用いて、トレース・データから特定の仮想マシンに関連するトレース・データを特定するステップを含む。【選択図】  図５
2014197295.tif 000002
【特許請求の範囲】
【請求項１】
１以上の処理ノードおよびメモリ装置へのアクセスのトレースを取得するトレーサ・ノードを含むコンピューティング環境において、前記トレーサ・ノードが取得するトレース・データから特定の仮想マシンに関連するトレース・データを特定するためのコンピュータ実装方法であって、
前記トレーサ・ノードのメモリ装置へのアクセスのトレースの情報を含むトレース・データの記録を開始するステップと、
ある処理ノードから前記トレーサ・ノードへ特定の仮想マシンがマイグレーションされたことに応じて、前記特定の仮想マシンに割り当てられた前記トレーサ・ノードのメモリ装置の物理アドレスを特定する情報を記憶するステップと、
前記割り当てられたトレーサ・ノードのメモリ装置の物理アドレスを用いて、前記トレース・データから前記特定の仮想マシンに関連するトレース・データを特定するステップと、
を含む、方法。
【請求項２】
前記１以上の処理ノードおよびトレーサ・ノードは、１以上の仮想マシンを管理することができるハイパーバイザをそれぞれ備える、請求項１に記載の方法。
【請求項３】
前記仮想マシンが、ゲスト仮想アドレスとゲスト物理アドレスの間の第１のアドレス変換を実行する、請求項２に記載の方法。
【請求項４】
前記トレーサ・ノードのメモリ装置の物理アドレスを特定する情報がホスト物理アドレスであり、
前記ハイパーバイザが、ホスト仮想アドレスとホスト物理アドレスとの間の第２のアドレス変換を実行する、請求項３に記載の方法。
【請求項５】
前記ホスト仮想アドレスと前記ゲスト物理アドレスが等価なものである、請求項４に記載の方法。
【請求項６】
前記記憶するステップが、前記第２の変換に伴って発生するページ・フォルトに応じて前記特定の仮想マシンに割り当てられたホスト物理アドレスを記憶するステップを含む、請求項５に記載の方法。
【請求項７】
前記マイグレーションに応じて、メモリコピーを開始するステップをさらに含み、
前記メモリコピーによって前記特定の仮想マシンが使用するホスト仮想アドレスすべてについて、前記第２の変換に伴うページ・フォルトが発生する、請求項６に記載の方法。
【請求項８】
前記ハイパーバイザが、メモリコピーを制御し、メモリコピーの開始と終了を特定することができる、請求項６に記載の方法。
【請求項９】
前記トレース・データが、それぞれのメモリ装置へのアクセスに関連付けられたアクセス時刻を含み、
前記記憶するステップが、前記ホスト仮想アドレスおよび前記ホスト物理アドレスの対応および前記第２の変換に伴うページ・フォルトの発生時刻を、ページフォルト・ログに記憶するステップを含み、
前記特定するステップが、前記トレース・データ内のメモリ・アクセスについて、前記ページフォルト・ログを参照して、そのアクセス時刻に前記特定の仮想マシンに割り当てられていたホスト仮想アドレスの情報を付加するステップを含む、
請求項６に記載の方法。
【請求項１０】
前記特定するステップにおいて、前記付加されたホスト仮想アドレスの情報に基づいて、トレース・データから前記特定の仮想マシンに関連するトレース・データを特定する、請求項９に記載の方法。
【請求項１１】
前記特定の仮想マシン上で稼動するアプリケーション・プログラムをトレース対象として特定するステップと、
前記記憶するステップが、前記第１の変換に伴って発生するページ・フォルトに応じて前記トレース対象として特定されたアプリケーション・プログラムに割り当てられたゲスト物理アドレスを記憶するステップを含む、請求項１０に記載の方法。
【請求項１２】
前記記憶するステップが、前記ホスト仮想アドレスおよび前記ホスト物理アドレスの対応および前記第１の変換に伴うページ・フォルトの発生時刻を、ページフォルト・ログに記憶するステップを含み、
前記特定するステップが、前記トレース・データ内のメモリ・アクセスに、前記ページフォルト・ログを参照して、そのアクセス時刻に前記トレース対象として特定されたアプリケーション・プログラムに割り当てられていたゲスト仮想アドレスの情報を付加するステップを含む、
請求項１１に記載の方法。
【請求項１３】
前記特定するステップにおいて、前記付加されたゲスト仮想アドレスの情報に基づいて、トレース・データから前記トレース対象として特定されたアプリケーション・プログラムに関連するトレース・データを特定する、請求項１２に記載の方法。
【請求項１４】
請求項１乃至１３のいずれかに記載の方法に含まれる各ステップをコンピュータに実行させる、プログラム。
【請求項１５】
請求項１乃至１３のいずれかに記載の方法に含まれる各ステップを実行する手段を備える、トレーサ・ノード。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般的には、メモリ管理に関し、より特定的には、コンピュータのメモリ装置へのアクセス履歴であるトレース・データから特定の仮想マシンに関連するものを特定するための方法、プログラム、トレーサ・ノードに関する。
【背景技術】
【０００２】
コンピュータのメモリ装置へのアクセスのトレースを取得することができるトレーサが存在する。トレーサは、例えば、特殊なモニターハードウェアを用いることによって実現することができる。かかるトレーサによって得られたトレース・データを様々な目的で用いることができる。例えば、様々なワークロードのメモリアクセスパターンを解析することによって、メモリ・アクセスの高速化、並列化、低消費電力化などを達成する改善されたメモリコントローラを設計することができる。また、フラッシュメモリ、ＭＲＡＭ、ＰＣＭなどの新しいメモリ技術を用いたサーバ上で稼動するソフトウェア、様々なワークロードにおけるメモリ使用の状況を解析することで、かかるサーバおよびソフトウェアにおけるメモリデバイスの選択、アーキテクチャの決定の指針、ヒントを得ることができる。そのようなメモリ装置へのアクセスのトレース技術に関連して、背景技術として以下の特許文献が存在する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−２０４９３４号公報
【特許文献２】特開平５−１４３３９１号公報
【特許文献３】特開平５−０３５５４８号公報
【特許文献４】特開平５−１００９０３号公報
【特許文献５】特開平５−３１３９４７号公報
【特許文献６】特開２００９−１７６２９７号公報
【特許文献７】特開２０１１−０２８５４７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
近年普及したクラウド・コンピューティングの一形態として、ＩａａＳ（Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ−ａｓ−ａ−Ｓｅｒｖｉｃｅ）が存在する。一般に、ＩａａＳ環境では、多数の物理的なサーバそれぞれにおいて、仮想マシン（ＶＭ：Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ）が稼動しており、各アプリケーション・プログラムがＶＭ上で実行される。ユーザは、自分に割り当てられたＶＭをネットワークを介して利用する。ＩａａＳ環境で特定のＶＭおよび／またはアプリケーション・プログラムについてメモリ装置へのアクセスのトレースを実現するためには、それぞれの処理サーバに特殊なモニターハードウェアを備え付け、ＶＭおよびアプリケーションをトレーサ・ノードに導入し、トレースのための設定を行う、などの追加コストが必要だった。
【０００５】
したがって、本発明の目的の１つは、比較的低いコストで実現可能な、ＩａａＳ環境において、前記トレーサ・ノードが取得するトレース・データから特定の仮想マシンに関連するトレース・データを特定するための改善されたコンピュータ実装方法、プログラム、および、トレーサ・ノードを提供することである。
【課題を解決するための手段】
【０００６】
上記の目的を達成するために、１以上の処理ノードおよびメモリ装置へのアクセスのトレースを取得するトレーサ・ノードを含むコンピューティング環境において、トレーサ・ノードが取得するトレース・データから特定の仮想マシンに関連するトレース・データを特定するためのコンピュータ実装方法が提供される。方法は、トレーサ・ノードのメモリ装置へのアクセスのトレースの情報を含むトレース・データの記録を開始するステップと、ある処理ノードからトレーサ・ノードへ特定の仮想マシンがマイグレーションされたことに応じて、特定の仮想マシンに割り当てられたトレーサ・ノードのメモリ装置の物理アドレスを特定する情報を記憶するステップと、割り当てられたトレーサ・ノードのメモリ装置の物理アドレスを用いて、トレース・データから特定の仮想マシンに関連するトレース・データを特定するステップを含む。
【０００７】
好ましくは、１以上の処理ノードおよびトレーサ・ノードは、１以上の仮想マシンを管理することができるハイパーバイザをそれぞれ備える。さらに好ましくは、仮想マシンが、ゲスト仮想アドレスとゲスト物理アドレスの間の第１のアドレス変換を実行する。さらに好ましくは、トレーサ・ノードのメモリ装置の物理アドレスを特定する情報がホスト物理アドレスであり、ハイパーバイザが、ホスト仮想アドレスとホスト物理アドレスとの間の第２のアドレス変換を実行する。さらに好ましくは、ホスト仮想アドレスとゲスト物理アドレスが等価なものである。記憶するステップが、第２の変換に伴って発生するページ・フォルトに応じて特定の仮想マシンに割り当てられたホスト物理アドレスを記憶するステップを含むようにすることができる。
【０００８】
好ましくは、記憶するステップが、第２の変換に伴って発生するページ・フォルトに応じて特定の仮想マシンに割り当てられたホスト物理アドレスを記憶するステップを含む。さらに好ましくは、マイグレーションに応じて、メモリコピーを開始するステップをさらに含み、メモリコピーによって特定の仮想マシンが使用するホスト仮想アドレスすべてについて、第２の変換に伴うページ・フォルトが発生する。
【０００９】
好ましくは、トレース・データが、それぞれのメモリ装置へのアクセスに関連付けられたアクセス時刻を含み、記憶するステップが、ホスト仮想アドレスおよびホスト物理アドレスの対応および第２の変換に伴うページ・フォルトの発生時刻を、ページフォルト・ログに記憶するステップを含み、特定するステップが、トレース・データ内のメモリ・アクセスについて、ページフォルト・ログを参照して、そのアクセス時刻に特定の仮想マシンに割り当てられていたホスト仮想アドレスの情報を付加するステップを含む。さらに好ましくは、特定するステップにおいて、付加されたホスト仮想アドレスの情報に基づいて、トレース・データから特定の仮想マシンに関連するトレース・データを特定する。
【００１０】
好ましくは、特定の仮想マシン上で稼動するアプリケーション・プログラムをトレース対象として特定するステップと、記憶するステップが、第１の変換に伴って発生するページ・フォルトに応じてトレース対象として特定されたアプリケーション・プログラムに割り当てられたゲスト物理アドレスを記憶するステップを含む。
【００１１】
好ましくは、記憶するステップが、ホスト仮想アドレスおよびホスト物理アドレスの対応および第１の変換に伴うページ・フォルトの発生時刻を、ページフォルト・ログに記憶するステップを含み、特定するステップが、トレース・データ内のメモリ・アクセスに、ページフォルト・ログを参照して、そのアクセス時刻にトレース対象として特定されたアプリケーション・プログラムに割り当てられていたゲスト仮想アドレスの情報を付加するステップを含む。さらに好ましくは、特定するステップにおいて、付加されたゲスト仮想アドレスの情報に基づいて、トレース・データからトレース対象として特定されたアプリケーション・プログラムに関連するトレース・データを特定する。
【００１２】
以上、特定の仮想マシンに関連するトレース・データを得るためのコンピュータ実装方法として本発明の概要を説明したが、本発明は、プログラム、プログラム製品、ソフトウェア、ソフトウェア製品、トレーサ・ノード、システム、装置などとして把握することもできる。
【００１３】
プログラム製品ないしソフトウェア製品は、例えば、前述のプログラム、ソフトウェアを格納した記憶媒体を含め、あるいはプログラム、ソフトウェアを伝送する媒体を含めることができる。プログラムは、コンピュータに前述の方法の各ステップを実行させることができる。
【００１４】
上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではなく、これらの構成要素のコンビネーションまたはサブコンビネーションもまた、発明となり得ることに留意すべきである。
【図面の簡単な説明】
【００１５】
【図１】本発明の実施形態におけるＩａａＳ環境の概要を説明するための全体図である。
【図２】本発明の実施形態におけるＩａａＳ環境に含まれる処理サーバを実現するため使用可能なコンピュータ装置のハードウェア構成図である。
【図３】本発明の実施形態におけるＩａａＳ環境に含まれるトレーサ・ノードを実現するため使用可能なコンピュータ装置のハードウェア構成図である。
【図４】本発明の実施形態におけるＩａａＳ環境の処理ノードまたはトレーサ・ノードの階層構造の一例を説明するための図である。
【図５】本発明の実施形態のＩａａＳ環境のトレーサ・ノードにおけるアドレス変換およびメモリ・アクセスのトレースの取得を説明するための図である。
【図６】本発明の実施形態のＩａａＳ環境における特定のＶＭおよび／または特定のアプリケーション・プログラムのトレース処理の動作を表現する第１のフローチャートである。
【図７】本発明の実施形態のＩａａＳ環境における特定のＶＭおよび／または特定のアプリケーション・プログラムのトレース処理の動作を表現する第２のフローチャートである。
【図８】本発明の実施形態のＩａａＳ環境におけるＶＭレベルのページフォルト・ログの一例を表現する概略図である。
【図９】本発明の実施形態のＩａａＳ環境におけるＶＭＭレベルのページフォルト・ログの一例を表現する概略図である。
【図１０】本発明の実施形態のＩａａＳ環境におけるＧＰＡ、ＧＰＡ／ＨＶＡが付加されたトレース・データの一例を表現する概略図である。
【発明を実施するための形態】
【００１６】
以下、本発明を実施するための形態を図面に基づいて詳細に説明するが、以下の実施形態は特許請求の範囲に記載された発明を限定するものではなく、また実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らないことに留意すべきである。
【００１７】
また、本発明は多くの異なる態様で実施することが可能であり、実施の形態の記載内容に限定して解釈されるべきものではない。実施の形態の説明の全体を通じて同じ要素には、原則として同じ番号を付している。
【００１８】
本発明の実施形態のシナリオでは、それぞれにおいて仮想マシン（ＶＭ：Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ）が稼動する多数のノードを含むＩａａＳ環境において、特定のＶＭおよび／またはＶＭ上で稼動する特定のアプリケーション・プログラムのメモリ装置へのアクセスのトレースの情報を含むデータ（本明細書において「トレース・データ」と称することがある）が特定される。なお、本発明の実施形態において、メモリ装置への「アクセス」には、ＲＥＡＤ（読み出し）、ＷＲＩＴＥ（書き込み）を含むメモリに対する操作すべてを含むことに留意されたい。
【００１９】
本発明の実施形態のＩａａＳ環境の各ノードは、それぞれＣＰＵとメモリ装置を含むハードウェア上で仮想マシン・マネージャ（ＶＭＭ：Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ  Ｍａｎａｇｅｒ）が稼動している。一般に、ＶＭＭは、システム・リソースをＶＭとして仮想化し、管理することができるソフトウェアまたはファームウェアである。ＶＭＭは、ハイパーバイザと称することがある。また、ＶＭはＶＭＭの存在を前提にＶＭＭ上で動作するため、一般的に、ＶＭＭをホストと称し、ＶＭをゲストと称することがある。
【００２０】
本発明の実施形態のＩａａＳ環境は、メモリ装置へのアクセスのトレースを取得することができる少数のトレーサ・ノード、および、そのような機能を備えていない多数の処理ノードを含む。本発明の実施形態のトレーサ・ノードは、そのメモリ装置（具体的には、ＤＲＡＭであるメインメモリ）へのアクセスすべてをトレース・データとして記録し続ける機能を備えている。本発明の実施形態のトレーサによって取得される生のトレース・データは、メモリ装置のアクセスに関して、アクセス時間、コマンド、アクセスをした領域の物理アドレス、プロセスＩＤ、プロセス名等を含むが、これらのすべてが必須なものであるとは限らないことに留意されたい。
【００２１】
本発明の実施形態のＩａａＳ環境の各ノードでは、あるＶＭ上で稼動するアプリケーション・プログラムがメモリ装置に対する操作をしようとする場合、まず、当該ＶＭが、ＶＭレベルの仮想アドレスであるゲスト仮想アドレス（ＧＶＡ）とＶＭレベルの物理アドレスであるゲスト物理アドレス（ＧＰＡ）との間の第１のアドレス変換を実施する。また、ＶＭＭがＶＭＭレベルの仮想アドレスであるホスト仮想アドレス（ＨＶＡ）とＶＭＭレベルの物理アドレスであるホスト物理アドレス（ＨＰＡ）の間の第２のアドレス変換を実施する。なお、本発明の実施形態では、ＧＰＡとＨＶＡとは等価であるので、ＧＰＡ／ＨＶＡと表記するものとする。また、本発明の実施形態では、ＨＰＡは当該ノードのメモリ装置の物理アドレスである。
【００２２】
本発明の実施形態のシナリオでは、処理ノードで稼動するＶＭがトレース対象として指定されたことに応じて、当該ＶＭのトレーサ・ノードへのライブマイグレーションが実行される。ここで、ライブマイグレーションとは、あるサーバにおいて稼働中のＶＭを稼動したままで、その同一性を保持して他のサーバに移動することを意味する。
【００２３】
本発明の実施形態においては、ＶＭのライブマイグレーションに応じて、トレーサ・ノードにおいて、当該ＶＭが移動前のサーバで使用していたメモリの内容を移動後のサーバにコピーするために、移動元の処理ノードのＶＭＭと移動先のトレーサ・ノードの間でやり取りがなされる。このとき、トレーサ・ノードのＨＶＡを指定してトレーサ・ノードのメモリ装置への書込みが試みられるが、当該ＨＶＡに対応するＨＰＡはいまだ決定されておらずページ・フォルトが発生する。本発明の実施形態では、ページ・フォルトに応じて割り当てられたＨＰＡとＨＶＡの対応、および、割り当て時刻の情報を含むＶＭＭレベルのページ・フォルト（ＰＦ）ログが形成される。
【００２４】
本発明の実施形態では、ＶＭＭが、メモリコピーを制御し、メモリコピーの開始と終了を特定することができるので、メモリコピーの開始から終了までの間に生じた、ライブマイグレーションされたＶＭについて生じたページ・フォルトを特定することができる。かかるＶＭＭレベルのＰＦログに含まれるＨＰＡとＨＶＡの対応、および、割り当て時刻の情報を用いて、トレーサ・ノードのメモリ装置のＨＰＡと関連付けてアクセスを記録しているトレース・データから特定のＶＭに関するもののみを特定することができる。またトレーサ・ノード上でのＶＭの稼働中もＰＦログを更新し、トレース対象ＶＭのメモリ・アクセスに関するＰＦの情報を取得する。
【００２５】
本発明の実施形態では、ＶＭ上で稼動するアプリケーション・プログラムがメモリ・アクセスを試みた結果ページ・フォルトが生じることがある。本発明の実施形態では、そのようなページ・フォルトに応じて割り当てられたＧＰＡとＧＶＡの対応、および、その割り当て時刻の情報を含むＶＭレベルのページ・フォルト（ＰＦ）ログが形成される。そして、ＶＭＭレベルのＰＦログおよびＶＭレベルのＰＦログを用いて、トレーサ・ノードのメモリ装置のＨＰＡと関連付けてアクセスを記録しているトレース・データから特定のアプリケーション・プログラムに関連するものを特定することができる。
【００２６】
したがって、本発明の実施形態によれば、少数のトレーサ・ノードを有効活用して、特定のＶＭおよび／または特定のアプリケーションに関するトレース・データを特定し解析することができる。その結果、特定のＶＭのオペレーティング・システムおよび／または特定のアプリケーションの設計において、そのメモリ利用の改善などにトレース・データを活用することができる。
【００２７】
以下、本発明を図１〜１０を参照して詳細に説明する。図１は、本発明の実施形態におけるＩａａＳ環境の概要を説明するための全体図である。本発明の実施形態におけるＩａａｓ環境１００は、クライアント１０５−１、１０５−２…（以下、「クライアント１０５」と総称することがある）、データ・センタ１１５を含む。クライアント１０５とデータ・センタ１１５は、ネットワーク１１０を介し、ＴＣＰ／ＩＰなどのよく知られた通信プロトコルに従って通信をすることができる。ネットワーク１１０は、典型的にはインターネットである。
【００２８】
本発明の実施形態データ・センタ１１５内では、クライアントに仮想化されたコンピューティング・リソースを提供するための処理を実行する多数の処理ノード１２０−１、１２０−２…（以下、「処理ノード１２０」と総称することがある）を含む。それぞれの処理ノード１２０では、そのハードウェア上でＶＭＭが稼動している。
【００２９】
本発明の実施形態では、それぞれの処理ノード１２０のＶＭＭ上で、各クライアント１０５に割り当てられたＶＭが稼動している。クライアント１０５は、ネットワーク１１０を介していずれかのデータ・センタ１１５内の処理ノード１２０のいずれかで稼動するＶＭサービスをＩＴインフラストラクチャとして利用する。しかし、どの処理ノードで利用中のＶＭサービスが稼動しているのかはクライアント１０５のユーザが意識することはない。一般的に、ＩＴインフラストラクチャをサービスとして提供するような環境は、クラウド・コンピューティング技術の一形態であるＩａａＳ環境と呼ばれる。
【００３０】
本発明の実施形態のＩａａＳ環境では、あるノードで稼働中のＶＭを稼動したままで、その同一性を保持して他のノードに移動させることができる。これをＶＭのライブマイグレーションという。ライブマイグレーションが実行された場合であっても、クライアント１０５はその事実を意識することなく、ＶＭサービスを継続して受けることができることに留意されたい。ＶＭのライブマイグレーションは、既によく知られた技術であるので、ここではこれ以上説明されない。
【００３１】
本発明の実施形態のデータ・センタ１１５は、特定のＶＭおよび／またはアプリケーション・プログラムのメモリ装置へのアクセスのトレースを取得し、解析するためのトレーサ・システム１４５を含む。本発明の実施形態のトレーサ・システム１４５は、トレーサ・ノード１３０、トレース・データ記録装置１３５、および、管理者端末１４０を含む。トレーサ・ノード１３０は、処理ノード１２０と同様に、単一のＶＭＭを備え、さらに１以上のＶＭをその上で実行することができるＩａａＳ環境内のノードである。処理ノード１２０とトレーサ・ノード１３０は、その間でＶＭをライブマイグレーションすることができる。
【００３２】
本発明の実施形態のトレーサ・ノード１３０は、さらに、そのメモリ装置（具体的には、ＤＲＡＭであるメインメモリ）へのすべてのアクセスをトレース・データとしてトレース・データ記憶装置１３５に記録する機能を備えている。本発明の実施形態では、かかる機能が特殊なモニタリング・ハードウェアによって実装される。トレーサ・ノード１３０は、そのような特殊なモニタリング・ハードウェアの実装に要するコストのためにデータ・センタ１１５内に少数（本発明の実施形態では１台のみ）設置されている。
【００３３】
本発明の実施形態では、トレーサ・ノード１３０において得られたトレース・データは、まず、その内蔵のハードディスク（ＨＤＤ）および／またはソリッド・ステート・ドライブ（ＳＳＤ）に記録される。そして、トレース・データは、所定の技法にしたがって、トレース・データ記憶装置１３５に移動される。本発明の実施形態の管理者端末１４０は、トレース対象のＶＭおよび／またはアプリケーション・プログラムを指定する機能を備える。さらに、管理者端末１４０は、トレース・データの解析をする機能を備える。
【００３４】
図２は、本発明の実施形態におけるＩａａＳ環境を構成する処理ノード１２０のハードウェア構成図である。処理ノード１２０は、バス２４０に接続されたＣＰＵ（中央処理装置）２０５とメインメモリ（本発明の実施形態では、ＤＲＡＭ）２１０を含んでいる。処理ノード１２０を実現するのに好適な情報処理装置は、不揮発性の記憶装置であるハードディスク・ドライブ（ＨＤＤ）／ソリッド・ステート・ドライブ（ＳＳＤ）２１５を備える。ＨＤＤ／ＳＳＤ２１０には、オペレーティング・システムと協働してＣＰＵ等に命令を与え、本発明を実施するためのコンピュータ・プログラムのコードを記録することができる。コンピュータ・プログラムはメインメモリ２１０にロードされることによって実行される。コンピュータ・プログラムを圧縮し、また複数に分割して複数のＨＤＤ／ＳＳＤ装置に記録することもできる。
【００３５】
本発明の実施形態の処理ノード１２０は、キーボード２２０およびマウス２２５を備え、必要に応じてローカル・オペレータからの入力を受ける。さらに、処理ノード１２０は、視覚データをローカル・オペレータに提示するための表示装置２３０に経由して接続されることができる。本発明の実施形態の処理ノード１２０は、通信インターフェース２３５（例えば、イーサネット（Ｒ））を介してネットワークに接続し、他のコンピュータ等と通信を行うことが可能である。図示はされていないが、パラレルポートを介してプリンタと接続することや、シリアルポートを介してモデムを接続することも可能である。
【００３６】
以上の説明により、本発明の実施の形態の処理ノード１２０を実現するのに好適な情報処理装置は、通常のパーソナルコンピュータ、ワークステーション、サーバ、メインフレームなどの情報処理装置、または、これらの組み合わせによって実現されることが容易に理解されるであろう。ただし、これらの構成要素は例示であり、そのすべての構成要素が本発明の必須構成要素であるとは限らない。
【００３７】
本発明の実施の形態において処理ノード１２０として使用される情報処理装置の各ハードウェア構成要素を、複数のマシンを組み合わせ、それらに機能を配分し実施する等の種々の変更は当業者によって容易に想定され得ることは勿論である。それらの変更は、当然に本発明の思想に包含される概念である。
【００３８】
本発明の実施の形態の処理ノード１２０では、ＶＭＭが稼動している。本発明の実施形態のＶＭＭは、インターナショナル・ビジネス・マシーンズ・コーポレーションが提供するｚ／ＶＭ（Ｒ）、Ｌｉｎｕｘ（Ｒ）オペレーティング・システムのＫｅｒｎｅｌ−ｂａｓｅｄ  Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ（ＫＶＭ）、ＶＭｗａｒｅ社が提供するＥＳＸ、ＥＳＸｉなどが含まれるがこれに限られない。それぞれの処理ノード１２０において、いかなる種類のＶＭＭを採用することも本発明の思想の包含される概念であることに留意されたい。
【００３９】
また、ＶＭＭによって管理されるＶＭのオペレーティング・システム（ＯＳ）には、マイクロソフト・コーポレーションが提供するＷｉｎｄｏｗｓ（Ｒ）オペレーティング・システム、アップル・インコーポレイテッドが提供するＭａｃＯＳ（Ｒ）、例えば、インターナショナル・ビジネス・マシーンズ・コーポレーションが提供するＡＩＸ（Ｒ）、あるいはＬｉｎｕｘ（Ｒ）のようなＵＮＩＸ（Ｒ）系システムを採用することができるがこれに限られない。処理ノード１２０のＶＭＭに管理されるＶＭのＯＳとしていかなる種類のＯＳを採用することができ、それらはすべて本発明の思想の包含される概念であることに留意されたい。
【００４０】
以上の説明から、当業者は、本発明の実施の形態において使用される処理ノード１２０は、その上で稼動するＶＭＭについても、さらにＶＭＭ上で稼動するＶＭについても、特定のオペレーティング・システム環境に限定されるものではないことを容易に理解することができるだろう。
【００４１】
図３は、本発明の実施形態におけるＩａａＳ環境を構成するトレーサ・ノード１３０のハードウェア構成図である。図２に示した処理ノード１２０のハードウェア構成とほぼ同様であるが、特別なモニタリング・ハードウェア３０５および第２のＳＳＤ／ＨＤＤ３１０が追加されていることに留意されたい。本発明の実施形態のモニタリング・ハードウェア３０５は、トレーサ・ノード１３０において稼動しているＶＭ／アプリケーション・プログラムからのメインメモリ（ＲＡＭ）２１０へのアクセス（すべてのメモリ操作を含む）をキャプチャし、第２のＨＤＤ／ＳＳＤ３１０にトレース・データとして記録する。なお、第２のＨＤＤ／ＳＳＤ３１０に記録されたトレース・データは、所定の技法にしたがって、トレース・データ記憶装置１３５に移動される。本発明の実施形態のトレース・データ記憶装置１３５は、あたかもネットワーク上のストレージをローカルのストレージのように扱うことができる任意のクラウド・ストレージ・サービスの技法を利用して実現することができる。また、トレース・データ記憶装置１３５への移動は、例えば、１）第２のＨＤＤ／ＳＳＤ３１０をトレース・サーバ１３０から物理的に取り外した上で、トレース・データを吸い上げるためのサーバ（図示せず）に取り付けた上で、当該サーバを経由してトレース・データをトレース・データ記憶装置１３５にを移動する、または、２）モニタリング・ハードウェア３０５を経由してＳＡＴＡ（Ｓｅｒｉａｌ  Ａｄｖａｎｃｅｄ  Ｔｅｃｈｎｏｌｏｇｙ  Ａｔｔａｃｈｍｅｎｔ）等の専用のインターフェース（図示せず）にトレース・データを送出したうえで、トレーサ・ノード１２０または別のサーバ（図示せず）経由でトレース・データ記憶装置１３５にトレース・データを格納する、等の技法によって実現することができるがこれには限られない。
【００４２】
また、処理ノード１２０と同様に、本発明の実施の形態において使用されるトレーサ・ノード１３０は、ＶＭＭについても、ＶＭＭ上で稼動するＶＭについても、特定のオペレーティング・システム環境に限定されるものではないことに留意されたい。
【００４３】
図４は、本発明の実施形態におけるＩａａＳ環境の処理ノード１２０またはトレーサ・ノード１３０の階層構造である。本発明の処理ノード１２０またはトレーサ・ノード１３０は、それぞれ図２または図３を用いて説明したメインメモリ含むハードウェア４２０の上の階層において原則として単一のＶＭＭ４１５が稼動している。さらに、ＶＭＭ４１５の上の階層において１以上のＶＭ４１０を稼動させることができる。さらに、各ＶＭ４１０の上の階層において、１以上のアプリケーション・プログラム４０５が稼動している。既に述べたとおり、ＶＭはＶＭＭの存在を前提にＶＭＭ上で動作するため、ＶＭＭをホストと称し、ＶＭをゲストと称することがあることに留意されたい。
【００４４】
本発明の実施形態では、ＶＭＭ４１５は、特定のノードから移動することはないが、ＶＭ４１０をあるノードから他のノードに移動させることができる。本発明の実施形態では、ＶＭ４１０の移動が生じた場合、当該ＶＭ４１０の上で稼動しているアプリケーション・プログラム群４０５もそれに伴って移動することになる。本発明の実施形態では、移動対象であるＶＭ（およびその上で稼動しているアプリケーション・プログラム）を稼動したままで移動することができる。一般的に、このような稼動中のＶＭをサーバ間で移動する技法をライブマイグレーションと称するが、よく知られた技法であるのでここではこれ以上説明されない。
【００４５】
本発明の実施形態では、クライアント１０５からはＶＭ４１０があたかも一台の独立したコンピュータ装置のように見えている。クライアント１０５のユーザは、どの処理ノードにおいて割り当てられたＶＭ４１０が稼動しているのかを意識することなく、当該ＶＭ上のアプリケーションを操作することができ、ＩＴインフラストラクチャを利用することができる。
【００４６】
本発明の実施形態では、ＶＭ上で稼動するアプリケーション・プログラムがメインメモリの仮想アドレスを指定してメモリ・アクセスをしようとすると、まずＶＭにおいて、ＧＶＡからＧＰＡへの変換が行われ、これがＶＭＭに引き渡される。次いで、ＶＭＭがＧＰＡに対応するＨＶＡをＨＰＡに変換することによって、物理的なメモリ装置へのアクセスが実現される。図５を用いてこのメカニズムをより詳細に説明する。
【００４７】
図５は、本発明の実施形態のＩａａＳ環境のトレーサ・ノード１３０におけるアドレス変換およびメモリ・アクセスのトレースの取得を説明するための図である。既に説明をしたものを含むが、便宜のため、まず図５に存在する略語を以下で説明する。
【００４８】
・ＧＶＡ５０５：Ｇｕｅｓｔ  Ｖｉｒｔｕａｌ  Ａｄｄｒｅｓｓ（ゲスト仮想アドレス）
・ＧＰＴ５１０：Ｇｕｅｓｔ  Ｐａｇｅ  ｔａｂｌｅ（ゲスト・ページ・テーブル）
・ＧＰＡ５１５：Ｇｕｅｓｔ  Ｐｈｙｓｉｃａｌ  Ａｄｄｒｅｓｓ（ゲスト物理アドレス）
・ＨＶＡ５２０：Ｈｏｓｔ  Ｖｉｒｔｕａｌ  Ａｄｄｒｅｓｓ（ホスト仮想アドレス）
・ＰＴ５２５：Ｐａｇｅ  Ｔａｂｌｅ（ページ・テーブル）
・ＨＰＡ５３０：Ｈｏｓｔ  Ｐｈｙｓｉｃａｌ  Ａｄｄｒｅｓｓ（ホスト物理アドレス）
・ＰＦログ５３５、５４０：ページフォルト・ログ
【００４９】
本発明の実施形態では、アプリケーション・プログラム４０５は、ＧＶＡ５０５を指定してメモリ・アクセス命令を実行する。ＧＰＴ５１０には、その時点での最新のＧＶＡ５０５とＧＰＡ５１５の対応が記憶されている。アプリケーション４０５からメモリ・アクセス命令を受けたＶＭ４１０は、ＧＰＴ５１０を参照して、ＧＶＡ５０５をＧＰＡ５１５に変換し、ＧＰＡ５１５を含むメモリ・アクセス命令をＶＭＭ４１５に引き渡す。このとき、ＧＰＴ５１０にメモリ・アクセス命令に含まれるＧＶＡ５０５に対応するＧＰＡ５１５が存在しないことが分かった場合、ＶＭレベルのページ・フォルト（ＰＦ）が発生する。本発明の実施形態では、そのようなＶＭレベルのＰＦが発生したことに応じて、ＧＰＡ５１５が新たに割り当てられる。本発明の実施形態では、さらに、ＶＭレベルのＰＦがＶＭレベルのＰＦログ５３５に記録される。
【００５０】
図８は、本発明の実施形態のＩａａＳ環境におけるＶＭレベルのページフォルト・ログ５３５の一例を表現する概略図である。本発明の実施形態のＶＭレベルのＰＦログ５３５は、ＶＭレベルのＰＦごとに、そのＰＦの発生時刻、メモリ・アクセス命令に含まれるＧＶＡ、当該ＧＶＡに対応して割り当てられたＧＰＡ、プロセスＩＤ（ＰＩＤ）、プロセス名（Ｎａｍｅ）を含む。本発明の実施形態では、任意のＧＰＡについて、ＶＭレベルのＰＦログ８００を参照することによって、ＰＦ発生時刻からさらに更新されるまでの期間の間のＧＶＡとＧＰＡの対応を把握することができることに留意されたい。
【００５１】
本発明の実施形態のＶＭＭ４１５は、ＶＭ４１０からＧＰＡ５１５を含むメモリ・アクセス命令を受けたことに応じて、ＰＴ５２５を参照して、ＨＶＡ５２０（ＧＰＡ５１５と等価）をＨＰＡ５３０に変換して、トレーサ・ノード１３０のメモリ装置にアクセスする。ＶＭＭレベルにおいても、ＶＭレベルと同様に、ＰＴ５２５にメモリ・アクセス命令に含まれるＨＶＡ５２０に対応するＨＰＡ５３０が存在しないことが分かった場合、ＶＭＭレベルのＰＦが発生する。本発明の実施形態では、そのようなＶＭＭレベルのＰＦが発生したことに応じて、ＨＰＡ５３０が新たに割り当てられる。本発明の実施形態では、さらに、ＶＭＭレベルのＰＦがＶＭＭレベルのＰＦログ５４０に記録される。
【００５２】
図９は、本発明の実施形態のＩａａＳ環境におけるＶＭＭレベルのページフォルト・ログ５４０の一例を表現する概略図である。本発明の実施形態のＶＭＭレベルのＰＦログ５４０は、ＶＭＭレベルのＰＦごとに、そのＰＦの発生時刻、メモリ・アクセス命令に含まれるＨＶＡ、当該ＨＶＡに対応して割り当てられたＨＰＡ、プロセスＩＤ（ＰＩＤ）、プロセス名（Ｎａｍｅ）を含む。本発明の実施形態では、任意のＨＰＡについて、ＶＭＭレベルのＰＦログ９００を参照することによって、ＰＦ発生時刻からさらに更新されるまでの期間の間のＨＶＡとＨＰＡの対応を把握することができることに留意されたい。
【００５３】
本発明の実施形態のトレーサ・ノード１３０では、ＶＭＭ４１５がＨＰＡを使用して実施したメモリ装置へのアクセスは、特殊なモニタリング・ハードウェア（図５で図示せず）によってキャプチャされ、キャプチャされた生のトレース・データ５４５が記録される。既に述べたとおり、本発明の実施形態のトレーサによって取得される生のトレース・データは、メモリ装置のアクセスに関して、アクセス時間、コマンド、アクセスをした領域の物理アドレス、プロセスＩＤ、プロセス名等を含むが、これらのすべてが必須なものであるとは限らない。
【００５４】
本発明の実施形態では、モニタリング・ハードウェアは、ハードウェア・レベルのアクセスであるメモリの物理アドレスを観測することができるが、それより上層レベルの情報、例えば、どの仮想マシンによってアクセスされたか、どのアプリケーションによってアクセスされたかを直接観測することはできない。したがって、生のトレース・データ５４５を直接閲覧しても、特定のＶＭ／アプリケーション・プログラムのメモリ・アクセスの解析をすることは困難であることに留意されたい。
【００５５】
本発明の実施形態では、既に述べたとおり、ＶＭＭレベルのＰＦログ５４０を参照することによって、あるＰＦ発生の時刻からさらに更新されるまでの期間の間のＨＶＡとＨＰＡの対応を把握することができる。そこで、本発明の実施形態では、フィルタ５５０がＶＭＭレベルのＰＦログ５４０を参照して、生のトレース・データに記録されたメモリ・アクセスそれぞれについて、アクセス時刻でのＨＰＡに対応するＨＶＡ／ＧＰＡの情報を付加し、ＨＶＡ／ＧＰＡが付加されたトレース・データ５５５を形成する。
【００５６】
また、本発明の実施形態では、既に述べたとおり、ＶＭＭレベルのＰＦログ５３５を参照することによって、あるＰＦ発生の時刻からさらに更新されるまでの期間の間のＧＶＡとＧＰＡの対応を把握することができる。そこで、本発明の実施形態では、フィルタ５６０がＶＭＭレベルのＰＦログ５３５を参照して、トレース・データ５５５に記録されたメモリ・アクセスそれぞれについて、アクセス時刻でのＨＶＡ／ＧＰＡに対応するＧＶＡの情報を付加し、ＧＶＡが付加されたトレース・データ５６５を形成する。
【００５７】
図１０は、本発明の実施形態のＩａａＳ環境におけるＧＰＡ、ＧＰＡ／ＨＶＡが付加されたトレース・データ５６５の一例を表現する概略図である。トレース・データ５６５には、アクセス時刻（Ｔｉｍｅ）、コマンド（Ｃｏｍｍａｎｄ）、ＨＰＡ、ＨＶＡ／ＧＰＡ、ＧＶＡ、プロセスＩＤ（ＰＩＤ）およびプロセス名（Ｐｒｏｃｅｓｓ  Ｎａｍｅ）が含まれている。ＨＰＡ／ＧＰＡの項目およびＧＶＡの項目はフィルと５５０、５５５によって付加されたものであることに留意されたい。
【００５８】
図６は、本発明の実施形態のＩａａＳ環境における特定のＶＭおよび／または特定のアプリケーション・プログラムのトレース処理の動作を表現する第１のフローチャート６００である。フローチャート６００では、生のトレース・データの採取およびページ・フォルトのログの採取の処理が実行される。
【００５９】
処理はステップ６０５でスタートし、ステップ６１０で、ある処理ノード１２０で稼動しているＶＭ上でＶＭレベルのＰＦログの記録が開始され、また、アプリケーション・プログラムが起動される。ＶＭレベルのＰＦログ５３５については、図８に示される一例を用いて既に説明をしたのでここではこれ以上詳細に説明されない。
【００６０】
次いで、ステップ６１２において、管理者１４０がある処理ノードで稼動するトレース対象のＶＭおよび／またはアプリケーション・プログラムを指定する。処理はステップ６１５に進み、トレーサ・ノード１３０がそのメインメモリへのメモリ・アクセスのトレースを取得し、トレース・データとして記録することを開始する。また、ステップ６１５で、トレーサ・ノード１３０は、そのメモリ装置へのアクセスすべてについて、ＶＭＭレベルのＰＦログ５４０に記録することを開始する。ＶＭＭレベルのＰＦログ５４０については、図９に示される一例を用いて既に説明をしたのでここではこれ以上詳細に説明されない。本発明の実施形態では、トレース・データの採取およびＶＭＭレベルのＰＦログ５４０の記録はトレース解析対象期間に継続して行われるものとする。
【００６１】
次いで、ステップ６２０において指定されたＶＭまたは指定されたアプリケーション・プログラムが稼動するＶＭのある処理ノード１２０からトレース・ノード１３０へのライブマイグレーションが開始する。
【００６２】
処理はステップ６２５へ進み、ステップ６２０におけるトレーサ・ノード１３０へのライブマイグレーションの発生に応じて、ライブマイグレーションの対象であるＶＭが移動元のノードで使用していたメモリの内容の移動後のノードへのコピー（本明細書において、単に「メモリコピー」と称されることがある）が実施される。具体的には、トレーサ・ノード１３０において、当該ＶＭが移動前のサーバで使用していたメモリの内容を移動後のサーバにコピーするために、移動元の処理ノードのＶＭＭと移動先のトレーサ・ノードの間でやり取りがなされる。このとき、トレーサ・ノードのＨＶＡを指定してトレーサ・ノードのメモリ装置への書込みが試みられるが、当該ＨＶＡに対応するＨＰＡはいまだ決定されておらずＰＦが発生する。本発明の実施形態では、発生したＶＭＭレベルのＰＦに応じて割り当てられたＨＰＡとＨＶＡの対応、および、割り当て時刻の情報を含むようにＶＭＭレベルのＰＦログ５４０が更新される。
【００６３】
本発明の実施形態では、メモリコピーの対象となる記憶領域全体についてＰＦが発生するので、ライブマイグレーションの対象のＶＭが使用するメモリ領域すべてについてＰＦログ５４０が更新されることとなる。なお、本発明の実施形態では、ＶＭＭ４１５が、メモリコピーを制御し、メモリコピーの開始と終了を特定することができるので、メモリコピーの開始から終了までの間に生じた、ライブマイグレーションされたＶＭについて生じたＰＦを特定することができることに留意されたい。
【００６４】
さらに処理はステップ６３０に進み、ライブマイグレーションが終了し、以降、ユーザはトレーサ・ノード１３０上で稼動するＶＭからＩＴインフラストラクチャのサービスを受けることになる。本発明の実施形態においては、ライブマイグレーションが実施されることによって、ステップ６１２で記録を開始したＶＭレベルのＰＦログ５３５がトレース対象のＶＭとともにトレーサ・ノード１３０に移動することに留意されたい。また、本発明の実施形態では、ステップ６２５におけるメモリコピーの実施において、ＶＭ上で稼動するアプリケーション・プログラムがメモリ・アクセスを試みた結果としてＰＦが生じることがある。本発明の実施形態では、そのようなＰＦに応じて割り当てられたＧＰＡとＧＶＡの対応、および、その割り当て時刻の情報を含むようにＶＭレベルのＰＦログ５３５が更新される。
【００６５】
次に、ステップ６３０において、後で行われるメモリ・アクセス解析のためのワークロード・プログラム実行が、トレーサ・サーバ１３０にライブマイグレーションされたＶＭ上で実施される。かかるワークロード・プログラム実行におけるメモリ・アクセスはすべてトレース・データとして記憶されることとなる。また、ワークロード・プログラム実行において、ＶＭレベルのＰＦ、ＶＭＭレベルのＰＦが発生した場合は、それぞれＶＭレベルのＰＦログ５３５、ＶＭＭレベルのＰＦログ５４０に記録されることは勿論である。ステップ６４０においてさらにトレーサ・ノード１３０のメモリ装置へのアクセスのトレースを継続するかどうかが判定される。トレースを継続すると判定された場合、処理はＹＥＳの矢印を介してステップ６３５に戻り、トレースを中止するまで繰り返される。
【００６６】
ステップ６４０においてトレースを継続しないと判定された場合、処理はＮＯの矢印を介してステップ６４５に進み、トレース対象のＶＭを任意の処理ノードに移動する。このようにトレースが完了したＶＭを任意の処理ノードにライブマイグレーションすることによって、トレーサ・ノード１３０のリソースを有効に活用することができる。次いで、ステップ６５０に進み、トレース・データの採取、ＶＭＭレベルのＰＦログの記録およびＶＭレベルのＰＦログの記録を停止し、ステップ６５５でフローチャート６００の処理が終了する。
【００６７】
図７は、本発明の実施形態のＩａａＳ環境における特定のＶＭおよび／または特定のアプリケーション・プログラムのトレース処理の動作を表現する第２のフローチャート７００である。フローチャート７００では、フローチャート６００の処理を介して採取された生のトレース・データおよびＰＦログを用いたＶＭ／アプリケーション・プログラムごとのトレース・データの特定の処理が実行される。なお、フローチャート７００を実行する前に、トレース・データはトレース・データ記憶装置１３５に移動されているのものとする。トレース・データのトレース・データ記憶装置１３５への移動は、既に図３と関連して説明したので、ここではこれ以上詳細には説明されない。
【００６８】
処理はステップ７０５でスタートし、ステップ７１０で、管理者１４０から解析対象のＶＭおよび／またはアプリケーション・プログラムを指定する。処理はステップ７１５に進み、ステップ７１０でアプリケーション・プログラムを指定した場合は、そのアプリケーション・プログラムが稼動していたＶＭが特定される。
【００６９】
次に、ステップ７２０において、ＶＭＭレベルのＰＦログ５５５を使用して解析対象のＶＭのトレース・データを特定する。具体的には、フィルタ５５０がＶＭＭレベルのＰＦログ５４０を参照して、生のトレース・データ内のある時刻における解析対象のＶＭのＨＶＡ／ＧＰＡに対応するＨＰＡを備えるメモリ・アクセスを検索する。そして、当該メモリ・アクセスに、アクセス時刻でのＨＰＡに対応するＨＶＡ／ＧＰＡの情報を付加し、ＨＶＡ／ＧＰＡが付加されたトレース・データ５５５を形成する。
【００７０】
処理はステップ７２５に進み、ＶＭレベルのＰＦログ５５０を使用して解析対象のアプリケーション・プログラムのトレース・データを特定する。具体的には、フィルタ５６０が、ＶＭレベルのＰＦログ５３５内に記録されたある時刻における解析対象のアプリケーションに割り当てられたＧＶＡに対応するＧＰＡ／ＨＶＡ（ステップ７２０において付加されている）を備えるメモリ・アクセスを検索する。そして、当該メモリ・アクセスに、アクセス時刻でのＨＰＡに対応するＨＶＡ／ＧＰＡの情報を付加し、ＨＶＡ／ＧＰＡが付加されたトレース・データ５６０を形成する。
【００７１】
当業者は、ステップ７２０および７２５において、トレース・データ内のメモリ・アクセスに対して解析対象のＶＭのＨＶＡ／ＧＰＡおよび／または解析対象のアプリケーションのＧＶＡの情報が付加されたことによって、そのメモリ・アクセスを解析対象のＶＭ／アプリケーション・プログラムのトレース・データとして特定することができるようになることを容易に理解するだろう。
【００７２】
処理はステップ７３０に進み、トレース・データに付加されたＨＰＡ／ＧＰＡの項目、ＧＶＡの項目に基づいて、ステップ７１０において管理者が指定した解析対象のＶＭおよび／またはアプリケーション・プログラムについての部分のみが管理者に提示される。その結果、管理者は自分が解析対象としているＶＭおよび／またはアプリケーション・プログラムのメモリ・アクセスの解析（例えば、様々なワークロードのメモリアクセスパターンの分析など）を行うことができる。次いで、ステップ７３５に進み、フローチャート７００の処理が終了する。
【００７３】
本発明は、当業者に容易に理解されるとおり、システム、方法またはコンピュータ・プログラム製品として実施することができる。そのため、本発明は全面的にハードウェアとしての実施形態、全面的にソフトウェアとしての実施形態（ファームウェア、常駐ソフトウェア、マイクロコード等を含む）あるいは、ここでは、一般的に「回路」、「モジュール」または「システム」と呼ぶソフトウェアとハードウェアを組み合わせた実施形態の形式をとることができる。さらに、本発明は、その媒体で実施されるコンピュータが使用できるプログラム・コードを持った有形の表現媒体で実施されるコンピュータ・プログラム製品の形態をとることもできる。
【００７４】
コンピュータ使用可能／コンピュータ可読媒体の組み合わせを利用することもできる。コンピュータ使用可能／コンピュータ可読媒体は、たとえば、電子的、磁気的、光学的、電磁、赤外線または半導体システム、装置、デバイスまたは伝搬媒体であってよいが、これらに限定されない。コンピュータ可読媒体のより具体的な例の非網羅的なリストには、以下のものが含まれる。導線を持った電気的接続、ポータブル・コンピュータ・ディスケット、ハードディスク、ランダム・アクセス・メモリ（ＲＡＭ）、リードオンリー・メモリ（ＲＯＭ）、消去可能なプログラマブル・リードオンリー・メモリ（ＥＰＲＯＭまたはフラッシュメモリ）、光ファイバー、ポータブル・コンパクトディスク・リードオンリー・メモリ（ＣＤ―ＲＯＭ）、光記憶デバイス、インターネットまたはイントラネットをサポートする伝送媒体、磁気記憶装置。
【００７５】
プログラムは、たとえば、紙または他の媒体を光学的に走査することによって、電子的に取得され、次に、必要に応じて、コンパイルされ、解釈され、その他適宜の方法で処理され、コンピュータのメモリに保存されるため、コンピュータ使用可能／コンピュータ可読媒体は、プログラムが印刷された紙またはその他の適当な媒体であってもよい点に留意すべきである。コンピュータ使用可能／コンピュータ可読媒体は、命令実行システム、装置またはデバイスにより、あるいはこれらに関連して使用するためのプログラムを包含し、保存し、通信し、伝播し、または搬送することができる任意の媒体であってよい。コンピュータが使用できる媒体は、ベースバンド中または搬送波の一部として、一緒に実施されるコンピュータが使用できるプログラム・コードを含んだ伝播されたデータ信号を含むことができる。コンピュータが使用できるプログラム・コードは、無線、有線、光ファイバー・ケーブル、ＲＦ等を含むがこれらに限定されない適切な媒体を使用して伝送することができる。
【００７６】
本発明を実行するコンピュータ・プログラム・コードは、Ｊａｖａ、Ｓｍａｌｌｔａｌｋ、Ｃ＋＋等のオブジェクト指向のプログラム言語およびＣプログラム言語またはこれに類似するプログラム言語等の従来型の手続プログラム言語を含んだ１種類または複数のプログラム言語の組み合わせを使用して記述することができる。プログラム・コードは、全面的にユーザのコンピュータ上、一部をユーザのコンピュータ上、独立型のソフトウェア・パッケージとして、一部をユーザのコンピュータおよび一部をリモート・コンピュータ上、全面的にリモート・コンピュータまたはサーバ上で実行できる。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ）またはワイド・エリア・ネットワーク（ＷＡＮ）を含む任意の種類のネットワークを通じてユーザのコンピュータに接続することができ、あるいは接続は外部コンピュータ（たとえば、インターネット・サービス・プロバイダを利用してインターネットを通じて）に対して行うこともできる。
【００７７】
以上、方法、装置（システム）およびコンピュータ・プログラム製品のフローチャートによる図示および／またはブロック図を参照して、本発明の実施形態を説明した。フローチャートによる図示および／またはブロック図の各ブロック、およびフローチャートによる図示および／またはブロック図のブロックの組み合わせは、コンピュータ・プログラムの命令によって実行できることは理解されるであろう。汎用コンピュータ、特殊目的のコンピュータ、またはその他のプログラム可能なデータ処理装置のプロセッサを通じて実行される命令が、フローチャートおよび／またはブロック図の１つまたは複数のブロックで指定された機能／活動を実行する手段を生成する機械を製造するために、これらのコンピュータ・プログラムの命令は、上記コンピュータ、その他のプログラム可能なデータ処理装置のプロセッサに対して与えることができる。
【００７８】
これらのコンピュータ・プログラム命令は、コンピュータまたは他のプログラム可能なデータ処理装置を、コンピュータ可読媒体に保存された命令が、フローチャートおよび／またはブロック図の１つまたは複数のブロックで指定された機能／動作を実行する命令手段を含む製品を生産するよう、特定の態様で機能させることができるコンピュータ可読媒体に保存することもできる。
【００７９】
コンピュータ・プログラム命令は、コンピュータまたは他のプログラム可能なデータ処理装置上で実行する命令がフローチャートおよび／またはブロック図の1つまたは複数のブロックで指定された機能／活動を実行するプロセスを提供するように、コンピュータで実行するプロセスを作成するため、コンピュータまたは他のプログラム可能なデータ処理装置上で一連の動作のステップを実行するようにそのコンピュータまたは他のプログラム可能なデータ処理装置にロードすることもできる。
【００８０】
図面中のフローチャートおよびブロック図は、この発明のさまざまな実施形態によるシステム、方法およびコンピュータ・プログラム製品のアーキテクチャ、機能性および実行動作を図示している。この点については、フローチャートまたはブロック図の各ブロックは指定された論理機能を実行するための１つまたは複数の実行可能な命令を含んだモジュール、セグメントまたはコードの部分を示すことができる。一定の代替的実装例においては、ブロックに示された機能が図面に示したものとは異なる順番で行われることがある点にも留意すべきである。たとえば、関連する機能性に応じて、順番に示されている2個のプロックが、実際にはほぼ同時に実行されること、あるいはブロックが逆の順番で実行されることがある。ブロック図および／またはフローチャートの図示の各ブロック、およびブロック図および／またはフローチャートの図示のブロックの組み合わせは、特殊な機能または活動を行う特殊目的のためのハードウェア主体のシステム、または特殊目的のハードウェアの組み合わせによって実行され得る。
【００８１】
以上、本発明の実施形態によれば、ＩａａＳ環境において、トレーサ・ノードが取得するトレース・データから特定の仮想マシンに関連するトレース・データを特定することが理解されるであろう。さらに、本発明の実施形態によれば、少数のトレーサ・ノードを有効に活用できるので、特定の仮想マシンのメモリ装置へのアクセスのトレースをより低コストで取得できることが理解されるであろう。
【００８２】
上記の実施の形態に、種々の変更または改良を加えることが可能であることが当業者に明らかである。例えば、本発明の実施形態では、管理者がトレース対象のＶＭおよび／またはアプリケーション・プログラムを指定して、解析を行うことを前提に説明をしたが、ネットワークを介して各ＶＭを利用するユーザが自己のＶＭおよび／またはアプリケーション・プログラムのメモリ・アクセスを解析するために、本発明の実施形態の管理者の役割を担うようにすることも勿論可能である。そのような変形も当然に本発明の技術的思想の範囲に含まれる。
【図１】
2014197295.tif 000003
【図２】
2014197295.tif 000004
【図３】
2014197295.tif 000005
【図４】
2014197295.tif 000006
【図５】
2014197295.tif 000007
【図６】
2014197295.tif 000008
【図７】
2014197295.tif 000009
【図８】
2014197295.tif 000010
【図９】
2014197295.tif 000011
【図１０】
2014197295.tif 000012