JP5434616B2 - 仮想計算機、仮想計算機モニタ、および計算機の制御方法 - Google Patents
仮想計算機、仮想計算機モニタ、および計算機の制御方法 Download PDFInfo
- Publication number
- JP5434616B2 JP5434616B2 JP2010007426A JP2010007426A JP5434616B2 JP 5434616 B2 JP5434616 B2 JP 5434616B2 JP 2010007426 A JP2010007426 A JP 2010007426A JP 2010007426 A JP2010007426 A JP 2010007426A JP 5434616 B2 JP5434616 B2 JP 5434616B2
- Authority
- JP
- Japan
- Prior art keywords
- guest
- timer
- input
- virtual machine
- virtual
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06J—HYBRID COMPUTING ARRANGEMENTS
- G06J1/00—Hybrid computing arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45579—I/O management, e.g. providing access to device drivers or storage
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Automation & Control Theory (AREA)
- Evolutionary Computation (AREA)
- Fuzzy Systems (AREA)
- Debugging And Monitoring (AREA)
Description
計算機モニタと呼ばれるコンピュータプログラムを搭載したシステムが知られている。仮想計算機では、仮想計算機モニタ上で、1または複数のゲストOSが稼働する。さらに、ゲストOS上で、アプリケーションプログラムが稼働する。仮想計算機は、仮想マシン、仮想コンピュータ、VM(Virtual Machine)等とも呼ばれる。
体を制御する。例えば、仮想計算機モニタは、複数のゲストOSが稼働している場合に、ゲストOSのディスパッチ処理、すなわちCPUを割り当てるゲストOSを決定し、ゲストOSを起動する処理を実行する。また、仮想計算機モニタは、各ゲストOSが実行する特権命令のエミュレーションを実行する。例えば、ゲストOSがユーザ状態で特権命令の実行を要求すると、仮想計算機モニタは、例外処理によって実行要求された特権命令をインターセプトし、実行要求された特権命令を模擬する処理を実行する。
る。ただし、ゲストOSは、ハイパーバイザコールにより、入出力命令を仮想計算機モニタに引き渡す場合もある。いずれにしても、アプリケーションプログラムの入出力処理の要求から、物理デバイスに対する入出力処理に至るまでの仮想計算機の動作は複雑である。
ムの実行環境、例えばレジスタセットを含むリソースは、仮想CPUと呼ばれる。
、ドライバOSやホストOSが実I/O制御を行うようにしてもよい。以下、ゲスト仮想計算機310を単に仮想計算機310ともいう。
延長でカーネル状態で動作した時間を示すシステム時間(sys時間)や、入出力待ちに要し
た時間を示す入出力待ち時間(iowait時間)等が含まれる。統計情報は、アプリケーションプログラムやミドルウェアのパフォーマンスチューニング等にも役立てられる。
スに対するI/O発行がなされ、物理デバイスに対する実I/O処理がなされる。そして、カーネル状態での処理は、入出力待ち(iowait-A)となる。図4Aでは、アプリケーションからのI/O要求によりカーネル状態での処理(sys-A1)が開始し、物理デバイスに対するI/O発行により、カーネル状態での処理(sys-A1)が入出力待ちとなる。入出力
待ちの間(iowait-A)、物理OSのカーネル状態での処理は、CPU使用権を奪われる。なお、図4Aで、カーネル状態の処理が入力待ちの区間は、物理デバイスの行のiowait-Aに対応するカーネルの行の空白区間で示されるが、iowait-Aに対応するカーネルの行の空白区間も、” iowait-A”で参照する。
が実行される。さらに、カーネル状態での処理(sys-A2)の終了によって、ユーザ状態
での処理(user-A2)が実行されている。図4Aで、カーネル状態での処理(sys-A1)、
物理デバイスに対する入出力待ち(iowait-A)、およびカーネル状態での処理(sys-A2)での時間がそれぞれ、TSA1、TWA、TSA2であったと仮定する。
求が発生し、ゲストOS310Bのカーネル状態での処理(sys-B11)が実行されている
。カーネル状態での処理(sys-B11)は、例えば、フロントエンドドライバ310Aの処
理を含む。
理の要求がなされる。仮想デバイスに対する入出力処理は、仮想計算機モニタ301上での物理デバイスに対する実I/Oドライバによる処理に変換され、実I/Oドライバによる処理(sys-B21)が実行されている。そして、実I/Oドライバでの処理(sys-B21)において、物理デバイスに対するI/O発行がなされ、実I/Oドライバでの処理(sys-B21)は、物理デバイスに対する入出力待ちとなる(iowait-B2)。図4Bでは、アプリケーションからのI/O要求によりゲストOS310Bのカーネル状態での処理(sys-A1)が開始する。そして、仮想デバイスに対する入出力処理が変換された実I/Oドライバによる処理(sys-B21)において、物理デバイスに対するI/O発行がなされる。図4Bの場
合、ゲストOS310Bのカーネル状態での処理は、アプリケーションからのI/O要求から、仮想デバイスに対する入出力処理の要求までの間であり、図4Aの物理OSの場合のカーネル状態の処理に対応する。したがって、図4Aのsys-A1の部分の処理と、図4Bのsys-B11の処理に同一のハッチングを付している。
って、ユーザ状態でのアプリケーションの処理(user-B2)に制御が戻っている。図4B
において、ゲストOS310Bでのカーネル状態での処理(sys-B12)は、図4Aのカー
ネル状態での処理(sys-A2)に対応する。したがって、図4Aのsys-A2の部分の処理と、図4Bのsys-B12の処理に同一のハッチングを付している。
において、仮想デバイスに対する仮想I/O処理(iowait-B1)が起動されてから終了す
るまでの間を仮想デバイスに対する入出力待ちの時間(iowait時間)として認識する。
バイスに対する入出力待ち(iowait-B1)の時間、およびカーネル状態での処理(sys-B12
)の処理時間がそれぞれ、TSB11、TWB1、TSB12であったと仮定する。
と仮定する。
イスへの処理(iowait-B1)が実行される間、入出力待ちの状態となる。ゲストOS31
0Bのカーネル状態での処理(sys-B11)が入出力待ちの間(仮想デバイスがiowait-B1の区間)、ゲストOS310Bは、スケジューラ306のスケジューリングによってCPU使用権を奪われる。
10のシステム時間(sys時間)として計上される。なお、入出力待ち(仮想デバイスがiowait-B1の区間)の終了後、ゲストOS310Bのカーネル状態から、ユーザ状態に復帰するまでの時間(sys-B12の処理によるTSB12の時間)も、ゲストOS310のシス
テム時間(sys時間)として計上される。
る入出力待ちの間(iowait-B1)、仮想計算機モニタ301では、実I/Oドライバによ
る処理(sys-B21)が実行され、実I/Oドライバによる処理(sys-B21)から物理デバイスにI/O発行がされる。そして、物理デバイスに対するI/O発行の後、実I/Oドライバによる処理(sys-B21)は、入出力待ちとなる。
WB1は、物理デバイスに対する入出力待ち(iowait-B2)の時間TWB2に加えて、入
出力待ちの前後の実I/Oドライバの処理(sys-B21およびsys-B22)の時間TSB21とTSB22を加えた時間となる。
22が、図4Aの時間TSA2に該当する。そして、物理デバイスに対する入出力待ち(iowait-B2)の時間TWB2が、図4Aの時間TWAに該当する。したがって、仮想計算
機モニタ301における実I/Oドライバの処理(sys-B21,sys-B22)の時間TSB21
+TSB22と、物理デバイスに対する入出力待ち(iowait-B2)の時間TWB2との関
係は、物理OSの場合にほぼ対応する。すなわち、物理OSの場合におけるカーネル状態での処理 (sys-A1,sys-A2)の時間TSA1+TSA2と、物理デバイスに対する入出力待ち(iowait-A)の時間TWAとの関係が、仮想計算機モニタ301における時間TSB2
1+TSB22と、時間TWB2との関係に対応する。
とを含む。したがって、仮想デバイスに対する入出力待ち(iowait-B1)の時間TWB1
は、物理デバイスに対する入出力待ち(iowait-B2)の時間TWB2によりも、実I/O
ドライバの処理(sys-B21,sys-B22)の時間TSB21+TSB22だけ長くなる。
1との関係は、物理計算機上で動作する物理OSに相当する仮想計算機モニタ301での時間TSA1+TSA2と時間TWAとの関係とは、異なる。
1+TSA2と比較して、「ゲストOSの場合」の文字列が付された行でのsys-B11,sys-B12の処理の時間TSB11+TSB12は短くなっている。一方、「物理OSの場合」
という文字列が付された行でのiowait-Aの時間TWAと比較して、「ゲストOSの場合」の文字列が付された行でのiowait-Bの時間TWB1は長くなっている。したがって、ゲストOS310Bによる統計情報は、パフォーマンスチューニングにおける手がかりとして、信頼性が低下する。
sys-B12, sys-B21, iowait-B2, sys-B22で示される処理は、図4Bの場合と同様である
。ただし、実施例1においては、仮想計算機モニタがゲストOSにタイマ割り込みを通知するタイミングを調節する。タイミング調整によって、ゲストOSでのタイマの刻みと、仮想計算機モニタでのタイマの刻みとが一致しない状態が生じ得る。そこで、図5では、C2に、実施例1に係るゲストOSでのタイマの刻みを示すとともに、C3に、実施例1に係る仮想計算機モニタでのタイマの刻みを示している。ここで、ゲストOSでのタイマの刻みは、ゲストOSが観測するタイマ割り込みの時刻として示される。また、仮想計算機モニタでのタイマの刻みは、仮想計算機モニタが観測するタイマ割り込みの時刻として示される。
対する比率をR1とする。また、仮想計算機モニタでのカーネル状態での処理(sys-B21,
sys-B22)の時間TSB21+TSB22におけるタイマ割り込みの発生回数の、物理デバイスに対する入出力待ち(iowait-B2)の時間TWB2におけるタイマ割り込みの発生
回数に対する比率をR2とする。図5に示す実施例1では、R1とR2とが近くなるように、仮想タイマの割り込みの発生タイミングを修正する。
(a)C1の破線本数とC2の破線本数とは一致させたままにしておく。そして、
(b)C21矢印で示されるゲストOSのカーネル状態での処理(sys-B11,sys-B12)の
期間内のタイマ密度とC3欄の仮想計算機モニタでのカーネル状態での処理(sys-B21,sys-B22)の期間内のタイマ密度とを極力近づけるように修正する。かつ、
(c)C2欄の仮想デバイスに対する入出力待ち(iowait-B1)の期間内のタイマ密度と
C3欄の物理デバイスに対する入出力待ち(iowait-B2)の期間内のタイマ密度とを極力
近づけるように修正する。
計算機モニタでのカーネル状態での処理とで、タイマ密度が共通になる方向にタイマ割り込みのタイミングが調整される。また、仮想デバイスに対する入出力待ち(iowait-B1)
の期間と物理デバイスに対する入出力待ち(iowait-B2)とで、タイマ密度が共通になる
方向にタイマ割り込みのタイミングが調整される。その結果、上記比率R1は、比率R2に近づけられる。
みが発生している。タイマ頻度の割合でいえば、1:10:1でタイマ割り込みが発生している。したがって、カーネル状態での処理sys-B11、sys-B12でタイマ密度は、それぞれ1/12である。また、仮想デバイスに対する入出力待ち(iowait-B1)でのタイマ密度
は、11/12である。
せて21回のタイマ割り込みが発生している。より具体的には、sys-B21, iowait-B2, sys-B22のそれぞれの期間で7回、7回、7回のタイマ割り込みが発生している。タイマ頻
度の割合でいえば1:1:1でタイマ割り込みが発生している。したがって、カーネル状
態での処理sys-B21、sys-B22でタイマ密度は、それぞれ1/3である。また、物理デバイスに対する入出力待ち(iowait-B2)でのタイマ密度は、1/3である。
、8回、8回、すなわちタイマ密度でいえば極力1/3:1/3:1/3で仮想タイマ割り込みを発生させるよう、仮想計算機モニタが仮想タイマ割り込みをゲストOSに伝えるタイミングを調節する。タイミング調整の結果、図5のC2とC3との比較で明らかなように、C2のsys-B11の期間内とC3のsys-B21の期間内とで、タイマ密度が共通になる。また、C2のiowait-B1の期間内とC3のiowait-B2の期間内とで、タイマ密度が共通になる。また、C2のsys-B12の期間内とC3のsys-B22の期間内とで、タイマ密度が共通になる。
想タイマと仮想計算機モニタの物理タイマとのタイミングにずれが生じているのは、C2に示すゲストOSでsys-B11, iowait-B1, sys-B12と、C3に示す仮想計算機モニタのsys-B11, iowait-B1, sys-B12との間である。したがって、実施例1に係るゲストOSが観測する時刻のずれは、カーネル状態で動作している範囲内に限られる。カーネル状態での動作は数ms程度となるようOSは設計されている。そのため、ゲストOSが観測する時刻のずれが、アプリケーションプログラムで検知される時間情報に影響を与える可能性は低い。
図6に、実施例1に係る計算機システムとして仮想システム11の構成例を示す。図6の仮想システム11は、物理CPUと、メモリと、タイマとを含む。また、メモリは、仮想計算機モニタ1と、ゲストOS10Bとを含むコンピュータプログラムを保持する。以下、物理CPUを単にCPUともいう。なお、実施例1では、物理CPU、メモリ、タイマ等のハードウェア、仮想計算機モニタ、および仮想計算機モニタ上で実行されるゲストOSを含む、計算機システム全体を仮想システム11という。
実施例1では、仮想計算機モニタ1は、複数の仮想CPUを扱い、仮想CPUに物理CPUを割り当てる。仮想CPUは、物理CPUをゲストOSに割り当てる場合の、物理CPUでの処理状態とリソースとを含む概念である。すなわち、仮想CPUは、従来の物理計算機上で直接動作する物理OSが実現するマルチプロセス環境での個々のプロセスに対応する概念と考えることもできる。あるいは、ゲストOSから見ると、仮想CPUは、マルチプロセッサシステムにおける個々のCPUとして取り扱うことができる。
2の処理を例示する。物理OSにおけるプロセスと、仮想計算機モニタ1における仮想CPUの役割とは、ある面では類似している。そこで、図10では、プロセススケジューラの処理と仮想CPUスケジューラ2の処理とを1つの図にまとめて書いている。以下、主として、物理OSにおけるプロセスについて説明するが、仮想計算機モニタ1における仮想CPUも、上記物理CPUにおけるプロセスの状態と同様の状態をとる。
分される。
上述のように、仮想システム11は、物理計算機のプロセス、あるいは仮想システム11の仮想CPUをユーザ状態(user), カーネル状態(sys), 入出力待ち状態(iowait
), アイドル状態(idle)の4つに分類する。これらの状態はCPUのモードやスケジュール状態によって決まる。CPUのモードは、CPUが実行可能な命令を区分するため、CPUに設定される状態、あるいは特権の有無、あるいは実行レベルを示す概念である。例えば、ユーザモードは特権がない、あるいは最も低い特権のモードである。実施例1では、CPUのモードと区別してプロセス(あるいは仮想CPU)について、“状態”という用語を用いる。そこで、実施例1では、プロセスを実行中のCPU(あるいは仮想CPUを割り当てられた実CPU)がユーザモードにあるとき、プロセス(あるいは仮想CPU)がユーザ状態にあるという。
積する。
いはその累計である。入出力待ち時間(iowait時間)は、アプリケーションプログラム、カーネルのどちらのプログラムも実行しておらず、かつ、デバイスの処理が完了するのを待機している時間、あるいはその累計である。アイドル時間(idle時間)は、アプリケーションプログラム、カーネルのどちらのプログラムも実行しておらず、かつ、物理デバイスの処理が完了するのを待機していない時間、あるいはその累計である。
idleを決定する。
ち時間(iowait時間)、 およびアイドル時間(idle時間)の各々を所定期間集計し、そ
れぞれの蓄積値を算出する。
図8に、仮想CPU管理データ7の例を示す。実行コンテキストは、個々の仮想CPUの状態を示すデータである。実行コンテキストには、例えば、レジスタ値がある。ゲストOSの切り替え時には、切り替え前に実行されていたゲストOS実行時の実行コンテキストがメモリに退避される。一方、切り替え後に実行されるゲストOSのために、メモリに退避されていた実行コンテキストにしたがってレジスタが設定され、切り替え後に実行されるゲストOSが起動される。
機モニタ1に処理が移る前に、仮想計算機モニタ1は、当該ゲストOS10Bを実行中の仮想CPUに対するExitフラグに1を設定する。逆に、仮想計算機モニタ1からゲストOS10Bに処理が復帰するとき、仮想計算機モニタ1は、Exitフラグを0に設定する。仮想システム11は、Exitフラグを仮想CPU状態決定手段3のための1つの判断要素として用いる。
を同定できる。
た回数まで管理しているわけではない。そのため、実施例1では完了待ちI/O数を示す情報が仮想CPU管理データ7中に設けられている。そして、仮想計算機モニタ1が、それぞれのゲストOS10Bからの入出力要求時と、入出力に対する実I/Oの完了時に、完了待ちI/O数を増減し、ゲストOS10Bごとに保持する。そして、仮想CPUがunqueuedの場合、仮想計算機モニタ1は、完了待ちI/O数が0より大きい場合に、仮想CPUの状態がiowaitであると同定する。また、仮想計算機モニタ1は、仮想CPUがunqueuedの場合で、完了待ちI/O数が0の場合に、仮想CPUの状態がidleであると同定する。実施例1では、1つのゲストOSが1つの仮想CPUで実行されることを想定しているので、仮想計算機モニタ1は、仮想CPUごとに完了待ちI/O数を保持する。したがって、仮想計算機モニタ1は、仮想CPUごとの完了待ちI/O数から、仮想CPUの状態を同定できる。
以下、仮想計算機10におけるタイマ処理を説明する。ゲストOS10Bのタイマ処理は、物理計算機のタイマ処理と基本的に同じである。タイマ処理では、まずコールバック関数をタイマに登録し、指定した時間が経過するとタイマ割り込みが発生する。このタイマ割り込みを契機として、物理OSはコールバック関数をタイマから解除した後、コールバック関数を呼び出す。コールバック関数の中では、タイマ割り込みによって周期的に行うべき所定の処理を実行した後、再びコールバック関数をタイマに登録する。これによって、周期的にコールバック関数が呼び出されることになる。コールバック関数は、ハンドラ、割り込み処理プログラムとも呼ばれる。タイマの具体的な実装は物理OSにより異なる。
ゲストOS10Bから制御が移された仮想計算機モニタ1は、ゲストOS10Bが設定したタイマ割り込みの要求をインターセプトする(矢印A2)。インターセプトとは、ゲストOS10Bが設定期間経過後のタイマ割り込みの発生をハードウェアタイマATMに対して設定するタイマ設定を、ハードウェアタイマATMに代わって受け取ることをいう。実施例1の仮想計算機10では、仮想計算機モニタ1は、例外処理を介してタイマ設定をインターセプトする。インターセプトの結果、ゲストOS10Bによるタイマ割り込みの設定は、ハードウェアタイマに対してはなされない。なお、物理CPUは、ハードウェアタイマATMに代わってタイマ設定を受け取る手段として、メモリに展開されたコンピュータプログラムを実行する。
以下、タイマ変調手段6が、ゲストOS10Bが指定したタイマ周期を調節する方法を説明する。図12に、ゲストOS10B(ハイパーバイザ)が設定するタイマ周期μと、仮想計算機モニタ1(VM)がゲストOS10Bに返す仮想タイマ周期μsys、μioとの
関係を例示する。
るタイマ周期μと、仮想計算機モニタ1がゲストOS10Bに返す仮想タイマ周期μsys
との関係は、次の式1で示される。
(式1)μsys=μ・tsys/Tsys;
式1において、tsysは、1回の入出力(例えば、図4、図5のI/O要求からI/O受理までの処理)において、ゲストOS10Bが認識するカーネルプログラムの実行中の期間(例えば、図4BのTSB11+TSB12)に相当する。また、Tsysは、上記1回
の入出力において、仮想計算機モニタ1が認識するカーネルプログラムの実行中の期間(例えば、図4BのTSB21+TSB22)に相当する。実際には、tsysは仮想CPU利用統計算出手段5が算出するカーネルプログラムの実行時間を所定期間累積した累積値として求めることができる。ここで、累積値とは、所定期間収集した合計値という意味である。ただし、累積値として、所定期間中の平均値を用いてもよい。ただし、仮想CPU利用統計算出手段5が算出した実行時間の累積値に代えて、ゲストOS10Bが過去に算出した利用統計に含まれるカーネルプログラムの所定期間での実行時間を利用してもよい。もちろん、ゲストOS10Bが過去に算出した利用統計は、式1による仮想タイマ周期μsysの変調がない状態での利用統計を利用すればよい。tsysがゲストOSが認識する特権状態での処理時間の基準値に相当する。
間を累積した累積値として求めることができる。Tsysは、仮想計算機モニタ10が認識
する特権モードでの処理時間の基準値に相当する。
度と一致するように変調されたタイマ周期μsysを、式1によって決定する。式1によれ
ば、タイマ周期が、tsys/Tsysの比率で変調されることになる。
と、期間Tsysでの物理タイマでのタイマ密度が共通となる。
定するタイマ周期μと、仮想計算機モニタ1がゲストOS10Bに返す仮想タイマ周期μioとの関係は、次の式2で示される。
(式2)μio=μ・tio/Tio;
式2において、tioは、1回の入出力(例えば、図4、図5のI/O要求からI/O受理
までの処理)において、ゲストOS10Bが認識する仮想デバイスに対する入出力待ちの期間(例えば、図4BのTWB1)に相当する。また、Tioは、上記1回の入出力において、仮想計算機モニタ1が認識する物理デバイスに対する入出力待ちの期間(例えば、図4BのTWB2)に相当する。実際にはtioは仮想CPU利用統計算出手段5が算出する入出力待ち時間の累積値として求める。ただし、仮想CPU利用統計算出手段5が算出した累積値tioに代えて、ゲストOS10Bが算出した利用統計に含まれる所定期間中の入出力待ち時間を利用してもよい。もちろん、ゲストOS10Bが過去に算出した利用統計は、式2による仮想タイマ周期μioの変調がない状態での利用統計を利用すればよい。tioがゲストOSが認識する入出力待ち時間の基準値に相当する。また、Tioは物理CPU利用統計算出手段4が算出する所定期間中の入出力待ち時間の累積値である。Tioが仮想計算機モニタが認識する入出力待ち時間の基準値に相当する。
生する仮想タイマ割込みの発生頻度が期間Tio内で発生する物理タイマ割込みの発生頻度と一致するように変調されたタイマ周期μioを、式1によって決定する。
0Bが認識するカーネル状態と入出力待ち状態での総割り込み回数は、仮想計算機モニタ1が認識する総割り込み回数と合致する。
図13の処理では、仮想CPU状態決定手段3が、それぞれの仮想CPUのスケジュール状態を仮想CPUスケジューラ2に問い合わせる(F1)。そして、仮想CPUスケジューラ2からの応答により、仮想CPU状態決定手段3は、それぞれの仮想CPUがactiveまたはqueuedのどちらかの状態にあるか、あるいはどちらの状態でもないかを判定する(F2)。
一方、仮想CPUがactiveでもなく、かつqueuedでもない場合、すなわち、unqueuedの場合(F2 NO)、仮想CPU状態決定手段3は、処理をF4に進める。この場合、仮想CPU状態決定手段3は、仮想CPU管理データより、完了待ちI/O数を取得する(F4)。
力する。仮想CPUがactiveおよびqueuedのいずれでもなく(unqueued)、完了待ちI/O数が0以下の場合、仮想CPU状態決定手段3はアイドル(idle)を出力する。仮想CPUがactiveおよびqueuedのいずれでもなく(unqueued)、完了待ちI/O数が1以上の場
合、仮想CPU状態決定手段3はI/O完了待ち(iowait)を出力する。
、仮想計算機モニタ1が例えば定期的に仮想CPUの状態を監視すれば、仮想CPU利用統計情報を算出することができる。
idle)が変化する期間に比べて、誤差として許容できる短時間周期で図14の処理を起
動すればよい。
態(sys)である場合(F23 YES)、仮想CPU利用統計算出手段5は、sys時間の累積値tsysに、F22で算出した経過時間を加算する(F24)。そして、仮想CPU
利用統計算出手段5は、制御をF27に移動する。
仮想CPU利用統計算出手段5は、F21で求めた仮想CPUの現在の状態が入出力待ち(iowait)か否かを判定する(F25)。仮想CPUの現在の状態が入出力待ち(iowait)である場合(F25 YES)、仮想CPU利用統計算出手段5は、iowait時間の累積値tioに、F22で算出した経過時間を加算する(F26)。そして、仮想CPU利用統計算出手段5は、制御をF27に移動する。
イザ上の処理の状態が、ユーザ状態(user)、カーネル状態(sys)、I/O完了待ち(iowait)、または、アイドル(idle)のいずれであるかを判定できる。なお、ハイパーバイザ上
の処理の状態がカーネル状態にある場合とは、図4Bの実I/Oドライバの処理(sys-B21, sys-B22)が実行中である場合を例示できる。したがって、例えば、物理CPU利用統計算出手段4は、図4Bに示す実I/Oドライバのプロセス実行中の場合に、ハイパーバイザ上の処理の状態がカーネル状態にあると判断すればよい。そして、物理CPU利用統計算出手段4は、所定の累積期間のカーネル状態での実行時間(sys時間)を累積値Tsysとする。また、物理CPU利用統計算出手段4は、所定の累積期間の入出力待ち時間(iowait時間)を累積値Tioとする。
タイマ変調手段6は、式1、式2にしたがって、ゲストOS10Bに転送する仮想タイマ割り込みの発生時間を変調する。μはゲストOS10Bが指定したタイマ周期であるから、タイマ変調手段6は、仮想CPU状態決定手段3の結果に応じて、変調したタイマ周期を算出する。図15は、タイマセット時の処理であり、図16は、タイマ割り込み発生後、ゲストOS10Bに仮想タイマ割り込みを転送するときの処理である。図16の処理を実行するプログラムは、ゲストタイマ起床ハンドラと呼ばれる。物理CPUは、タイマ割り込みの発生をゲストOSに通知する手段として、メモリ上に展開されたコンピュータプログラムにより図16の処理を実行する。
たがって、変調後のタイマ間隔μsysを算出する。なお、ゲストOS10Bが設定したタ
イマ間隔μは、ゲストOS10Bが設定したタイマ割り込みをインターセプトしたときに取得できる。そして、タイマ変調手段6は、ゲストOS10Bが設定したタイマ間隔μに代えて、変調後のタイマ間隔をμsysとしてタイマ割り込みをハードウェアタイマに設定
する。さらに、タイマ変調手段6は、設定したタイマ割り込みを受け付けるタイマハンドラとして、ゲストOS10Bを起床させるためのゲストタイマ起床ハンドラを設定する(F33)。
イマ間隔μに代えて、変調後のタイマ間隔をμioとしてタイマ割り込みを設定する。さらに、タイマ変調手段6は、設定したタイマ割り込みを受け付けるタイマハンドラとして、ゲストOS10Bを起床させるためのゲストタイマ起床ハンドラを設定する(F35)。
ず、あたかもタイマ間隔μで割り込みを通知されたものとして振る舞う。
状態の実行時間の累積値Tioを算出する。そして、タイマ変調手段6が、ゲストOS10Bによるタイマ割り込みの設定をインターセプトし、式1、式2にしたがって、タイマ間隔を変更し、実際の物理CPUに対して、タイマ割り込みを設定する。さらに、タイマ変調手段6は、タイマハンドラとして、図16のゲストタイマ起床ハンドラを設定する。
CPUを使う場合にも、実施例1はそのまま適用することができる。その理由は、user時間とidle時間は変調する必要がなく、sys時間とiowait時間のみを変調するためである。user時間はそもそも変調を加える必要がなく、idle時間は仮想CPU利用統計のなかで、
関心のないその他の値であるから、sys時間とiowait時間の変調だけで十分である。ただ
し、実施例1で示したように、仮想計算機モニタ1が物理システム全体に対して物理CPU利用統計情報を算出する場合は、すべての仮想計算機の仮想CPU利用統計情報におけるsys, iowait時間の割合が同じになるように変調するような、一次近似的な方法となっ
ている。
精度よくタイマ変調を実施するポリシとしては、仮想CPU別に物理CPU利用統計情報を算出するようにしてもよい。すなわち、仮想計算機モニタ1は、個々の仮想CPUを識別して管理しているので、仮想計算機モニタ1から物理CPU利用統計情報算出手段4に、利用統計情報を算出する対象の仮想CPUを識別する情報を引き渡し、個々の仮想CPUに対して、物理CPU利用統計情報を算出すればよい。そのために、TsysおよびTioを、個々の仮想CPUを識別する情報で区別した異なるエントリだけ用意して、Tsysお
よびTioを累積する。そして、図14に示したタイマ変調手段6は、変調対象の仮想CPUを識別する情報を基に、該当する仮想CPUの統計情報であるTsys,Tioを参照し、式1および式2にしたがって、μsysおよびμioを算出する。
別する情報で区別した異なるエントリだけ用意して、TsysおよびTioを累積すればよい
。そして、図14に示したタイマ変調手段6は、現在実行中の入出力処理の対象である物理デバイスを識別する情報を基に、該当する統計情報であるTsys,Tioを参照し、式1および式2にしたがって、μsysおよびμioを算出すればよい。
ある。
図17に、仮想CPU状態決定手段3がない仮想計算機の構成を例示する。なお、図17のうち、図6と同一の構成要素については、同一の符号を付してその説明を省略する。
利用統計算出手段5がuser, sys, idle, iowaitのいずれに対して計上すべきかを、明示
的に記入する。すなわち、ゲストOS10Bは、システムコール等の特権命令の発行を促す処理が実行される前は、プロセスがユーザ状態であることを、共有メモリ上の状態フラグなどに明示する。また、ゲストOS10Bは、システムコール等の特権命令の発行を促す処理が実行された後、特権命令が完了するまでは、プロセスがカーネル状態であることを、共有メモリ上の状態フラグに明示する。また、ゲストOS10Bは、I/O要求を実行した後、I/O処理が完了するまでは入出力待ち状態であることを、共有メモリ上の状態フラグに明示する。一方、仮想CPU利用統計算出手段5は、入出力待ち時間であることが共有メモリのフラグに明示されていない場合には、経過時間をidle時間に累積する。以上のようなuser, sys, iowaitをゲストOS10Bが明示するためには、ゲストOS1
0Bにわずかながら修正が必要となるものの、タイマ処理自体への変更は不要である。この場合は、仮想CPU状態決定手段3を省略することができる。また、ゲストOS10Bが、ゲストOS10B自身が認識したuser, sys, iowaitを仮想CPU利用統計算出手段
5に指示するので、高い精度で、user時間、sys時間、およびiowait時間を集計し、蓄積
できる。
を集計し、蓄積するようにしてもよい。そして、ゲストOS10Bが集計し、蓄積したuser時間、sys時間、およびiowait時間を仮想計算機モニタ1が読み取るようにしてもよい
。仮想CPU利用統計算出手段5は、ゲストOS10Bが認識したuser時間、sys時間、
およびiowait時間を、ゲストOS10Bから受け取ることで、さらに正確に、統計情報を取得できる。したがって、式1、および式2に示したtsysおよびtioを正確に取得でき
る。
コンピュータその他の機械、装置(以下、コンピュータ等)に上記いずれかの機能を実現させるプログラムをコンピュータ等が読み取り可能な記録媒体に記録することができる。そして、コンピュータ等に、この記録媒体のプログラムを読み込ませて実行させることにより、その機能を提供させることができる。
2 仮想CPUスケジューラ
3 仮想CPU状態決定手段
4 物理CPU利用統計算出手段
5 仮想CPU利用統計算出手段
6 タイマ変調手段
8 タイマ処理設定手段
10 仮想計算機
10B、310B ゲストOS
300 計算機システム
301 仮想計算機モニタ
302 物理ディスク
304 バックエンドドライバ
305 タイマ機構
306 スケジューラ
310A フロントエンドドライバ
310C アプリケーションプログラム
Claims (9)
- メモリ、プロセッサ、タイマおよび入出力装置を含む計算機と、
前記メモリ上に展開され、前記プロセッサで実行される仮想計算機モニタであって、少なくとも1つのゲストOS(Operating System)の前記プロセッサ上での実行を制御するとともに、前記ゲストOSから前記計算機への処理要求を受け付け、前記処理要求に対する前記計算機での実行結果を前記ゲストOSに引き渡す仮想計算機モニタと、を備え、
前記仮想計算機モニタは、
前記ゲストOSから前記タイマへの設定期間経過後のタイマ割り込みの発生を設定するタイマ設定を前記タイマに代わって受け取る手段と、
前記ゲストOSが前記仮想計算機モニタを通じて前記入出力装置にデータを入出力するときに、前記ゲストOSが認識する入出力待ち時間と入出力待ち時間以外の入出力処理時間との関係が、前記仮想計算機モニタが認識する入出力待ち時間と入出力処理時間との関係に近づくように、前記タイマ設定の設定期間を変更するタイマ変更手段と、
前記タイマ割り込みを受信したときに、前記タイマ割り込みの発生を前記ゲストOSに通知する手段として前記プロセッサを機能させる仮想計算機。 - 前記タイマ変更手段は、前記ゲストOSから前記仮想計算機モニタを通じて入出力装置に対してデータを入出力するときのゲストOSが認識する特権状態の期間においては、前記ゲストOSが認識する特権状態での入出力処理時間の基準値と前記仮想計算機モニタが認識する特権状態での処理時間の基準値との比率にしたがって、前記ゲストOSが設定したタイマ割り込み発生までの設定期間を変更し、前記変更された設定期間を指定してタイマ割り込みの発生を設定する請求項1に記載の仮想計算機。
- 前記タイマ変更手段は、前記ゲストOSから前記仮想計算機モニタを通じて入出力装置に対してデータを入出力するときのゲストOSが認識する入出力待ちの期間においては、前記ゲストOSが前記仮想計算機モニタを通じて認識する入出力待ち時間の基準値と前記仮想計算機モニタが認識する入出力待ち時間の基準値との比率にしたがって、前記ゲストOSが設定したタイマ割り込み発生までの設定期間を変更し、前記変更された設定期間を指定してタイマ割り込みの発生を設定する請求項1または2に記載の仮想計算機。
- メモリ、プロセッサ、タイマおよび入出力装置を含む計算機の前記プロセッサで実行され、少なくとも1つのゲストOS(Operating System)の前記プロセッサ上での実行を制御するとともに、前記ゲストOSから前記計算機への処理要求を受け付け、前記処理要求に対する前記計算機での実行結果を前記ゲストOSに引き渡す仮想計算機モニタであって、
前記ゲストOSから前記タイマへ送られる、タイマ割り込み発生の設定期間を設定するタイマ設定を、前記タイマに代わって受け取る手段と、
前記ゲストOSが前記仮想計算機モニタを通じて前記入出力装置にデータを入出力するときに、前記ゲストOSが認識する入出力待ち時間と入出力待ち時間以外の入出力処理時間との関係が、前記仮想計算機モニタが認識する入出力待ち時間と入出力処理時間との関係に近づくように、前記設定期間を変更するタイマ変更手段と、
設定機関を変更したタイマ設定を前記タイマに設定する手段と、
前記タイマからタイマ割り込みを受信したときに、前記タイマ割り込みの発生を前記ゲストOSに通知する手段として前記プロセッサを機能させる仮想計算機モニタ。 - 前記タイマ変更手段は、前記ゲストOSから前記仮想計算機モニタを通じて入出力装置に対してデータを入出力するときのゲストOSが認識する特権状態の期間においては、前記ゲストOSが認識する特権状態での処理時間の基準値と前記仮想計算機モニタが認識する特権状態での処理時間の基準値との比率にしたがって、前記ゲストOSが設定した設定
期間を変更し、前記変更された設定期間を指定してタイマ割り込みの発生を前記タイマに設定する請求項4に記載の仮想計算機モニタ。 - 前記タイマ変更手段は、前記ゲストOSから前記仮想計算機モニタを通じて入出力装置に対してデータを入出力するときのゲストOSが認識する入出力待ちの期間においては、前記ゲストOSが前記仮想計算機モニタを通じて認識する入出力待ち時間の基準値と前記仮想計算機モニタが認識する入出力待ち時間の基準値との比率にしたがって、前記ゲストOSが設定した設定期間を変更し、前記変更された設定期間を指定してタイマ割り込みの発生を前記タイマに設定する請求項4または5に記載の仮想計算機モニタ。
- メモリ、プロセッサ、タイマおよび入出力装置を含み、前記プロセッサ上で、1つのゲストOSと、前記ゲストOSの実行を制御する仮想計算機モニタが動作する計算機が実行する計算機の制御方法であって、
前記計算機が、
前記ゲストOSが前記タイマに発行する、前記タイマがタイマ割込みを発生する設定期間設定するタイマ設定を、前記計算機モニタが前記タイマに代わって受け取るステップと、
前記ゲストOSが前記仮想計算機モニタを通じて前記入出力装置にデータを入出力するときに、前記ゲストOSが認識する入出力待ち時間と入出力待ち時間以外の入出力処理時間との関係が、前記仮想計算機モニタが認識する入出力待ち時間と入出力処理時間との関係に近づくように、前記タイマ設定の設定期間を前記計算機モニタが変更するタイマ変更ステップと、
前記計算機モニタから前記タイマに、前記設定期間が変更されたタイマ設定を設定するステップと、
前記タイマから前記タイマ割り込みを受信したときに、前記タイマ割り込みの発生を前記計算機モニタから前記ゲストOSに通知するステップと、を実行する計算機の制御方法。 - 前記タイマ変更手ステップは、前記ゲストOSから前記仮想計算機モニタを通じて入出力装置に対してデータを入出力するときのゲストOSが認識する特権状態の期間においては、前記ゲストOSが認識する特権状態での処理時間の基準値と前記仮想計算機モニタが認識する特権状態での処理時間の基準値との比率にしたがって、前記ゲストOSが設定したタイマ割り込み発生までの設定期間を変更し、前記変更された設定期間を指定してタイマ割り込みの発生を設定するステップを含む、請求項7に記載の計算機の制御方法。
- 前記タイマ変更ステップは、前記ゲストOSから前記仮想計算機モニタを通じて入出力装置に対してデータを入出力するときのゲストOSが認識する入出力待ちの期間においては、前記ゲストOSが前記仮想計算機モニタを通じて認識する入出力待ち時間の基準値と前記仮想計算機モニタが認識する入出力待ち時間の基準値との比率にしたがって、前記ゲストOSが設定したタイマ割り込み発生までの設定期間を変更し、前記変更された設定期間を指定してタイマ割り込みの発生を設定するステップを含む、請求項7または8に記載の計算機の制御方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010007426A JP5434616B2 (ja) | 2010-01-15 | 2010-01-15 | 仮想計算機、仮想計算機モニタ、および計算機の制御方法 |
US12/983,972 US8539010B2 (en) | 2010-01-15 | 2011-01-04 | Virtual machine, virtual machine monitor and computer control method |
EP11150743.0A EP2372542B1 (en) | 2010-01-15 | 2011-01-12 | Virtual machine, virtual machine monitor and computer control method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010007426A JP5434616B2 (ja) | 2010-01-15 | 2010-01-15 | 仮想計算機、仮想計算機モニタ、および計算機の制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2011145956A JP2011145956A (ja) | 2011-07-28 |
JP5434616B2 true JP5434616B2 (ja) | 2014-03-05 |
Family
ID=44210926
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010007426A Active JP5434616B2 (ja) | 2010-01-15 | 2010-01-15 | 仮想計算機、仮想計算機モニタ、および計算機の制御方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US8539010B2 (ja) |
EP (1) | EP2372542B1 (ja) |
JP (1) | JP5434616B2 (ja) |
Families Citing this family (44)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8448165B1 (en) * | 2009-09-15 | 2013-05-21 | Symantec Corporation | System and method for logging operations of virtual machines |
US9841985B2 (en) * | 2011-04-12 | 2017-12-12 | Red Hat Israel, Ltd. | Storage block deallocation in virtual environments |
US9026630B2 (en) * | 2011-06-14 | 2015-05-05 | Vmware, Inc. | Managing resources in a distributed system using dynamic clusters |
US8949498B2 (en) | 2011-08-11 | 2015-02-03 | Mellanox Technologies Ltd. | Interrupt handling in a virtual machine environment |
US8886862B2 (en) * | 2011-08-11 | 2014-11-11 | Mellanox Technologies Ltd. | Virtualization of interrupts |
US8665893B2 (en) * | 2011-10-21 | 2014-03-04 | Red Hat Israel, Ltd. | Switching of a receive queue associated with a virtual machine |
US8839447B2 (en) * | 2012-02-27 | 2014-09-16 | Ca, Inc. | System and method for virtual image security in a cloud environment |
US9015838B1 (en) * | 2012-05-30 | 2015-04-21 | Google Inc. | Defensive techniques to increase computer security |
US8813240B1 (en) | 2012-05-30 | 2014-08-19 | Google Inc. | Defensive techniques to increase computer security |
US10185582B2 (en) * | 2012-11-28 | 2019-01-22 | Red Hat Israel, Ltd. | Monitoring the progress of the processes executing in a virtualization environment |
US9208051B2 (en) * | 2012-12-26 | 2015-12-08 | Bmc Software, Inc. | Automatic creation of graph time layer of model of computer network objects and relationships |
US9304795B2 (en) | 2013-01-15 | 2016-04-05 | Empire Technology Development Llc | Function-targeted virtual machine switching |
CN103064746B (zh) * | 2013-01-23 | 2015-08-12 | 上海交通大学 | 基于当前credit进行预测调度的处理器资源精确分配方法 |
US9521188B1 (en) * | 2013-03-07 | 2016-12-13 | Amazon Technologies, Inc. | Scheduled execution of instances |
JP5968818B2 (ja) * | 2013-03-28 | 2016-08-10 | 株式会社日立製作所 | 仮想デバイスタイムアウト時間算出装置、方法、およびプログラム |
US9053216B1 (en) | 2013-08-09 | 2015-06-09 | Datto, Inc. | CPU register assisted virtual machine screenshot capture timing apparatuses, methods and systems |
US9311475B2 (en) * | 2013-08-30 | 2016-04-12 | Vmware, Inc. | Trusted execution of binaries and modules |
US10289437B2 (en) | 2014-01-07 | 2019-05-14 | Red Hat Israel, Ltd. | Idle processor management in virtualized systems via paravirtualization |
CN103853598B (zh) * | 2014-02-21 | 2017-03-01 | 北京神舟航天软件技术有限公司 | 实现嵌入式虚拟机硬实时虚拟定时器响应的方法 |
US10365936B2 (en) | 2014-02-27 | 2019-07-30 | Red Hat Israel, Ltd. | Idle processor management by guest in virtualized systems |
US10380047B2 (en) | 2014-04-07 | 2019-08-13 | Mellanox Technologies, Ltd. | Traffic-dependent adaptive interrupt moderation |
US9483298B2 (en) * | 2014-04-23 | 2016-11-01 | Vmware, Inc. | Converting virtual machine I/O requests |
KR101592782B1 (ko) * | 2014-11-05 | 2016-02-12 | 플러스기술주식회사 | 전가상화 시스템에서 자원을 감시하는 장치 및 방법 |
US9817688B2 (en) * | 2015-02-18 | 2017-11-14 | Red Hat Israel, Ltd. | Identifying and preventing removal of virtual hardware |
JP6550945B2 (ja) * | 2015-06-10 | 2019-07-31 | 富士通株式会社 | 判定制御プログラム、判定制御方法及び仮想マシン管理装置 |
US9720722B2 (en) * | 2015-09-03 | 2017-08-01 | Red Hat Israel, Ltd. | Hypervisor driven gradual balloon inflation |
US10846117B1 (en) * | 2015-12-10 | 2020-11-24 | Fireeye, Inc. | Technique for establishing secure communication between host and guest processes of a virtualization architecture |
US10108446B1 (en) | 2015-12-11 | 2018-10-23 | Fireeye, Inc. | Late load technique for deploying a virtualization layer underneath a running operating system |
US10467161B2 (en) | 2016-05-25 | 2019-11-05 | Mellanox Technologies, Ltd. | Dynamically-tuned interrupt moderation |
US10127068B2 (en) * | 2016-06-30 | 2018-11-13 | Amazon Technologies, Inc. | Performance variability reduction using an opportunistic hypervisor |
US10459747B2 (en) | 2016-07-05 | 2019-10-29 | Red Hat Israel, Ltd. | Exitless timer access for virtual machines |
JP6751231B2 (ja) * | 2016-07-07 | 2020-09-02 | 富士通株式会社 | ジョブスケジューラ試験プログラム、ジョブスケジューラ試験方法及び並列処理装置 |
US10503534B1 (en) * | 2016-09-09 | 2019-12-10 | Hewlett-Packard Development Company, L.P. | Adaptive clock scaling to optimize time-based operations within virtualized guest operating systems |
US10203991B2 (en) * | 2017-01-19 | 2019-02-12 | International Business Machines Corporation | Dynamic resource allocation with forecasting in virtualized environments |
CN108512780B (zh) * | 2017-02-28 | 2020-12-15 | 华为技术有限公司 | 定时器实现方法及相关装置 |
US11726807B2 (en) * | 2017-05-05 | 2023-08-15 | Vmware, Inc. | Safe execution of virtual machine callbacks in a hypervisor |
JP6777050B2 (ja) * | 2017-09-21 | 2020-10-28 | 株式会社デンソー | 仮想化システム、仮想化プログラム、及び、記憶媒体 |
US10733005B1 (en) * | 2017-10-10 | 2020-08-04 | Parallels International Gmbh | Providing access to mobile applications by heterogeneous devices |
US10776289B2 (en) | 2018-09-21 | 2020-09-15 | Microsoft Technology Licensing, Llc | I/O completion polling for low latency storage device |
US10740258B2 (en) | 2018-10-23 | 2020-08-11 | Microsoft Technology Licensing, Llc | Timer-based I/O completion polling for low latency storage device |
JP7151631B2 (ja) * | 2019-06-11 | 2022-10-12 | 株式会社デンソー | 車両用制御装置、車両用表示システム、及び車両用表示制御方法 |
US20210357239A1 (en) * | 2020-05-14 | 2021-11-18 | Capital One Services, Llc | Methods and systems for managing computing virtual machine instances |
US11595472B2 (en) | 2021-01-19 | 2023-02-28 | Mellanox Technologies, Ltd. | Controlling packet delivery based on application level information |
US11792139B2 (en) | 2022-01-24 | 2023-10-17 | Mellanox Technologies, Ltd. | Efficient packet reordering using hints |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001166954A (ja) * | 1999-12-10 | 2001-06-22 | Hitachi Ltd | 仮想計算機装置および仮想計算機装置の制御方法 |
US7475002B1 (en) * | 2004-02-18 | 2009-01-06 | Vmware, Inc. | Method and apparatus for emulating multiple virtual timers in a virtual computer system when the virtual timers fall behind the real time of a physical computer system |
JP2006059052A (ja) | 2004-08-19 | 2006-03-02 | Hitachi Ltd | 仮想計算機システム |
US7853960B1 (en) * | 2005-02-25 | 2010-12-14 | Vmware, Inc. | Efficient virtualization of input/output completions for a virtual device |
US7529867B2 (en) * | 2006-11-01 | 2009-05-05 | Inovawave, Inc. | Adaptive, scalable I/O request handling architecture in virtualized computer systems and networks |
JP4871174B2 (ja) | 2007-03-09 | 2012-02-08 | 株式会社日立製作所 | 仮想計算機システム |
US20080271018A1 (en) * | 2007-04-24 | 2008-10-30 | Andrew Gross | System and Method for Managing an Assurance System |
US8453143B2 (en) * | 2007-09-19 | 2013-05-28 | Vmware, Inc. | Reducing the latency of virtual interrupt delivery in virtual machines |
JP2009223842A (ja) * | 2008-03-19 | 2009-10-01 | Fujitsu Ltd | 仮想計算機制御プログラム及び仮想計算機システム |
US8478924B2 (en) * | 2009-04-24 | 2013-07-02 | Vmware, Inc. | Interrupt coalescing for outstanding input/output completions |
-
2010
- 2010-01-15 JP JP2010007426A patent/JP5434616B2/ja active Active
-
2011
- 2011-01-04 US US12/983,972 patent/US8539010B2/en active Active
- 2011-01-12 EP EP11150743.0A patent/EP2372542B1/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20110179417A1 (en) | 2011-07-21 |
EP2372542B1 (en) | 2016-06-01 |
EP2372542A2 (en) | 2011-10-05 |
US8539010B2 (en) | 2013-09-17 |
EP2372542A3 (en) | 2013-01-16 |
JP2011145956A (ja) | 2011-07-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5434616B2 (ja) | 仮想計算機、仮想計算機モニタ、および計算機の制御方法 | |
US11797327B2 (en) | Dynamic virtual machine sizing | |
JP6126312B2 (ja) | 待ち時間の影響を受けやすい仮想マシンをサポートするように構成された仮想マシンモニタ | |
US7945908B1 (en) | Method and system for improving the accuracy of timing and process accounting within virtual machines | |
CN109564523B (zh) | 使用机会性管理程序降低性能可变性 | |
Kim et al. | Demand-based coordinated scheduling for SMP VMs | |
WO2015090158A1 (zh) | 一种虚拟网卡中断亲和性绑定的方法和计算机设备 | |
US9183054B2 (en) | Maintaining hardware resource bandwidth quality-of-service via hardware counter | |
KR101773166B1 (ko) | 가상 머신 스케줄 시점 조절 장치 및 방법 | |
JP2008513909A (ja) | 仮想マシンモニタに関連するタイマへのサポートを提供する方法及び装置 | |
US11579918B2 (en) | Optimizing host CPU usage based on virtual machine guest OS power and performance management | |
EP3704575A1 (en) | A method, apparatus and system for real-time virtual network function orchestration | |
JP2019169081A (ja) | 情報処理装置、情報処理方法、プログラム | |
KR101203099B1 (ko) | 운영체제 태스크의 실행시간 모니터링 방법 및 시스템 | |
JP5136658B2 (ja) | 仮想計算機の割当方法及び割当プログラム並びに仮想計算機環境を有する情報処理装置 | |
Miao et al. | FlexCore: Dynamic virtual machine scheduling using VCPU ballooning | |
Pastorelli et al. | Os-assisted task preemption for hadoop | |
WO2023241307A1 (zh) | 管理线程的方法及装置 | |
US11169857B2 (en) | System and method for reserving a portion of CPU time for host execution | |
US11934890B2 (en) | Opportunistic exclusive affinity for threads in a virtualized computing system | |
JP2006099333A (ja) | 情報処理装置、プロセス制御方法、並びにコンピュータ・プログラム | |
KR102240996B1 (ko) | 가상화 시스템에서의 입출력 완료 처리 방법 및 장치 | |
KR102443894B1 (ko) | 가상화 환경에서 가상머신의 i/o 성능을 높이기 위한 스케줄링 방법 | |
US20240134669A1 (en) | Paravirtual pause loops in guest user space | |
US20240231867A9 (en) | Paravirtual pause loops in guest user space |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20121005 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20131107 |
|
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: 20131112 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20131125 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5434616 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |