JP6248608B2 - 情報処理装置、情報処理装置の性能測定方法および情報処理装置の性能測定プログラム - Google Patents

情報処理装置、情報処理装置の性能測定方法および情報処理装置の性能測定プログラム Download PDF

Info

Publication number
JP6248608B2
JP6248608B2 JP2013261450A JP2013261450A JP6248608B2 JP 6248608 B2 JP6248608 B2 JP 6248608B2 JP 2013261450 A JP2013261450 A JP 2013261450A JP 2013261450 A JP2013261450 A JP 2013261450A JP 6248608 B2 JP6248608 B2 JP 6248608B2
Authority
JP
Japan
Prior art keywords
value
count
event
information processing
processing apparatus
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2013261450A
Other languages
English (en)
Other versions
JP2015118534A (ja
Inventor
昌生 山本
昌生 山本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2013261450A priority Critical patent/JP6248608B2/ja
Publication of JP2015118534A publication Critical patent/JP2015118534A/ja
Application granted granted Critical
Publication of JP6248608B2 publication Critical patent/JP6248608B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Description

本発明は、情報処理装置、情報処理装置の性能測定方法および情報処理装置の性能測定プログラムに関する。
近年、仮想マシン上から、演算処理装置としてのプロセッサ(以下、CPU(Central Processing Unit)と呼ぶ)がアプリケーションプログラムを実行することにより発生するイベントを計測するパフォーマンスカウンタ(以下、VPMC(Virtual Performance Monitoring Counter)とする)の値を取得することにより、従来よりも正確な仮想マシンのCPU使用率の算出が可能になってきている。しかし、VPMCは他の仮想マシンのCPU上で発生するイベントを計測することが難しいため、仮想マシン上から物理マシン全体のCPU使用率を計測することが望まれている。
そこで仮想マシン上で物理マシン全体におけるCPU使用率を計測する方法として、仮想アドレスと論理アドレスとを対応させた情報を保管するTLB(Translation Look aside Buffer)のイベントのうち、仮想マシン切替えに伴い発生するイベント(TLBフラッシュ)を利用する技術(例えば、特許文献1)及び仮想マシンの休止時間を利用する技術が知られている(例えば、特許文献2)。
特開2010−152458号公報 特開2008−225655号公報
しかしながら、特許文献1の技術は、現在のCPUが仮想マシン切替えに伴うTLBのイベント発生を抑止する機能を搭載しているため、TLBにおけるイベント発生をCPU使用率の計測に利用することが難しいという問題があった。また特許文献2の技術は仮想マシンのOSのプログラムに修正が必要であるため、任意の仮想マシン環境で実行することが難しいという問題があった。
一つの側面では、本発明は、汎用性を確保しつつ仮想マシンに物理マシンのプロセッサの使用率を伝達できる情報処理装置、情報処理装置の性能測定方法および情報処理装置の性能測定プログラムを提供することにある。
一態様の情報処理装置は複数の仮想マシンを実行する演算処理装置を有する情報処理装置において、前記演算処理装置の動作に応じてインクリメントされるカウント値を特定するカウント特定部と、仮想マシンの退避時に前記カウント特定部が特定したカウント値と前記仮想マシンの復元時に前記カウント特定部で特定されたカウント値との差分であるカウント差分値を算出するカウント算出部と、所定の条件に基づき、前記仮想マシンがイベントを実行する際にインクリメントされるイベント値を特定するイベント特定部と、所定のイベント値と特定された前記イベント値との差分であるイベント差分値を算出するイベント算出部と、前記カウント差分値が前記イベント差分値を超えたかについて判定する判定部と、前記判定部の判定結果に基づき、前記イベント値と前記カウント差分値とを更新する更新部を有する情報処理装置。
一態様によれば、汎用性を確保しつつ仮想マシンに物理マシンのプロセッサの使用率を伝達することができる。
情報処理装置のハードウェア群を示すブロック図である。 情報処理装置を仮想化したソフトウェアを示す説明図である。 動作テーブルのレコードレイアウトの一例を示す説明図である。 CPUが行う処理の手順の一例を示すフローチャートである。 CPUが行う処理の手順の一例を示すフローチャートである。 実施の形態2に係る情報処理装置のハードウェア群を示すブロック図である。 CPUが実行するアドレス設定処理のソフトウェアを示す説明図である。 実施の形態2に係るCPUが行う処理の手順の一例を示すフローチャートである。 実施の形態2に係るCPUが行う処理の手順の一例を示すフローチャートである。 実施の形態2に係るCPUが行う処理の手順の一例を示すフローチャートである。 実施の形態3に係る情報処理装置のハードウェア群を示すブロック図である。 実施の形態3に係る情報処理装置の機能ブロック図である。
実施の形態1
図1は情報処理装置1のハードウェア群を示すブロック図である。情報処理装置1はVM(Virtual Machine)を動かすコンピュータであり、例えばパーソナルコンピュータ、サーバコンピュータ等である。図1に示す情報処理装置1は、演算処理装置としてのCPU(プロセッサ)11、記憶部12、RAM(Random Access Memory)13、入力部14、表示部15を備える。
CPU11は、バスを介してハードウェア各部と接続されている。CPU11は例えば一もしくは複数のCPU又はマルチコアCPU等を備える。CPU11は、記憶部12に記憶されたプログラム(性能測定プログラム)12Pに従いハードウェアの各部を制御する。CPU11はタイムスタンプカウンタ(以下、TSC(Time Stamp Counter)という)111及びパフォーマンスカウンタ(以下、PMC(Performance Monitoring Counter)という)112を含む。TSC111はCPU11のクロックサイクル毎に増加するレジスタであり、1クロックに付き1ずつ値が加算される値を出力する。すなわちTSC111はプロセッサの動作に係るクロックパルスでインクリメントされる。
PMC112はCPU11のイベントをPMC値(イベント値)として計測する。すなわちPMC112は所定の条件に従い仮想マシンでイベントが実行される際にインクリメントされる。所定の条件とはプログラム12Pで設定された条件であり、例えば1ms又は2ms毎に実行される割込み等である。イベントとは例えば、プログラム12P実行期間中に、CPU11が停止していなかった(すなわちビジー状態であった)サイクル、分岐命令、実行命令、バストトランザクション、または、分岐予測失敗等である。CPU11はPMC値が所定のPMCフル値を超えた場合、PMC値を所定のPMC設定値(所定のイベント値)に設定する。所定のPMCフル値とは予め記憶部12に記憶された値であり、例えば99クロックである。所定のPMC設定値とはPMCフル値から所定の周期(所定の周期とは例えば10クロックである)を減算した値に1を加算した値であり、例えば90クロックである。CPU11はPMC値が所定のPMCフル値を超える際に、後述する割込発生ハンドル222を実行する。
RAM13は例えばSRAM(Static Random Access Memory)、DRAM(Dynamic Random Access Memory)、フラッシュメモリ等である。RAM13は、記憶部としても機能し、CPU11による各種プログラムの実行時に発生する種々のデータを一時的に記憶する。
記憶部12は例えばハードディスクまたは大容量メモリ等である。記憶部12にはCPU11が処理を行う際に必要とする種々のデータ、プログラム12P、動作テーブルT1を格納する。プログラム12Pは仮想化環境を実現するためのプログラムであり、後述するハイパーバイザ上で仮想マシンを動作させる。
入力部14はマウス、キーボード又はタッチパネル等の入力デバイスであり、受け付けた操作情報をCPU11へ出力する。表示部15は表示装置(図示せず)に表示させる画像データを出力する。
図2は情報処理装置1を仮想化したソフトウェアを示す説明図である。図2に示すように、情報処理装置1は物理的なハードウェアを示す物理マシン上にハイパーバイザ22と呼ばれるソフトウェアにより物理マシンに含まれるCPU、メモリ等の資源を論理的に分割し、独立したVM(仮想マシン)が複数動作可能となっている。各VMは夫々のOS(Operating System)が動作し、夫々のOS上でアプリケーションプログラムが動作し、ユーザにサービスを提供している。CPU11はVMの切替をハイパーバイザ22上で行うことができる。
図2に示す例では、情報処理装置1には2つのVM1、VM2が動作している。VM1は、仮想CPU1(VCPU1)、仮想PMC1(VPMC1)を備える。VCPU1は仮想化され、VM1上で動作するCPUであり、VPMC1はVCPU1のイベントを計測するカウンタである。VM2はVCPU2、VPMC2を備える。VCPU2、VPMC2の機能及び動作はVCPU1、VPMC1と略同様であるため記載を省略する。なお、本実施の形態において2つのVMが動作している情報処理装置1について記載しているが、情報処理装置1は3つ以上のVMが動作してもよい。
ハイパーバイザ22はVPMC退避領域221、割込発生ハンドル222、残カウント値記憶領域223、TSC退避領域224を備える。VPMC退避領域221とはCPU11がVMの切替を行った場合、VPMCの値を退避させておくための領域である。VPMC退避領域221には夫々のVMに対応し、退避時のVPMCの値を示す退避PMC値が記憶されている。CPU11はVMの切替を行った場合、切替を行う前のVMに対応する退避PMC値をVMから取得する。CPU11は取得した退避PMC値をVPMC退避領域221に記憶する。CPU11は例えば、VM1からVM2に切替を行った場合、VPMC1の値をVPMC退避領域221に記憶する。
TSC退避領域224とはCPU11がVMの切替を行った場合、退避時のTSC111の値を示す退避TSC値(カウント値)を退避させておくための領域である。TSC退避領域224には夫々のVMに対応する退避TSC値が記憶されている。CPU11はVMの切替を行った場合、切替を行う前のVMに対応する退避TSC値をTSC111から取得する。CPU11は取得した退避TSC値をTSC退避領域224に記憶する。CPU11は例えば、VM1からVM2に切替を行った場合、TSC111の値をTSC退避領域224に記憶する。CPU11はVPMC値に退避PMC値を設定する。
残カウント値記憶領域223は以前に切替が行われたVMに対応する退避TSC値と復元時のTSC111の値との差分を示す残カウント値(カウント差分)を記憶させておくための領域である。CPU11は以前に切替が行われたVMに切替が行われた場合、復元時のTSC値を取得する。CPU11は以前に切替が行われたVMに対応する退避TSC値と復元時のTSC111の値との差分をとることにより残カウント値を算出する。CPU11は算出した残カウント値を残カウント値記憶領域223に記憶する。CPU11は例えば、VM1からVM2に切替を行った後、VM2からVM1に切替を行った場合、VM1に対応する退避TSC値と復元時におけるTSC111の値との差分をとることにより残カウント値を算出する。CPU11は算出した残カウント値を残カウント値記憶領域223に記憶する。
割込発生ハンドル222とは所定のPMC設定値とVPMC退避領域221に記憶された退避PMC値との差分を算出した残PMCカウント値(イベント差分)及び残カウント値に基づいて退避PMC値を設定するプログラムである。CPU11は算出した残カウント値を残カウント値記憶領域223に記憶した後、所定のPMC設定値と退避PMC値との差分を算出することにより残PMCカウント値を算出する。CPU11は残カウント値が残PMCカウント値を超えたか否かを判定する。CPU11は残カウント値が残PMCカウント値を超えたと判定した場合、残カウント値から残PMCカウント値を減算する。CPU11は以前に切替を行ったVMへ切替が行われた場合、残PMCカウント値を切替を行った先のVMのVPMC値に加算する。CPU11は切替を行った先のVMに対応する退避PMC値に所定のPMCフル値を設定する。CPU11は切替を行った先のVMに対応する退避PMC値をPMC設定値に更新する。
CPU11は残カウント値が残PMCカウント値を超えなかったと判定した場合、残カウント値と残PMCカウント値とが同一か否かを判定する。CPU11は残カウント値と残PMCカウント値とが同一でないと判定した場合、切替を行った先のVMに対応する退避PMC値に残カウント値を加算する。CPU11は残カウント値を0に設定する。
次にCPU11が割込発生ハンドル222により行われる処理を、図3を参照しつつ説明する。図3は動作テーブルT1のレコードレイアウトの一例を示す説明図である。動作テーブルT1はCPU11が割込発生ハンドル222を行った処理を示すテーブルである。動作テーブルT1は回数列、処理列、残カウント値列、退避PMC値列、残PMCカウント値列、VPMC値列を備える。図3では、説明のため図3A〜図3Fに動作テーブルT1に割込発生ハンドル222を行った処理前後の変化を示している。図3A、3B、3C、3D、3E、3Fは、CPU11が1回目、2回目、3回目、4回目、5回目、6回目に割込発生ハンドル222により行われた処理前後の変化をそれぞれ示す。
回数列にはCPU11が割込み発生ハンドル222により処理を行った回数が記憶される。処理列にはCPU11が割込み発生ハンドル222により処理を行う前又は後のいずれかが記憶される。処理列には例えば、「前」、「後」が記憶される。「前」はCPU11が割込み発生ハンドル222により処理を行う前であることを示す。「後」はCPU11が割込み発生ハンドル222により処理を行った後であることを示す。残カウント値列には残カウント値が記憶される。退避PMC値列には退避PMCカウント値が記憶される。残PMCカウント値列には残PMCカウント値が記憶される。VPMC値列にはVPMC値が記憶される。
図3Aに示すように、CPU11は例えば、VM1からVM2に切替が行われた後、VM2からVM1に切替が行われた場合、PMCフル値である99に1を加算し、VM2に対応する退避PMC値である97を減算することにより残PMCカウント値である3を算出する。CPU11は残カウント値である50が残PMCカウント値である3を超えたと判定する。CPU11は残カウント値である50から残PMCカウント値である3を減算し、残カウント値を47にする。CPU11はVM2に対応する退避PMC値にPMCフル値である99を設定する。CPU11はVPMC値である90に残PMCカウント値である3を加算する。CPU11はVM2に対応する退避PMC値を90に更新する。
図3Bに示すように、CPU11はPMCフル値である99に1を加算し、VM2に対応する退避PMC値である90を減算することにより残PMCカウント値である10を算出する。CPU11は残カウント値である47が残PMCカウント値である10を超えたと判定する。CPU11は残カウント値である47から残PMCカウント値である10を減算し、残カウント値を37にする。CPU11はVM2に対応する退避PMC値にPMCフル値である99を設定する。CPU11はVPMC値である93に残PMCカウント値である10を加算する。VPMC値がPMCフル値である99を超えたため、CPU11はVPMC値を90に更新し、VPMC値を93に設定する。CPU11はVM2に対応する退避PMC値を90に更新する。
図3Cに示すように、CPU11はPMCフル値である99に1を加算し、VM2に対応する退避PMC値である90を減算することにより残PMCカウント値である10を算出する。CPU11は残カウント値である37が残PMCカウント値である10を超えたと判定する。CPU11は残カウント値である37から残PMCカウント値である10を減算し、残カウント値を27にする。CPU11はVM2に対応する退避PMC値にPMCフル値である99を設定する。CPU11はVPMC値である93に残PMCカウント値である10を加算する。VPMC値がPMCフル値である99を超えたため、CPU11はVPMC値を90に更新し、VPMC値を93に設定する。CPU11はVM2に対応する退避PMC値を90に更新する。
図3Dに示すように、CPU11はPMCフル値である99に1を加算し、VM2に対応する退避PMC値である90を減算することにより残PMCカウント値である10を算出する。CPU11は残カウント値である27が残PMCカウント値である10を超えたと判定する。CPU11は残カウント値である27から残PMCカウント値である10を減算し、残カウント値を17にする。CPU11はVM2に対応する退避PMC値にPMCフル値である99を設定する。CPU11はVPMC値である93に残PMCカウント値である10を加算する。VPMC値がPMCフル値である99を超えたため、CPU11はVPMC値を90に更新し、VPMC値を93に設定する。CPU11はVM2に対応する退避PMC値を90に更新する。
図3Eに示すように、CPU11はPMCフル値である99に1を加算し、VM2に対応する退避PMC値である90を減算することにより残PMCカウント値である10を算出する。CPU11は残カウント値である17が残PMCカウント値である10を超えたと判定する。CPU11は残カウント値である17から残PMCカウント値である10を減算し、残カウント値を7にする。CPU11はVM2に対応する退避PMC値にPMCフル値である99を設定する。CPU11はVPMC値である93に残PMCカウント値である10を加算する。VPMC値がPMCフル値である99を超えたため、CPU11はVPMC値を90に更新し、VPMC値を93に設定する。CPU11はVM2に対応する退避PMC値を90に更新する。
図3Fに示すように、CPU11はPMCフル値である99に1を加算し、VM2に対応する退避PMC値である90を減算することにより残PMCカウント値である10を算出する。CPU11は残カウント値である7が残PMCカウント値である10を超えなかったと判定し、かつ残カウント値である7と残PMCカウント値である10とが同一でないと判定する。CPU11はVM2に対応する退避PMC値である90に残カウント値7を加算する。CPU11はVPMC値である93に残PMCカウント値である7を加算する。VPMC値がPMCフル値である99を超えたため、CPU11はVPMC値を90に更新する。CPU11は残カウント値を0に設定する。
次に、情報処理装置1の動作について説明する。図4〜図5はCPU11が行う処理の手順の一例を示すフローチャートである。CPU11は記憶部12を参照し、PMCフル値及び周期の初期設定を含む初期化処理を行う(ステップS1)。なお、PMCフル値及び周期は入力部14により入力された値を用いてもよい。CPU11はPMC設定値をPMCフル値から周期を減算した値に1を加算した値に設定する(ステップS2)。
CPU11はVMの切替が行われたか否かを判定する(ステップS3)。CPU11はVMの切替が行われなかったと判定した場合(ステップS3:NO)、処理をステップS3に戻し、VMの切替が行われるまで待機する。CPU11はVMの切替が行われたと判定した場合(ステップS3:YES)、切替を行う前のVMに対応する退避PMC値をVMから取得(特定)する(ステップS4)。CPU11は取得した退避PMC値をVPMC退避領域221に記憶する(ステップS5)。
CPU11は切替を行う前のVMに対応する退避TSC値をTSC111から取得(特定)する(ステップS6)。CPU11は取得した退避TSC値をTSC退避領域224に記憶する(ステップS7)。CPU11は以前に切替が行われたVMであるか否かを判定する(ステップS8)。CPU11は以前に切替が行われたVMでないと判定した場合(ステップS8:NO)、処理をステップS3に移し、切替が行われるまで待機する。CPU11は以前に切替が行われたVMであると判定した場合(ステップS8:YES)、復元時のTSC値を取得(特定)する(ステップS9)。以前に切替が行われたVMに対応する退避TSC値と復元時のTSC111の値との差分をとることにより残カウント値を算出する(ステップS10)。CPU11は算出した残カウント値を残カウント値記憶領域223に記憶する(ステップS11)。
CPU11はVPMC値に退避PMC値を設定する(ステップS12)。CPU11は所定のPMC設定値からVPMC退避領域221に記憶された退避PMC値を減算することにより残PMCカウント値を算出する(ステップS13)。CPU11は残カウント値が残PMCカウント値を超えたか否かを判定する(ステップS14)。CPU11は残カウント値が残PMCカウント値を超えたと判定した場合(ステップS14:YES)、残カウント値から残PMCカウント値を減算する(ステップS15)。
CPU11は復元時のVMのVPMC値に残PMCカウント値を加算する(ステップS16)。CPU11は切替を行った先のVMに対応する退避PMC値を所定のPMCフル値に設定する(ステップS17)。CPU11は復元時のVMに対応する退避PMC値をPMC設定値に更新し(ステップS18)、処理をステップS13に移す。
CPU11は残カウント値が残PMCカウント値を超えなかったと判定した場合(ステップS14:NO)、残カウント値と残PMCカウント値とが同一か否かを判定する(ステップS19)。CPU11は残カウント値と残PMCカウント値とが同一であると判定した場合(ステップS19:YES)、処理を終了する。CPU11は残カウント値と残PMCカウント値とが同一でないと判定した場合(ステップS19:NO)、復元時のVMに対応する退避PMC値に残カウント値を加算する(ステップS20)。CPU11は復元時のVMのVPMC値に残カウント値を加算する(ステップS21)。CPU11は残カウント値を0に設定し(ステップS22)、処理を終了する。
なお、本実施形態ではCPU11は退避TSC値、退避PMC値を記憶したが、時刻等により退避TSC値、退避PMC値を推定してもよい。
本実施の形態では、CPU11がVPMC値に不足したカウントを補うことができる。
本実施の形態では、CPU11が汎用性を確保しつつVMにCPU11の使用率を伝達することができる。
実施の形態2
図6は実施の形態2に係る情報処理装置1のハードウェア群を示すブロック図である。図7はCPU11が実行するアドレス設定処理のソフトウェアを示す説明図である。以下、特に説明する構成、作用以外の構成及び作用は実施の形態1と同等であり、簡潔のため記載を省略する。図6に示すように情報処理装置1のRAM13はコンテキスト退避領域131を備える。図7に示すように情報処理装置1はハイパーバイザ22に設けられたアドレス退避領域(記憶領域)225、アドレス設定ハンドル226とを備える。コンテキスト退避領域131はRAM13においてVM1、VM2のVMアドレス値(アドレス値)を退避させておくための領域である。VMアドレス値とはVMの各種レジスタの状態を表すアドレス値であり、例えばVMに関するページテーブルのアドレス値、VMにおいて実行される命令アドレス値等である。CPU11はVM1、VM2の切替時にVMアドレス値をコンテキスト退避領域131に記憶させる。
アドレス退避領域225はハイパーバイザ22においてVM1、VM2のVMアドレス値を退避させておくための領域である。CPU11はコンテキスト退避領域131に記憶させたVMアドレス値をアドレス退避領域225に記憶させる。
アドレス設定ハンドル226はVCPUが停止していたことを示すアイドル関数をコンテキスト退避領域131に設定するプログラムである。CPU11は残PMCカウント値に対応するアイドル関数をコンテキスト退避領域131に記憶する。CPU11は割込発生ハンドル222による処理が行われる前にVMアドレス値をアドレス退避領域225に記憶させる。残PMCカウント値に対応するアイドル関数とはVMの退避時から復元時までVCPUが停止していたことを示すアイドル関数(データ)である。CPU11は割込発生ハンドル222による処理が行われた後、アドレス退避領域225に記憶されたVMアドレス値をコンテキスト退避領域131に記憶する。
次に、実施の形態2に係る情報処理システムの動作について説明する。図8〜10は実施の形態2に係るCPUが行う処理の手順の一例を示すフローチャートである。ステップS1〜22の処理は上述の実施の形態1に係るCPUが行う処理の手順の一例と同様であるので、簡潔のため説明を省略する。CPU11はステップS3の処理を終了した後、VMアドレス値をRAM13のコンテキスト退避領域131に記憶し(ステップS30)、処理をステップS4に移す。
CPU11はステップS13の処理を終了した後、アイドル関数をコンテキスト退避領域131に記憶する(ステップS31)。CPU11はVMアドレス値をアドレス退避領域225に記憶し(ステップS32)、処理をステップS14に移す。CPU11はステップS19がYESであった場合又はステップS22の処理を終了した後、VMアドレス値をコンテキスト退避領域131に記憶する(ステップS33)。CPU11はコンテキスト退避領域131に記憶されたVMアドレス値及びアイドル関数を仮想マシンに出力し(ステップS34)、処理を終了する。
本実施の形態では、CPU11がVMに停止していたことを伝達することができる。
本実施の形態では、CPU11がVMの状態を取得することができる。
実施の形態3
以下本発明の実施の形態3をその実施の形態を示す図面に基づいて詳述する。図11は実施の形態3に係る情報処理装置1のハードウェア群を示すブロック図である。以下、特に説明する構成、作用以外の構成及び作用は実施の形態2と同等であり、簡潔のため記載を省略する。
情報処理装置1を動作させるためのプログラムは、ディスクドライブ等の読み取り部16にCD−ROM、DVD(Digital Versatile Disc)ディスク、メモリーカード、又はUSB(Universal Serial Bus)メモリ等の可搬型記録媒体16Aを読み取らせて記憶部12に記憶してもよい。また当該プログラムを記憶したフラッシュメモリ等の半導体メモリ16Bを情報処理装置1内に実装しても良い。通信部17は、例えば無線LANカード又は携帯電話用通信モジュール等であり、通信網Nを介して他のサーバコンピュータに接続されている。当該プログラムは、通信部17によりインターネット等の通信網Nを介して接続される他のサーバコンピュータ(図示せず)からダウンロードすることも可能である。以下にその内容を説明する。
図11に示す情報処理装置1は、上述した各種ソフトウェア処理を実行するプログラムを、可搬型記録媒体16A又は半導体メモリ16Bから読み取り、あるいは、通信網Nを介して他のサーバコンピュータ(図示せず)からダウンロードする。当該プログラムは、プログラム12Pとしてインストールされ、記憶部12にロードして実行される。これより上述した情報処理装置1として機能する。
図12は実施の形態3に係る情報処理装置1の機能ブロック図である。CPU11がプログラム12Pを実行することにより、情報処理装置1は以下のように動作する。カウント特定部11AはCPU11の動作に係るクロックパルスでインクリメントされるカウント値を特定する。カウント算出部11Bは仮想マシンの退避時にカウント特定部11Aで特定されたカウント値と仮想マシンの復元時にカウント特定部11Aで特定されたカウント値とのカウント差分を算出する。イベント特定部11Cは所定の条件に従い前記仮想マシンでイベントが実行される際にインクリメントされるイベント値を特定する。イベント算出部11Dは所定のイベント値と前記仮想マシンの退避時に前記イベント特定部11Cで特定されたイベント値とのイベント差分を算出する。判定部11Eは前記カウント算出部11Bで算出されたカウント差分が前記イベント算出部11Dで算出されたイベント差分を超えたか否かを判定する。更新部11Fは前記判定部11Eが前記カウント差分が前記イベント差分を超えたと判定した場合、前記イベント値及びイベント差分に基づいて前記イベント値及びカウント差分を更新する。値更新部11Gは前記判定部11Eが前記カウント差分が前記イベント差分を超えなかったと判定した場合、前記イベント値及びカウント差分に基づいて前記イベント値及びカウント差分を更新する。
出力部11Hは前記仮想マシンの退避時から復元時まで前記仮想マシンのVCPUが停止していたことを示すデータを仮想マシンに出力する。アドレス記憶部11Iは前記仮想マシンの退避時における前記仮想マシンのレジスタの状態を示すアドレス値を物理マシンに設けられたアドレス退避領域225に記憶させる。アドレス出力部11Jは前記仮想マシンの復元時に、アドレス記憶部11Iに記憶されたアドレス値を前記仮想マシンに出力する。
以上の実施の形態に関し、更に以下の付記を開示する。
(付記1)
複数の仮想マシンを実行する演算処理装置を有する情報処理装置において、
前記演算処理装置の動作に応じてインクリメントされるカウント値を特定するカウント特定部と、
仮想マシンの退避時に前記カウント特定部が特定したカウント値と前記仮想マシンの復元時に前記カウント特定部で特定されたカウント値との差分であるカウント差分値を算出するカウント算出部と、
所定の条件に基づき、前記仮想マシンがイベントを実行する際にインクリメントされるイベント値を特定するイベント特定部と、
所定のイベント値と特定された前記イベント値との差分であるイベント差分値を算出するイベント算出部と、
前記カウント差分値が前記イベント差分値を超えたかについて判定する判定部と、
前記判定部の判定結果に基づき、前記イベント値と前記カウント差分値とを更新する更新部を有する情報処理装置。
(付記2)
前記情報処理装置はさらに、
前記仮想マシンの退避時から前記仮想マシンの復元時まで、前記仮想マシンに対応する演算処理装置が停止していたことを示す情報を前記仮想マシンに出力する出力部
を有する付記1記載の情報処理装置。
(付記3)
前記情報処理装置はさらに、
前記仮想マシンの退避時における前記仮想マシンのレジスタの状態を示すアドレス値を、前記仮想マシンに対応する情報処理装置が管理する記憶領域に記憶させるアドレス記憶部と、
前記仮想マシンの復元時に、前記アドレス記憶部に記憶されたアドレス値を前記仮想マシンに出力するアドレス出力部と
を有する付記1又は付記2に記載の情報処理装置。
(付記4)
複数の仮想マシンを実行する演算処理装置を有する情報処理装置の性能測定方法において、
前記情報処理装置が有するカウント特定部が、前記演算処理装置の動作に応じてインクリメントされるカウント値を特定し、
前記情報処理装置が有するカウント算出部が、仮想マシンの退避時に前記カウント特定部が特定したカウント値と前記仮想マシンの復元時に前記カウント特定部で特定されたカウント値との差分であるカウント差分値を算出し、
前記情報処理装置が有するイベント特定部が、所定の条件に基づき、前記仮想マシンがイベントを実行する際にインクリメントされるイベント値を特定し、
前記情報処理装置が有するイベント算出部が、所定のイベント値と特定された前記イベント値との差分であるイベント差分値を算出し、
前記情報処理装置が有する判定部が、前記カウント差分値が前記イベント差分値を超えたかについて判定し、
前記情報処理装置が有する更新部が、前記判定部の判定結果に基づき、前記イベント値と前記カウント差分値とを更新する情報処理装置の性能測定方法。
(付記5)
複数の仮想マシンを実行する演算処理装置を有する情報処理装置の性能測定プログラムにおいて、
前記情報処理装置が有するカウント特定部に、前記演算処理装置の動作に応じてインクリメントされるカウント値を特定させ、
前記情報処理装置が有するカウント算出部に、仮想マシンの退避時に前記カウント特定部が特定したカウント値と前記仮想マシンの復元時に前記カウント特定部で特定されたカウント値との差分であるカウント差分値を算出させ、
前記情報処理装置が有するイベント特定部に、所定の条件に基づき、前記仮想マシンがイベントを実行する際にインクリメントされるイベント値を特定させ、
前記情報処理装置が有するイベント算出部に、所定のイベント値と特定された前記イベント値との差分であるイベント差分値を算出させ、
前記情報処理装置が有する判定部に、前記カウント差分値が前記イベント差分値を超えたかについて判定させ、
前記情報処理装置が有する更新部に、前記判定部の判定結果に基づき、前記イベント値と前記カウント差分値とを更新させる情報処理装置の性能測定プログラム。
(付記6)
前記判定部が前記カウント差分が前記イベント差分を超えなかったと判定した場合、前記イベント値及びカウント差分に基づいて前記イベント値及びカウント差分を更新する値更新部をさらに備える情報処理装置。
(付記7)
前記更新部は、前記カウント差分を、前記カウント差分から前記イベント差分を減算した値に更新し、前記イベント値を、前記イベント値から前記イベント差分を加算した値に更新し、前記値更新部は、イベント値を、該イベント値からカウント差分を加算した値に更新し、カウント差分を0に更新する付記1に記載の情報処理装置。
今回開示された実施の形態はすべての点で例示であって、制限的なものではないと考えられるべきである。本発明の範囲は、上記した意味ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
11 CPU
12 記憶部
12P プログラム(性能測定プログラム)
13 RAM
14 入力部
15 表示部
22 ハイパーバイザ
131 コンテキスト退避領域
221 VPMC退避領域
222 割込発生ハンドル
223 残カウント値記憶領域
224 TSC退避領域
225 アドレス退避領域
226 アドレス設定ハンドル
T1 動作テーブル
11A カウント特定部
11B カウント算出部
11C イベント特定部
11D イベント算出部
11E 判定部
11F 更新部
11G 値更新部
11H 出力部
11I アドレス記憶部
11J アドレス出力部

Claims (5)

  1. 複数の仮想マシンを実行する演算処理装置を有する情報処理装置において、
    前記演算処理装置の動作に応じてインクリメントされるカウント値を特定するカウント特定部と、
    仮想マシンの退避時に前記カウント特定部が特定したカウント値と前記仮想マシンの復元時に前記カウント特定部で特定されたカウント値との差分であるカウント差分値を算出するカウント算出部と、
    所定の条件に基づき、前記仮想マシンがイベントを実行する際にインクリメントされるイベント値を特定するイベント特定部と、
    所定のイベント値と特定された前記イベント値との差分であるイベント差分値を算出するイベント算出部と、
    前記カウント差分値が前記イベント差分値を超えたかについて判定する判定部と、
    前記判定部の判定結果に基づき、前記イベント値と前記カウント差分値とを更新する更新部を有する情報処理装置。
  2. 前記情報処理装置はさらに、
    前記仮想マシンの退避時から前記仮想マシンの復元時まで、前記仮想マシンに対応する演算処理装置が停止していたことを示す情報を前記仮想マシンに出力する出力部
    を有する請求項1に記載の情報処理装置。
  3. 前記情報処理装置はさらに、
    前記仮想マシンの退避時における前記仮想マシンのレジスタの状態を示すアドレス値を、前記仮想マシンに対応する情報処理装置が管理する記憶領域に記憶させるアドレス記憶部と、
    前記仮想マシンの復元時に、前記アドレス記憶部に記憶されたアドレス値を前記仮想マシンに出力するアドレス出力部と
    を有する請求項1又は請求項2に記載の情報処理装置。
  4. 複数の仮想マシンを実行する演算処理装置を有する情報処理装置の性能測定方法において、
    前記情報処理装置が有するカウント特定部が、前記演算処理装置の動作に応じてインクリメントされるカウント値を特定し、
    前記情報処理装置が有するカウント算出部が、仮想マシンの退避時に前記カウント特定部が特定したカウント値と前記仮想マシンの復元時に前記カウント特定部で特定されたカウント値との差分であるカウント差分値を算出し、
    前記情報処理装置が有するイベント特定部が、所定の条件に基づき、前記仮想マシンがイベントを実行する際にインクリメントされるイベント値を特定し、
    前記情報処理装置が有するイベント算出部が、所定のイベント値と特定された前記イベント値との差分であるイベント差分値を算出し、
    前記情報処理装置が有する判定部が、前記カウント差分値が前記イベント差分値を超えたかについて判定し、
    前記情報処理装置が有する更新部が、前記判定部の判定結果に基づき、前記イベント値と前記カウント差分値とを更新する情報処理装置の性能測定方法。
  5. 複数の仮想マシンを実行する演算処理装置を有する情報処理装置の性能測定プログラムにおいて、
    前記情報処理装置が有するカウント特定部に、前記演算処理装置の動作に応じてインクリメントされるカウント値を特定させ、
    前記情報処理装置が有するカウント算出部に、仮想マシンの退避時に前記カウント特定部が特定したカウント値と前記仮想マシンの復元時に前記カウント特定部で特定されたカウント値との差分であるカウント差分値を算出させ、
    前記情報処理装置が有するイベント特定部に、所定の条件に基づき、前記仮想マシンがイベントを実行する際にインクリメントされるイベント値を特定させ、
    前記情報処理装置が有するイベント算出部に、所定のイベント値と特定された前記イベント値との差分であるイベント差分値を算出させ、
    前記情報処理装置が有する判定部に、前記カウント差分値が前記イベント差分値を超えたかについて判定させ、
    前記情報処理装置が有する更新部に、前記判定部の判定結果に基づき、前記イベント値と前記カウント差分値とを更新させる情報処理装置の性能測定プログラム。
JP2013261450A 2013-12-18 2013-12-18 情報処理装置、情報処理装置の性能測定方法および情報処理装置の性能測定プログラム Expired - Fee Related JP6248608B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013261450A JP6248608B2 (ja) 2013-12-18 2013-12-18 情報処理装置、情報処理装置の性能測定方法および情報処理装置の性能測定プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013261450A JP6248608B2 (ja) 2013-12-18 2013-12-18 情報処理装置、情報処理装置の性能測定方法および情報処理装置の性能測定プログラム

Publications (2)

Publication Number Publication Date
JP2015118534A JP2015118534A (ja) 2015-06-25
JP6248608B2 true JP6248608B2 (ja) 2017-12-20

Family

ID=53531201

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013261450A Expired - Fee Related JP6248608B2 (ja) 2013-12-18 2013-12-18 情報処理装置、情報処理装置の性能測定方法および情報処理装置の性能測定プログラム

Country Status (1)

Country Link
JP (1) JP6248608B2 (ja)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5353227B2 (ja) * 2008-12-24 2013-11-27 富士通株式会社 性能測定プログラム及び性能測定方法並びに性能測定機能を有する情報処理装置。
JP5621613B2 (ja) * 2011-01-19 2014-11-12 富士通株式会社 情報処理装置、制御方法及びプログラム

Also Published As

Publication number Publication date
JP2015118534A (ja) 2015-06-25

Similar Documents

Publication Publication Date Title
Sahni et al. A hybrid approach to live migration of virtual machines
EP2726977B1 (en) Virtual machine image analysis
JP5852677B2 (ja) レジスタ・マッピング方法
TWI499979B (zh) 以交換式記憶體為手段來加速虛擬化或仿真化之方法、系統、及電腦可讀取媒體
US10877793B2 (en) Extending the base address register by modifying the number of read-only bits associated with a device to be presented to a guest operating system
Lim et al. NEVE: Nested virtualization extensions for ARM
US11487523B2 (en) Updating machine emulator
US8490089B2 (en) Guest timer facility to improve management in a virtualized processing system
US20180024855A1 (en) Live migration of virtual machines from/to host computers with graphics processors
CN107003899B (zh) 一种中断响应方法、装置及基站
JP5353227B2 (ja) 性能測定プログラム及び性能測定方法並びに性能測定機能を有する情報処理装置。
US9092255B2 (en) Multi-core processor system, computer product, and control method for interrupt execution
TWI467373B (zh) 以交換式記憶體為手段來加速虛擬化及仿真化
CN107368353B (zh) 一种实现虚拟机内存热添加的方法和装置
Dall et al. Optimizing the Design and Implementation of the Linux {ARM} Hypervisor
CN103383650A (zh) 管理方法及其系统
WO2017112126A1 (en) Starting application processors of a virtual machine
CN101443738A (zh) 提取cpu时间工具
EP3719645B1 (en) Extension application mechanisms through intra-process operation systems
JP2015118534A (ja) 情報処理装置、情報処理装置の性能測定方法および情報処理装置の性能測定プログラム
CN115437751B (zh) 虚拟机的运行方法、装置、设备及存储介质
CN115080183B (zh) 一种vgpu加速方法、设备及存储介质
JP2907958B2 (ja) 時刻機構制御方法
KR100928866B1 (ko) 가상 환경에서의 어플리케이션 실행 장치 및 방법
US9336052B2 (en) Program executing method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160905

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170704

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170630

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20171024

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171106

R150 Certificate of patent or registration of utility model

Ref document number: 6248608

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees