(57)【要約】【課題】プロファイリング処理にかかる処理効率およびデータ精度の向上、プロファイリング機能を有する仮想マシンシステムの構築・管理にかかる作業期間の短期化、およびコスト削減を図ること。【解決手段】（１）まず、ハイパーバイザ２４０によって、ＣＰＵに割り当てられた仮想マシンの識別情報がプロファイリング支援機構２５０に送信される。（２）プロファイリング支援機構２５０は、プロファイリングプログラムのアドレスをＣＰＵの性能モニタリング割込みベクタに設定する。（３）ＣＰＵは、性能モニタリング割込みにより、ハイパーバイザ２４０を介さず、仮想マシン上の、プロファイリングプログラムを直接呼び出す。（４）プロファイリングプログラムは、プロファイリング処理をおこない、（５）ハイパーバイザ２４０を介さず、ログをログデータベース２６０に直接出力する。【選択図】図７
2011150736.tif 000002
【特許請求の範囲】
【請求項１】
ハイパーバイザによりプロセッサに割り当てられた仮想マシン上に実装されるプロファイリングプログラムであって、
当該プロファイリングプログラムのアドレスが、前記プロセッサの性能モニタリング割込みベクタに設定された場合に、前記仮想マシンのベンチマークスコアを取得する取得工程と、
前記取得工程によって取得されたベンチマークスコアを、前記ハイパーバイザを介さずにメモリに保存する保存工程と、
を前記プロセッサに実行させることを特徴とするプロファイリングプログラム。
【請求項２】
前記取得工程は、
少なくとも、前記プロセッサが実行中のプログラムの識別情報と、前記プロセッサの識別番号と、当該ベンチマークスコア取得時のタイムスタンプとを、前記仮想マシンのベンチマークスコアとして取得することを特徴とする請求項１に記載のプロファイリングプログラム。
【請求項３】
プロセッサが、
ハイパーバイザによりプロセッサに割り当てられた仮想マシン上に実装されるプロファイリングプログラムのアドレスが、前記プロセッサの性能モニタリング割込みベクタに設定された場合に、前記仮想マシンのベンチマークスコアを取得する取得工程と、
前記取得工程によって取得されたベンチマークスコアを、前記ハイパーバイザを介さずにメモリに保存する保存工程と、
を実行することを特徴とするプロファイリング方法。
【請求項４】
ハイパーバイザによりプロセッサに割り当てられた仮想マシン上に実装されるプロファイリングプログラムのアドレスが、前記プロセッサの性能モニタリング割込みベクタに設定された場合に、前記仮想マシンのベンチマークスコアを取得する取得手段と、
前記取得手段によって取得されたベンチマークスコアを、前記ハイパーバイザを介さずにメモリに保存する保存手段と、
を備えたことを特徴とするコンピュータ。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、仮想マシンシステムにおけるサンプリング式プロファイリングをおこなうプロファイリングプログラム、プロファイリング方法、およびコンピュータに関する。
【背景技術】
【０００２】
近年、１台の物理マシン上で複数の論理マシン（仮想マシン）を動作させる仮想マシンシステムが多く利用されている。このような仮想マシンシステムにおいては、各仮想マシンから適時取得した動作情報（ベンチマークスコア）をデータベースに蓄積するプロファイリング機能を備えたものがあり、このプロファイリング機能によって蓄積された情報に基づいて、仮想マシンシステムの性能分析を容易におこなうことができるものとされている。
【０００３】
ここで、一例として、従来技術を利用した仮想マシンシステムによるプロファイリング処理の概要について説明する。図１０は、従来技術を利用した仮想マシンシステムによるプロファイリング処理の概要を示す説明図である。
【０００４】
図１０に示す、仮想マシンシステム１０００は、１台の物理マシン上で複数の論理マシン（仮想マシン）を動作させるシステムであり、仮想マシン１０１０〜１０３０、ハイパーバイザ１０４０、およびログデータベース１０５０を備えて構成されている。このうち、仮想マシン１０１０〜１０３０は、それぞれ、各種アプリケーション、ＯＳ、およびプロファイリングプログラムを備える。
【０００５】
このように構成された仮想マシンシステム１０００においては、まず、ハイパーバイザ１０４０によって、各仮想マシン１０１０〜１０３０のいずれかがＣＰＵに割り当てられる。そして、ＣＰＵにおいて割込みイベントが発生した場合、ハイパーバイザ１０４０は、ＣＰＵから出力された割込みイベントを受け取り、ＣＰＵが割り当てられた仮想マシン上のプロファイリングプログラムに対して割込み処理要求を出力する。
【０００６】
そして、ハイパーバイザ１０４０から割込み処理要求を受け取ったプロファイリングプログラムは、当該プロファイリングプログラムが搭載された仮想マシンに対するプロファイリング処理をおこない、その結果データをハイパーバイザ１０４０に出力する。ハイパーバイザ１０４０は、プロファイリングプログラムから受け取った結果データをログとしてログデータベース１０５０に出力する。このようにログデータベース１０５０に蓄積されたログによって、仮想マシンシステム１０００全体や各仮想マシン１０１０〜１０３０の性能を容易に分析することができるものとされている。
【０００７】
また、ＣＰＵに対し特権レベルごとの割込みアドレスを設定することによって、仮想マシンがＣＰＵからの割込みイベントを直接受け取ることを可能とする技術が考案されている（たとえば、下記特許文献１参照。）。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００６−２０２２７９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、上記従来技術にあっては、各プロファイリングプログラムとハイパーバイザ１０４０とのデータのやり取りが必要であり、これがオーバーヘッドとなっていたため、プロファイリング処理にかかる処理効率やデータ精度が低下するといった問題が生じていた。また、上記データのやり取りをおこなうためのインターフェースを、ハイパーバイザ１０４０および各プロファイリングプログラムに作り込む必要があるため、仮想マシンシステム１０００の構築・管理にかかる作業期間が長期化するうえ、コストが増加するといった問題が生じていた。
【００１０】
また、上述した特許文献１の技術は、特権レベルに応じて割込みアドレスを切り替える機能を備えたＣＰＵを実装する必要があり、この場合、仮想マシンシステムの開発期間が長期化したり、開発コストが増加するといった問題が生じるため、容易に実現できるものではなかった。
【００１１】
この発明は、上述した従来技術による問題点を解消するため、プロファイリング処理にかかる処理効率およびデータ精度の向上を図ることができるうえ、プロファイリング機能を有する仮想マシンシステムの構築・管理にかかる作業期間の短期化、およびコスト削減を図ることができるプロファイリングプログラム、プロファイリング方法、およびコンピュータを提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明の一側面では、ハイパーバイザによりプロセッサに割り当てられた仮想マシン上に実装されるプロファイリングプログラムのアドレスが、前記プロセッサの性能モニタリング割込みベクタに設定された場合に、前記仮想マシンのベンチマークスコアを取得し、取得されたベンチマークスコアを、前記ハイパーバイザを介さずにメモリに保存するプロファイリングプログラム、プロファイリング方法、およびコンピュータが提案される。
【発明の効果】
【００１３】
本発明にかかるプロファイリングプログラム、プロファイリング方法、およびコンピュータによれば、プロファイリング処理にかかる処理効率およびデータ精度の向上を図ることができるうえ、プロファイリング機能を有する仮想マシンシステムの構築・管理にかかる作業期間の短期化、およびコスト削減を図ることができるという効果を奏する。
【図面の簡単な説明】
【００１４】
【図１】この発明の実施の形態にかかるコンピュータのハードウェア構成を示す説明図である。
【図２】この発明の実施の形態にかかる仮想マシンシステムのシステム構成を示す説明図である。
【図３】この発明の実施の形態にかかるプロファイリング支援機構の機能的構成を示すブロック図である。
【図４】記憶部に記憶されているプロファイリングプログラムのアドレスの一例を示す説明図である。
【図５】この発明の実施の形態にかかるプロファイリング支援機構によるプロファイリング支援処理の手順を示すフローチャートである。
【図６】プロファイリングプログラムのアドレスが設定された性能モニタリング割込みベクタの一例を示す説明図である。
【図７】この発明の実施の形態にかかる仮想マシンシステムによるプロファイリング処理の概要を示す説明図である。
【図８】仮想マシンに備えられたプロファイリングプログラムの処理概要を示す説明図である。
【図９】プロファイリングプログラムによって出力されたログの一例を示す説明図である。
【図１０】従来技術を利用した仮想マシンシステムによるプロファイリング処理の概要を示す説明図である。
【発明を実施するための形態】
【００１５】
（実施の形態）
以下に添付図面を参照して、この発明にかかるプロファイリング支援プログラム、該プログラムを記録した記録媒体、プロファイリングプログラム、該プログラムを記録した記録媒体、プロファイリング方法、およびコンピュータの好適な実施の形態を詳細に説明する。
【００１６】
（コンピュータのハードウェア構成）
まず、この発明の実施の形態にかかるコンピュータのハードウェア構成について説明する。図１は、この発明の実施の形態にかかるコンピュータのハードウェア構成を示す説明図である。
【００１７】
図１において、コンピュータ１００は、コンピュータ本体１１０と、入力装置１２０と、出力装置１３０と、から構成されており、不図示のルータやモデムを介してＬＡＮ，ＷＡＮやインターネットなどのネットワーク１４０に接続可能である。
【００１８】
コンピュータ本体１１０は、ＣＰＵ，メモリ，インターフェースを有する。ＣＰＵは、コンピュータ１００の全体の制御を司る。メモリは、ＲＯＭ，ＲＡＭ，ＨＤ，光ディスク１１１，フラッシュメモリから構成される。メモリはＣＰＵのワークエリアとして使用される。
【００１９】
また、メモリには各種プログラムが格納されており、ＣＰＵからの命令に応じてロードされる。ＨＤおよび光ディスク１１１はディスクドライブによりデータのリード／ライトが制御される。また、光ディスク１１１およびフラッシュメモリはコンピュータ本体１１０に対し着脱自在である。インターフェースは、入力装置１２０からの入力、出力装置１３０への出力、ネットワーク１４０に対する送受信の制御をおこなう。
【００２０】
また、入力装置１２０としては、キーボード１２１、マウス１２２、スキャナ１２３などがある。キーボード１２１は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式であってもよい。マウス１２２は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。スキャナ１２３は、画像を光学的に読み取る。読み取られた画像は画像データとして取り込まれ、コンピュータ本体１１０内のメモリに格納される。なお、スキャナ１２３にＯＣＲ機能を持たせてもよい。
【００２１】
また、出力装置１３０としては、ディスプレイ１３１、スピーカ１３２、プリンタ１３３などがある。ディスプレイ１３１は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。また、スピーカ１３２は、効果音や読み上げ音などの音声を出力する。また、プリンタ１３３は、画像データや文書データを印刷する。
【００２２】
（仮想マシンシステムのシステム構成）
つぎに、この発明の実施の形態にかかる仮想マシンシステムのシステム構成について説明する。図２は、この発明の実施の形態にかかる仮想マシンシステムのシステム構成を示す説明図である。
【００２３】
図２に示す、仮想マシンシステム２００は、図１に示したコンピュータ１００に構成され、１台の物理マシン上で複数の論理マシン（仮想マシン）を動作させるシステムであり、仮想マシン２１０〜２３０、ハイパーバイザ２４０、プロファイリング支援機構２５０、およびログデータベース２６０を備えて構成されている。
【００２４】
仮想マシン２１０〜２３０は、それぞれ、各種アプリケーション、ＯＳ、およびプロファイリングプログラムを備える。このうち、プロファイリングプログラムは、当該プロファイリングプログラムが搭載された仮想マシンのベンチマークスコアを取得し、取得されたベンチマークスコアを、ハイパーバイザ２４０を介さずにログデータベース２６０に出力する。ここで、プロファイリングプログラムは、少なくとも、ＣＰＵが実行中のプログラムの識別情報と、ＣＰＵの識別番号と、当該ベンチマークスコア取得時のタイムスタンプとを、ベンチマークスコアとして取得する。
【００２５】
ハイパーバイザ２４０は、各仮想マシン２１０〜２３０をＣＰＵに割り当てる。ここで、ある時点において、ＣＰＵに割り当てられている仮想マシンの数は、コンピュータ本体１１０（図１参照）に搭載されているＣＰＵの数と等しい。このため、ＣＰＵの数が仮想マシンの数よりも少ない場合、ハイパーバイザ２４０は、適時（たとえば、一定時間経過後、仮想マシンが実行権を放棄した時など）ＣＰＵに割り当てる仮想マシンを切り替える。
【００２６】
プロファイリング支援機構２５０は、ハイパーバイザ２４０が仮想マシン２１０〜２３０のいずれかをＣＰＵに割り当てる際に、ＣＰＵに割り当てられる仮想マシン上のプロファイリングプログラムが、直接、ＣＰＵからの性能モニタリング割込みを受けるように、ＣＰＵを制御するプログラムである。ここで、プロファイリング支援機構２５０は、ソフトウェア（プログラム）に限らず、安価なハードウェア（デジタル回路等）によりその機能を実現してもよい。なお、本実施の形態において、プロファイリング支援機構２５０は、便宜上、ハイパーバイザ２４０と別構成としたが、これに限らず、たとえば、ハイパーバイザ２４０の一機能であってもよい。
【００２７】
ログデータベース２６０は、プロファイリングプログラムから出力されたログを格納するデータベースである。
【００２８】
（プロファイリング支援機構２５０の機能的構成）
つぎに、この発明の実施の形態にかかるプロファイリング支援機構２５０の機能的構成について説明する。図３は、この発明の実施の形態にかかるプロファイリング支援機構２５０の機能的構成を示すブロック図である。
【００２９】
図３において、プロファイリング支援機構２５０は、記憶部３０１と、取得部３０２と、設定部３０３と、から構成されている。
【００３０】
記憶部３０１は、各仮想マシン２１０〜２３０のプロファイリングプログラムのアドレスを記憶する。
【００３１】
取得部３０２は、ＣＰＵに割り当てられる仮想マシン上のプロファイリングプログラムのアドレスを取得する。たとえば、取得部３０２は、仮想マシン上にプロファイリングプログラムが組み込まれる際に、上記プロファイリングプログラムのアドレスを取得して、記憶部３０１に格納する。また、取得部３０２は、図５を用いて後述するプロファイリング支援処理にて、記憶部３０１から、上記プロファイリングプログラムのアドレスを取得する。
【００３２】
設定部３０３は、ＣＰＵの性能モニタリング割込みベクタに、取得部３０２によって取得されたプロファイリングプログラムのアドレスを設定する。また、設定部３０３は、ＣＰＵの性能モニタリング割込みベクタに、ＣＰＵに割り当てられる仮想マシン上で稼動するＯＳと同一の特権レベルを設定する。
【００３３】
なお、上述した各機能構成部のうち、取得部３０２および設定部３０３は、具体的には、たとえば図１に示したコンピュータ本体１１０が有するメモリに記憶されたプログラムをＣＰＵが実行することによってその機能を実現する。また、記憶部３０１は、具体的には、たとえば図１に示したコンピュータ本体１１０が有するメモリによってその機能を実現する。
【００３４】
（記憶部３０１に記憶されているプロファイリングプログラムのアドレスの一例）
つぎに、記憶部３０１に記憶されているプロファイリングプログラムのアドレスの一例について説明する。図４は、記憶部３０１に記憶されているプロファイリングプログラムのアドレスの一例を示す説明図である。
【００３５】
図４に示すように、記憶部３０１には、プロファイリングプログラムのアドレスを示す「ハンドラアドレス」と、「制御レジスタ１」および「制御レジスタ２」とが、各仮想マシン２１０〜２３０を一意に識別するための仮想マシン番号と関連付けられて記憶されている。
【００３６】
記憶部３０１に記憶されたこれらの情報は、たとえば、仮想マシン上にプロファイリングプログラムが組み込まれる際に、取得部３０２によって取得され、記憶部３０１に格納されたものである。なお、別の方法として、たとえば、ユーザが手作業でおこなってもよく、プロファイリングプログラムに送信機能を組み込み、プロファイリングプログラムから送信された情報を、プロファイリング支援機構２５０が自動的に記憶部３０１に登録するようにしてもよい。
【００３７】
（プロファイリング支援処理の手順）
つぎに、この発明の実施の形態にかかるプロファイリング支援機構２５０によるプロファイリング支援処理の手順について説明する。図５は、この発明の実施の形態にかかるプロファイリング支援機構２５０によるプロファイリング支援処理の手順を示すフローチャートである。
【００３８】
まず、取得部３０２によって、ＣＰＵに割り当てられる仮想マシン上のプロファイリングプログラムのアドレスを取得する（ステップＳ５０１）。つぎに、設定部３０３によって、ＣＰＵの性能モニタリング割込みベクタに、取得部３０２によって取得されたプロファイリングプログラムのアドレスを設定する（ステップＳ５０２）。そして、設定部３０３によって、ＣＰＵの性能モニタリング割込みベクタに、ＣＰＵに割り当てられる仮想マシン上で稼動するＯＳと同一の特権レベルを設定して（ステップＳ５０３）、一連の処理を終了する。
【００３９】
（性能モニタリング割込みベクタの一例）
つぎに、プロファイリングプログラムのアドレスが設定された性能モニタリング割込みベクタの一例について説明する。図６は、プロファイリングプログラムのアドレスが設定された性能モニタリング割込みベクタの一例を示す説明図である。
【００４０】
図６に示す例では、ＣＰＵの割込みベクタテーブルレジスタに「８０００００００」が設定されており、メモリアドレス「８０００００００」に割込みベクタテーブルがあることを示す。そして、割込みベクタテーブルの「３（番地）」が、性能モニタリング割込みベクタとして使用されており、「割込みハンドラアドレス」領域と「特権レベル」領域とによって構成されている。
【００４１】
「割込みハンドラアドレス」領域には、プロファイリング支援機構２５０によって、プロファイリングプログラムのアドレスが設定される。また、「特権レベル」領域には、プロファイリング支援機構２５０によって、ＣＰＵに割り当てられる仮想マシン上で稼動するＯＳと同一の特権レベルが設定される。
【００４２】
たとえば、図６に示す例では、プロファイリング支援機構２５０によって、「割込みハンドラアドレス」領域に、プロファイリングプログラムのアドレス「８０９００５００」が設定され、「特権レベル」領域に、特権レベル「１」が設定されている。
【００４３】
（プロファイリング処理の概要）
つぎに、この発明の実施の形態にかかる仮想マシンシステム２００によるプロファイリング処理の概要について説明する。図７は、この発明の実施の形態にかかる仮想マシンシステム２００によるプロファイリング処理の概要を示す説明図である。
【００４４】
（１）まず、ハイパーバイザ２４０によって、仮想マシン２１０〜２３０のいずれか（本例では仮想マシン２１０）がＣＰＵに割り当てられ、割り当てられた仮想マシンの識別情報がプロファイリング支援機構２５０に送信される。
【００４５】
（２）プロファイリング支援機構２５０は、記憶部３０１に記憶されているプロファイリングプログラムのアドレスの中から、割り当てられた仮想マシンに関連付けられているプロファイリングプログラムのアドレスを取得し、取得したプロファイリングプログラムのアドレスをＣＰＵの性能モニタリング割込みベクタに設定する。同時に、ＣＰＵに割り当てられる仮想マシン上で稼動するＯＳと同一の特権レベルをＣＰＵの性能モニタリング割込みベクタに設定する。
【００４６】
（３）ＣＰＵは、タイマーやイベントなどをトリガーとした性能モニタリング割込みにより、ハイパーバイザ２４０を介さず、仮想マシン上の、上記（２）で設定されたプロファイリングプログラムのアドレスによって特定されるプロファイリングプログラムを直接呼び出す。
【００４７】
（４）性能モニタリング割込みによって呼び出されたプロファイリングプログラムは、プロファイリング処理をおこない、（５）その結果として、ハイパーバイザ２４０を介さず、ログをログデータベース２６０に直接出力する。
【００４８】
（プロファイリングプログラムの処理概要）
つぎに、仮想マシン２１０〜２３０に備えられたプロファイリングプログラムの処理概要について説明する。図８は、仮想マシン２１０〜２３０に備えられたプロファイリングプログラムの処理概要を示す説明図である。
【００４９】
図８は、タイマーにより周期的に割込みが発生する例を示したものでありプロファイリングプログラムは、所定周期ごとに発生するＣＰＵからの割込みを受けるたび、対象プログラムに対するプロファイリングをおこない、その結果として、ログをログデータベース２６０に出力する。
【００５０】
（ログの一例）
つぎに、プロファイリングプログラムによって出力されたログの一例について説明する。図９は、プロファイリングプログラムによって出力されたログの一例を示す説明図である。
【００５１】
図９に示すように、各仮想マシンから出力されたログは、仮想マシンごとにログデータベース２６０に蓄積されており、「タイムスタンプ」、「プロセスＩＤ」、および「アドレス」が、ＣＰＵを一意に識別するための「ＣＰＵ番号」に関連付けられて構成されている。
【００５２】
たとえば、「ＣＰＵ番号」によって、複数のＣＰＵが搭載されている場合であっても、どのＣＰＵで仮想マシンが稼動したかを特定することができる。また、「タイムスタンプ」、「プロセスＩＤ」、および「アドレス」によって、どのアプリケーションが、いつ、どれくらい実行されていたかを特定することができる。
【００５３】
このように、仮想マシンごとにログが蓄積されたことにより、仮想マシンごとの詳細動作を把握することができるようになっている。また、図９に示すように、ログを「ＣＰＵ番号」ごとに集計し、「タイムスタンプ」順にソートすることにより、仮想マシンシステム２００全体の詳細動作を、時系列で把握することができるようになっている。
【００５４】
以上説明したように、この発明の実施の形態にかかるプロファイリング支援プログラム、該プログラムを記録した記録媒体、プロファイリングプログラム、該プログラムを記録した記録媒体、プロファイリング方法、およびコンピュータによれば、仮想マシンにＣＰＵが割り当てられた際に、ＣＰＵの性能モニタリング割込みベクタに、ＣＰＵが割り当てられた仮想マシン上のプロファイリングプログラムのアドレスを設定する構成としたため、ＣＰＵが割り当てられた仮想マシンは、割込みハンドラをＣＰＵから直接受け取り、プロファイリングプログラムのアドレスを実行することができる。
【００５５】
また、上記構成に加え、ハイパーバイザを介さずにログをデータベースに直接出力することが可能なプロファイリングプログラムを、各仮想マシン上に備えたことにより、ハイパーバイザと各プロファイリングプログラムとの間のインターフェースを省くことができる。すわなち、上記インターフェースに伴う、ハイパーバイザや、各プロファイリングプログラムの修正作業を省くことができる。
【００５６】
また、上記構成に加え、ＣＰＵの識別情報およびタイムスタンプを含んだログをデータベースに出力することが可能なプロファイリングプログラムを、各仮想マシン上に備えたことにより、各仮想マシンの性能分析および仮想マシンシステム全体の性能分析を、データベースに蓄積されたログから、容易におこなわせることができる。
【００５７】
また、上記構成に加え、仮想マシンにＣＰＵが割り当てられた際に、ＣＰＵの性能モニタリング割込みベクタに、ＣＰＵが割り当てられた仮想マシン上のＯＳと同一の特権レベルを設定する構成としたため、問題発生時の影響をＣＰＵが割り当てられた仮想マシンに限定することができるうえ、セキュリティホールを防ぐことができる。
【００５８】
以上のことから、プロファイリング処理にかかる処理効率およびデータ精度の向上を図ることができるうえ、プロファイリング機能を有する仮想マシンシステムの構築・管理にかかる作業期間の短期化、およびコスト削減を図ることができる。
【００５９】
なお、本実施の形態で説明したプロファイリング方法は、あらかじめ用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネットなどのネットワークを介して配布することが可能な伝送媒体であってもよい。
【００６０】
（付記１）ハイパーバイザによりＣＰＵに割り当てられた仮想マシン上に実装されたプロファイリングプログラムのアドレスを取得させる取得工程と、
前記ＣＰＵの性能モニタリング割込みベクタに、前記取得工程によって取得されたプロファイリングプログラムのアドレスを設定させる設定工程と、
を前記ＣＰＵに実行させることを特徴とするプロファイリング支援プログラム。
【００６１】
（付記２）前記設定工程は、
前記ＣＰＵの性能モニタリング割込みベクタに、前記仮想マシン上に実装されたＯＳと同一の特権レベルを設定させることを特徴とする付記１に記載のプロファイリング支援プログラム。
【００６２】
（付記３）付記１または２に記載のプロファイリング支援プログラムを記録したコンピュータ読み取り可能な記録媒体。
【００６３】
（付記４）ハイパーバイザによりＣＰＵに割り当てられた仮想マシン上に実装されるプロファイリングプログラムであって、
当該プロファイリングプログラムのアドレスが、前記ＣＰＵの性能モニタリング割込みベクタに設定された場合に、前記仮想マシンのベンチマークスコアを取得させる取得工程と、
前記取得工程によって取得されたベンチマークスコアを、前記ハイパーバイザを介さずにメモリに保存させる保存工程と、
を前記ＣＰＵに実行させることを特徴とするプロファイリングプログラム。
【００６４】
（付記５）前記取得工程は、
少なくとも、前記ＣＰＵが実行中のプログラムの識別情報と、前記ＣＰＵの識別番号と、当該ベンチマークスコア取得時のタイムスタンプとを、前記仮想マシンのベンチマークスコアとして取得させることを特徴とする付記４に記載のプロファイリングプログラム。
【００６５】
（付記６）付記４または５に記載のプロファイリングプログラムを記録したコンピュータ読み取り可能な記録媒体。
【００６６】
（付記７）ハイパーバイザによりＣＰＵに割り当てられた仮想マシン上に実装されたプロファイリングプログラムのアドレスを取得する取得工程と、
前記ＣＰＵの性能モニタリング割込みベクタに、前記取得工程によって取得されたプロファイリングプログラムのアドレスを設定する設定工程と、
を含んだことを特徴とするプロファイリング方法。
【００６７】
（付記８）前記設定工程は、
前記ＣＰＵの性能モニタリング割込みベクタに、前記仮想マシン上に実装されたＯＳと同一の特権レベルを設定することを特徴とする付記７に記載のプロファイリング方法。
【００６８】
（付記９）前記仮想マシンのベンチマークスコアを取得するベンチマークスコア取得工程と、
前記ベンチマークスコア取得工程によって取得されたベンチマークスコアを、前記ハイパーバイザを介さずにメモリに保存する保存工程と、
をさらに含んだことを特徴とする付記７または８に記載のプロファイリング方法。
【００６９】
（付記１０）前記ベンチマークスコア取得工程は、
少なくとも、前記ＣＰＵが実行中のプログラムの識別情報と、前記ＣＰＵの識別番号と、当該ベンチマークスコア取得時のタイムスタンプとを、前記仮想マシンのベンチマークスコアとして取得することを特徴とする付記９に記載のプロファイリング方法。
【００７０】
（付記１１）ハイパーバイザによりＣＰＵに割り当てられた仮想マシン上に実装されたプロファイリングプログラムのアドレスを取得する取得手段と、
前記ＣＰＵの性能モニタリング割込みベクタに、前記取得手段によって取得されたプロファイリングプログラムのアドレスを設定する設定手段と、
を備えたことを特徴とするコンピュータ。
【００７１】
（付記１２）前記設定手段は、
前記ＣＰＵの性能モニタリング割込みベクタに、前記仮想マシン上に実装されたＯＳと同一の特権レベルを設定することを特徴とする付記１１に記載のコンピュータ。
【００７２】
（付記１３）前記仮想マシンのベンチマークスコアを取得するベンチマークスコア取得手段と、
前記ベンチマークスコア取得手段によって取得されたベンチマークスコアを、前記ハイパーバイザを介さずにメモリに保存する保存手段と、
をさらに備えたことを特徴とする付記１１または１２に記載のコンピュータ。
【００７３】
（付記１４）前記ベンチマークスコア取得手段は、
少なくとも、前記ＣＰＵが実行中のプログラムの識別情報と、前記ＣＰＵの識別番号と、当該ベンチマークスコア取得時のタイムスタンプとを、前記仮想マシンのベンチマークスコアとして取得することを特徴とする付記１３に記載のコンピュータ。
【産業上の利用可能性】
【００７４】
以上のように、本発明にかかるプロファイリング支援プログラム、該プログラムを記録した記録媒体、プロファイリングプログラム、該プログラムを記録した記録媒体、プロファイリング方法、およびコンピュータは、プロファイリング機能を備えた仮想マシンシステムに利用可能であり、特に、処理効率およびデータ精度が高く、低コストかつ短期間での構築が前提とされた仮想マシンシステムへの利用に適している。
【符号の説明】
【００７５】
１００  コンピュータ
２００  仮想マシンシステム
２１０  仮想マシン
２２０  仮想マシン
２３０  仮想マシン
２４０  ハイパーバイザ
２５０  プロファイリング支援機構
２６０  ログデータベース
３０１  記憶部
３０２  取得部
３０３  設定部
【図１】
2011150736.tif 000003
【図２】
2011150736.tif 000004
【図３】
2011150736.tif 000005
【図４】
2011150736.tif 000006
【図５】
2011150736.tif 000007
【図６】
2011150736.tif 000008
【図７】
2011150736.tif 000009
【図８】
2011150736.tif 000010
【図９】
2011150736.tif 000011
【図１０】
2011150736.tif 000012