JP6126312B2 - 待ち時間の影響を受けやすい仮想マシンをサポートするように構成された仮想マシンモニタ - Google Patents

待ち時間の影響を受けやすい仮想マシンをサポートするように構成された仮想マシンモニタ Download PDF

Info

Publication number
JP6126312B2
JP6126312B2 JP2016531957A JP2016531957A JP6126312B2 JP 6126312 B2 JP6126312 B2 JP 6126312B2 JP 2016531957 A JP2016531957 A JP 2016531957A JP 2016531957 A JP2016531957 A JP 2016531957A JP 6126312 B2 JP6126312 B2 JP 6126312B2
Authority
JP
Japan
Prior art keywords
virtual machine
processing unit
central processing
virtual
latency
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
Application number
JP2016531957A
Other languages
English (en)
Other versions
JP2016529614A (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.)
VMware LLC
Original Assignee
VMware LLC
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 VMware LLC filed Critical VMware LLC
Publication of JP2016529614A publication Critical patent/JP2016529614A/ja
Application granted granted Critical
Publication of JP6126312B2 publication Critical patent/JP6126312B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4887Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5033Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering data affinity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • G06F9/5088Techniques for rebalancing the load in a distributed system involving task migration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • H04L43/0894Packet rate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/16Threshold monitoring
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/56Queue scheduling implementing delay-aware scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/80Actions related to the user profile or the type of traffic
    • H04L47/801Real time traffic
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45575Starting, stopping, suspending or resuming virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45591Monitoring or debugging support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5017Task decomposition

Description

「待ち時間の影響を受けやすい(latency sensitive : 待ち時間感度)」ものとして特徴付けられたアプリケーションは通常、アプリケーションが実行される計算環境によってもたらされる実行遅延及びジッタ(すなわち、予測不能性)の影響を非常に受けやすい。待ち時間の影響を受けやすいアプリケーションの例としては金融取引システムが挙げられ、金融取引システムは通常、証券価格設定又は取引の実行及び決済等の機能を実行する際、瞬時応答時間を必要とする。
実行遅延の一原因は、システムカーネル、特に、システムカーネルにおいて実行されるカーネルスケジューラである。システム及びユーザタスクのスケジューリング及びスケジューリング解除は、幾つかの方法で待ち時間の一因となる。第1に、実行に向けてスケジュールされたタスクは、特定の中央演算処理装置(CPU)のキュー内でかなりの時間量を費やしてから、そのCPUでの実行に向けてディスパッチされ得る。さらに、タスクは、実行されると、より高い優先度のタスクによってプリエンプトされ得る。
(仮想マシン用に物理的CPUをエミュレートする)仮想CPUが、仮想マシンのゲストオペレーティングシステムによって中止される場合、仮想CPUの実行は、物理的CPUで中止される。これは通常、カーネルスケジューラが、幾つかの物理的プロセッサでの仮想CPUの実行をプリエンプトし、後で実行するために仮想CPUに対応するタスクをキューに入れることによって達成される。仮想CPUが再び実行可能な状態になると、仮想CPUタスクは通常、同じ又は他のCPUの実行キューに配置されて、そのCPUで続けて実行される。カーネルスケジューラが、仮想CPUをプリエンプトすること及び仮想CPUが実行可能な状態になったときに仮想CPUを再びキューに入れることの両方による介入が、待ち時間の原因であり、プリエンプトされた仮想CPUで実行中の待ち時間の影響を受けやすいアプリケーションに問題を生じさせるおそれがある。
ホストコンピュータでの仮想マシンの仮想CPUの実行を中止する方法が提供され、ホストコンピュータは、複数の仮想マシンの実行をサポートする仮想化ソフトウェアを有し、仮想化ソフトウェアは仮想マシンのそれぞれに仮想マシンモニタを含み、各仮想マシンモニタは、対応する仮想マシンの仮想中央演算処理装置(CPU)をエミュレートする。本方法は、対応する仮想マシンから仮想マシンモニタにおいて第1の中止命令を受信するステップと、仮想マシンが待ち時間の影響を受けやすいか否かを仮想マシンモニタによって判断するステップとを含む。本方法は、仮想マシンが待ち時間の影響を受けやすい場合、仮想マシンモニタから、仮想CPUが実行される物理的CPUを中止する第2の中止命令を発行するステップを更に含む。本方法は、仮想マシンが待ち時間の影響を受けやすくない場合、仮想CPUがアイドル状態であることを示すシステムコールをホストコンピュータで実行中のカーネルに対して実行するステップを更に含む。
更なる実施形態は、実行されると、ホストコンピュータに上記方法の1つ又は複数の態様を実施させる命令を含む非一時的コンピュータ可読媒体並びにホストコンピュータと、カーネルスケジューラと、上記方法の1つ又は複数の態様を実施するように構成された仮想マシンモニタとを含む仮想化計算システムを提供する。
1つ又は複数の実施形態が実施され得る仮想化計算環境を示す図である。 実施形態による、待ち時間感度情報を記憶するテーブルを示すブロック図である。 1つ又は複数の実施形態による、待ち時間の影響を非常に受けやすい仮想マシンによって発行された中止命令の処理を示す図である。 1つ又は複数の実施形態による、待ち時間の影響を非常に受けやすい仮想CPUを中止する方法を示す流れ図である。
図1は、1つ又は複数の実施形態を実施し得る仮想化コンピューティング環境を示す。示されるように、コンピューティング環境は、ホストコンピュータ100と、仮想マシン(VM)管理サーバ150とを含む。VM管理サーバ150は、ローカル接続を介して、又は代替的にはリモートネットワーク接続を介してホストコンピュータ100と通信する。
ホストコンピュータ100は、実施形態では、オペレーティングシステム及び1つ又は複数のアプリケーションプログラムの実行をサポートする汎用コンピュータである。仮想化計算プラットフォームを含む様々な構成要素を実行するために、ホストコンピュータ100は通常、サーバクラスのコンピュータである。しかし、ホストコンピュータ100は、デスクトップ又はラップトップコンピュータであってもよい。
図1に示されるように、ホストコンピュータ100は、3つの構成要素に論理的に分割される。第1に、実行空間120は、ユーザレベル(すなわち、非カーネルレベル)プログラムの実行をサポートする。ユーザレベルプログラムは非特権であり、特権命令の実行又はシステムメモリの特定の保護領域へのアクセス等の特定の特権機能を実行することができないことを意味する。実行空間120がサポートするプログラムは、特に、仮想マシンである。
仮想マシンは、物理的計算デバイスのソフトウェア実施であり、物理的コンピュータと略同じようにプログラムを実行する。実施形態では、仮想マシンは、ソフトウェアにおいて、ゲストオペレーティングシステム(OS)の制御下でソフトウェアアプリケーションの実行をサポートする計算プラットフォームを実施する。したがって、仮想マシンは通常、特定の計算アーキテクチャをエミュレートする(emulate)。図1では、実行空間120はVM110〜110を含む。示される各VM110は1つ又は複数のアプリケーション111の実行をサポートし、各アプリケーション111は特定のゲストOS112の制御下で実行される。アプリケーション111は、例えば、ワードプロセッサ又はスプレッドシートプログラム(spreadsheet programs)等のユーザレベル(非カーネル)プログラムである。示される各ゲストOS112は、マイクロソフト社(Microsoft Corp.)からの任意のバージョンのウィンドウズ(Windows)(登録商標)オペレーティングシステム、リナックス(Linux)(登録商標)オペレーティングシステム、又はアップル社(Apple, Inc.)からのMac OS(登録商標)X等のよく知られた市販のオペレーティングシステムの1つであり得る。アプリケーション及びゲストOSがVM毎に異なり得ることに留意されたい。したがって、VM110内のアプリケーション111は、ゲストOS112としてウィンドウズ(Windows)(登録商標)7の制御下で実行されるマイクロソフト(Microsoft)のワード(Word)(登録商標)及びエクセル(Excel)(登録商標)アプリケーションを含み得る。これとは対照的に、VM110内のアプリケーション111は、ゲストOS112としてMacOS(登録商標)Xの制御下で実行されるサファリ(Safari)(登録商標)ウェブブラウザを含み得る。
図1に示されるように、各VM110〜110及びユーザプログラム115は、本明細書ではハイパーバイザ130と呼ばれるハイパーバイザ構成要素と通信する。
ハイパーバイザ130は、図1に示されるように、コンピュータホスト100でプロセスを実行するためのオペレーティングシステムプラットフォームを提供する。ハイパーバイザ130は、コンピュータホスト100内の全てのハードウェアデバイスを制御し、そこで実行される全てのアプリケーションのシステムリソースを管理する。ハイパーバイザ130が提供するコア機能は、特に、コンソールサービス、ファイルシステムサービス、デバイスドライバ、及びリソーススケジューリングである。さらに、ハイパーバイザ130は、ホストコンピュータでの1つ又は複数の仮想マシンのインスタンス化を提供するソフトウェア構成要素を実施する。
図1の実施形態に示されるように、ハイパーバイザ130は仮想マシンモニタ(VMM)131〜131を含む。各VMM131は実行中のVM110に対応する。したがって、VMM131はVM110に対応し、VMM131はVM110に対応し、以下同様である。各VMM131は、対応する仮想マシンのゲストOSに仮想ハードウェアプラットフォームを提供するソフトウェアレイヤである。対応するVMが、ハイパーバイザ130のカーネル構成要素(図1ではカーネル136として示される)によって提供されるサービスにアクセスするのは、特定のVMM131を通してである。カーネル136によって実行される機能は、特に、メモリ管理、ネットワーキング及び記憶スタックの提供、及びプロセススケジューリングである。
図1での各VMM131は、対応するVM110の仮想ハードウェアプラットフォームを実施する。実施される仮想ハードウェアプラットフォームの構成要素は、特に、1つ又は複数の仮想中央演算処理装置(又はVCPU)125である。図1では、VMM131はVCPU125を実施し、VMM131はVCPU125を実施し、以下同様である。各VCPU125は、対応するVM110で実行されるアプリケーション111及びゲストOS112の観点から、物理的CPUとして見える。このようにして、仮想マシン内で実行される仮想化ゲストオペレーティングシステムは、コンピュータホストで直接実行されるオペレーティングシステムが(すなわち、非仮想化的に)、物理的CPUでの実行に向けてプロセスをスケジュールしディスパッチするのと同じように、1つ又は複数の仮想CPUでの実行に向けてプロセスをスケジュールし、ディスパッチし得る。しかし、ハイパーバイザ130の観点から(典型的な実施形態では、コンピュータホスト100で直接実行される)、各VCPU125は、コンピュータホスト100の物理的CPUでスケジュールされディスパッチされるプロセスである。
VMMに対応する仮想マシンで実行中のゲストオペレーティングシステム(例えば、ウィンドウズ(Windows)又はリナックス(Linux))は、もはや実行するいかなるタスクもないと判断し得る。例えば、仮想マシンは、スプレッドシート(spreadsheet)又は言語処理アプリケーションを実行した可能性がある。それらのアプリケーションが終了し、他のアプリケーションが開始されない場合、ゲストオペレーティングシステムは、電力を節減するために、1つ又は複数のCPU(すなわち、対応する仮想マシンの仮想CPU)を休止すべきであると判断し得る。仮想CPUを休止するために、ゲストオペレーティングシステムは、「休止」命令(例えば、x86アーキテクチャの部分であるHLT命令)を実行し得る。他の場合、ゲストオペレーティングシステムは、モニタリング待機(例えば、MWAIT)命令を発行し、CPUは予め定義された命令アドレスで処理を中止する。何れの場合でも、CPUは処理を止め、アイドル状態になる。1つ又は複数の実施形態では、CPUへの割り込みが受信される場合、CPUはアイドル状態から戻る。VMM(VMM131等)は、中止された仮想CPUが、対応する仮想マシンで実行中のゲストオペレーティングシステムから休止した物理的CPUとして見えるように、仮想CPUの休止(又は中止)をエミュレートする。
1つ又は複数の実施形態では、カーネル136は、コンピュータホスト100のVM110と物理的ハードウェアとの連絡部として機能する。カーネル136は、中央オペレーティングシステム構成要素であり、ホスト100で直接実行される。実施形態では、カーネル136は、メモリを割り振り、物理的CPUへのアクセスをスケジュールし、コンピュータホスト100に接続された物理的ハードウェアデバイスへのアクセスを管理する。
カーネル136はカーネルスケジューラ135も含む。カーネルスケジューラ135は、コンピュータホスト100の物理的CPUでの実行に向けてタスクをスケジュールすることを担う。コンピュータホスト100で実行される全てのタスクが、基本となるハードウェアリソースを共有することに留意されたい。これは、ランダムアクセスメモリ、外部ストレージ、及び物理的CPUでの処理時間を含む。したがって、カーネルスケジューラ135が処理に向けてスケジュールするタスクは、非仮想化スタンドアロンアプリケーション、カーネルスレッド、割り込みモジュールと同じように、(VMを実行する仮想CPUである)VCPU125を含むカーネルスレッド、割り込みモジュール実施形態では、カーネルスケジューラ135は、各物理的CPU(図示せず)に別個の実行キューを保持する。すなわち、カーネルスケジューラ135は、プロセスを特定の物理的CPUの実行キューに配置することにより、その特定の物理的CPUでの実行に向けてそのプロセスをスケジュールする。通常、物理的CPUは、それ自体のキューから実行するプロセスを選択するだけである。
しかし、他の物理的CPUが対応する実行キュー内で待機中のジョブを有する間、ある物理的CPUがアイドルにあることが生じ得る。したがって、周期的に、カーネルスケジューラ135はキューをリバランスする。すなわち、特定の物理的CPUの実行キューが数多くのタスクを含む場合、カーネルスケジューラ135は、その実行キュー内のタスクの幾つかを、あまり忙しくない物理的CPUの実行キューに移す。
図1は、コンピュータホスト100の別の構成要素であるハードウェアプラットフォーム140も示す。ハードウェアプラットフォーム140は、コンピュータホスト100の全ての物理的なデバイス、チャネル、及びアダプタを含む。ハードウェアプラットフォーム140は、ネットワーク通信用のネットワークアダプタ(図示せず)と、外部記憶デバイスへの通信を可能にするホストバスアダプタ(HBS:host bus adapter)(図示せず)とを含む。さらに、ハードウェアプラットフォーム140は、コンピュータホスト100の物理的CPU(本明細書ではPCPUと呼ばれる)を含む。図1に示されるように、コンピュータホスト100はM PCPU145〜145を有する。図に示されるように、カーネルスケジューラ135は、1つ又は複数のPCPU145での実行に向けてタスクをスケジュールしディスパッチする。
ハードウェアプラットフォーム140はランダムアクセスメモリ(RAM)141も含み、RAM141は、特に、現在実行中のプログラム及びそのようなプログラムに必要とされるデータを記憶する。さらに、前述したカーネルスケジューラ135が各PCPUに保持する実行キューは通常、RAM141内に保持される。
待ち時間高感度仮想マシンの実行に必要な構成、識別、及び処理の変更をサポートするために、図1に示される実施形態はVM管理サーバ150を含む。VM管理サーバ150は、実施形態では、コンピュータホスト100内又はコンピュータホスト100からリモートに(図1に示されるように)実行されるサーバアプリケーションである。VM管理サーバ150の実施形態は、システム管理者が1つ又は複数のホストコンピュータでの実行に向けて仮想マシンを定義し、構成し、展開できるようにするインターフェース(グラフィカルユーザインターフェース(又はGUI)等)を提供する。
さらに、VM管理サーバ150は待ち時間高感度仮想マシンとしての仮想マシンの構成を提供する。1つ又は複数の実施形態によれば、VM管理サーバ150は待ち時間感度テーブル155を保持し、このテーブルは、仮想マシンの待ち時間感度特徴を定義する。待ち時間感度テーブル155については、更に詳細に以下に説明する。
図1に示されるように、VM管理サーバ150は、直接ローカル接続又はコンピュータネットワークを介してコンピュータホスト100と通信する。そのような通信を促進するために、VM管理エージェント134はコンピュータホスト100で実行される。VM管理エージェント134はカーネル136の一部分ではないが、VM管理エージェントの実施形態はハイパーバイザ130内でハイパーバイザレベルで実行される。しかし、他の実施形態では、VM管理エージェント134は、実行空間120内でユーザプログラムとして実行され得る。VM管理エージェント134のプロセスもカーネルスケジューラ135によって実行に向けてスケジュールされることに留意されたい。
VM管理エージェント134は、命令をVM管理サーバ150から受信し、VM管理サーバ150の代理としてタスクを実行する。VM管理エージェント134によって実行されるタスクとは、特に、仮想マシンの構成及びインスタント化である。仮想マシンの構成の一態様は、仮想マシンが待ち時間高感度であるか否かである。したがって、VM管理エージェント134は、待ち時間感度テーブル155のコピーを受信し、基本データを待ち時間感度データ143としてRAM141内に保存する。図1に示されるように、待ち時間感度データ143がRAMに保存されると、カーネルスケジューラ135はその情報にアクセスして、どの仮想マシンが待ち時間高感度であるかを判断する。1つ又は複数の仮想マシンが待ち時間高感度であると判断されると、カーネルスケジューラ135は特定のスケジュール変更を行い、これらの仮想マシンのニーズに応える。
図2は、待ち時間感度テーブル155の一実施形態を示すブロック図である。図に示されるように、待ち時間感度テーブル155は複数行のデータを記憶し、各行はホスト100内の特定の仮想マシンに対応する。各仮想マシンは、一意のVM ID210によってホスト上で識別される。VM ID210は、仮想マシンに関連付けられた任意の一意の二進値又は英数値であり得る。図2に示されるように、待ち時間感度テーブル155は、図1に示される仮想マシンVM110及びVM110にそれぞれ対応するVM ID210及び210のエントリを有する。
VM ID210毎に、待ち時間感度テーブル155は2つの値を記憶する。第1の値は待ち時間感度インジケータである。このインジケータは2つの別個の値(Y又はN等)を有し、この値は、対応する仮想マシンが待ち時間高感度であるか否かを示す。他の実施形態では、待ち時間感度インジケータは3つ以上の値(例えば、高、中、低、又は普通)を有し、対応する仮想マシンの異なる程度の待ち時間感度の指定を提供する。図2では、(VM110に対応する)VM ID210は、待ち時間感度インジケータがNに設定されているため、待ち時間高感度ではない仮想マシンを識別する。他方、(VM110に対応する)VM ID210は、対応する待ち時間感度インジケータがYに設定されているため、待ち時間高感度である仮想マシンを識別する。例えば、VM110は、リアルタイム金融取引アプリケーションを実行する仮想マシンであり、一方、VM110は、通常、瞬時応答時間を必要とせず、一般に、仮想化計算環境で生じるジッタによる影響を受けないバッチ処理アプリケーション(課金システム等)を実行する仮想マシンであり得る。
待ち時間感度テーブル155が記憶する第2の値は、「エンタイトルメント(entitlement)」値である。仮想マシンのCPUリソースエンタイトルメントは、CPU確保値、CPU制限値、及びCPU共有値を指定することによって調整し得る。CPU確保値は、仮想マシンへのCPUリソースの保証された最小割り振りを表す。逆に、CPU制限値は、仮想マシンへのCPUリソースの最大割り振りを表す。最後に、CPU共有値は、他の仮想マシンに割り振られたCPUリソースの量に相対して仮想マシンに割り振られるCPUリソース量を表す。したがって、CPUが割り振りを共有する場合、仮想マシンのCPUエンタイトルメントは、他の仮想マシンが電源オン(powered-on)、電源オフ(powered-off)、又は各自のCPU共有値が構成される際、動的に変更され得る。
図2に示される実施形態では、エンタイトルメント値は割合である。この実施形態では、エンタイトルメント値は、所与のVMの仮想CPUのCPUリソースの確保割合(すなわち、CPU確保値)を表す。すなわち、エンタイトルメント値によって表される確保は、対応する仮想マシンに保証された最小割り振りを指定する。実施形態によれば、仮想マシンは、その仮想マシンの確保を満たすために十分な未確保CPUリソースが利用可能な場合のみ、電源オンされ得る。エンタイトルメント値が割合として表現されることに限定されないことに留意されたい。他の実施形態では、エンタイトルメント値は、確保されたCPUサイクル数(ギガヘルツ(GHz)単位でのプロセッサの速度の特定の部分等)として表現され得る。
図2では、(VM ID210によって識別されるように)VM110は、40パーセント(%)のエンタイトルメント値を有し、物理的CPUの40%がVM110に関連付けられたVCPU(すなわち、VCPU125)に確保されることを意味する。この例では、VM110が1つのみのVCP125を有すると仮定されることに留意されたい。しかし、VM110が2つ以上のVCPUを有する場合、それらのVCPUのそれぞれは、1つの物理的CPUの確保容量の40%を共有する。
図2を参照すると、(VM ID210によって識別されるように)VM110は、100%の対応するエンタイトルメント値を有する。したがって、ホストは、物理的CPUの容量の100%をVM110に確保する。
1つ又は複数の実施形態によれば、仮想マシンが待ち時間高感度であり、且つ最大エンタイトルメント値を有する場合、その仮想マシンには、1つ又は複数の物理的CPUへの排他的アフィニティ(exclusive affinity)が認められる。例えば、VM110が1つの仮想CPU VCPU125を有すると仮定すると、VM110(又は特に、VCPU125)には、コンピュータホスト100内の1つの物理的CPU(すなわち、PCPU145〜145の1つ)への排他的アフィニティが付与される。他方、VM110が2つの仮想CPUを有する場合、両方の仮想CPUに物理的CPUへの排他的アフィニティが付与されるように、VM ID210の待ち時間感度テーブル155内のエンタイトルメント値は、200%に設定される(すなわち、VM110に対応する1組のVCPU125内の各仮想CPUに100%を確保)。
仮想マシンの仮想CPUが物理的CPUへの排他的アフィニティを有する場合、物理的CPUは、効率的に、その特定の仮想CPUの実行専用である。すなわち、カーネルスケジューラ(すなわち、カーネルスケジューラ135)は、物理的CPUがアイドル状態であっても、仮想CPUが排他的アフィニティを有する物理的CPUでのいかなるプロセスの実行のスケジュールも避ける。さらに、カーネルスケジューラ135は、物理的CPUでの大半の割り込み処理のスケジュールも割ける。その代わり、仮想CPUが他の物理的CPUへの排他的アフィニティを有さない場合、割り込み処理はそのような他の物理的CPUでスケジュールされディスパッチされる。
さらに、実行中の仮想マシンが、Yに動的に設定された待ち時間感度インジケータを有するとともに、最大割合値に動的に設定されたエンタイトルメントを有する場合、カーネルスケジューラ135はそれらの構成変更を検出する(又はそれらの構成変更が通知される)。さらに、カーネルスケジューラ135は、待ち時間感度インジケータが以前はYに設定され、エンタイトルメントが以前は最大割合に設定されていた仮想マシンが電源投入されたときを検出する(又はそのときが通知される)。何れの場合でも、カーネルスケジューラ135は、所要数の物理的CPUを仮想マシンの仮想CPUに割り振るステップをとる。したがって、仮想マシンの電源投入時(又は代替的には、仮想マシンの待ち時間感度インジケータ及びエンタイトルメントが変更されたとき)に、全ての物理的CPUがタスクを実行中である場合、カーネルスケジューラ135は、実行中のタスクをある物理的CPUから別の物理的CPUに移行する。カーネルスケジュールは、仮想マシンの仮想CPUの数と同じ数の物理的CPUに対してこの移行を実行する。したがって、仮想マシンの仮想CPUが、実行する必要があるタスクを有する場合、それらのタスクは、いかなるスケジューリングオーバーヘッド又はコンテキスト切り換えオーバーヘッドを発生させずに、割り振られた物理的CPUで直接実行される。さらに、実施形態によれば、カーネルスケジューラ135は、最小数の物理的CPUが非待ち時間高感度仮想マシンのタスクの処理に利用可能なことを保証する。これらの実施形態では、待ち時間高感度仮想マシンに電源が投入され、幾つかの物理的CPUが割り振られると、結果として、非待ち時間高感度タスクの処理に利用可能な物理的CPUの数はこの最小数未満になり、その場合、その仮想マシンは電源投入されない。
図3は、1つ又は複数の実施形態による、待ち時間高感度仮想マシンによって発行される中止命令の処理を示す図である。上述したように、ゲストオペレーティングシステムの実施形態(ゲストOS112及びゲストOS112等)は、仮想マシンが実行する追加のタスクを有するか否かを検出するように構成される。仮想マシンが実行する追加のタスクを有さない場合、仮想マシン内のゲストオペレーティングシステムは、「仮想」中止命令を発行し得る。すなわち、ゲストオペレーティングシステムは、仮想マシンの1つ又は複数の仮想CPUに中止(HLT又はMWAIT等)命令を発行し得る。これは、仮想マシンがいかなる有用タスクも実行してないときに電力を節減するために行われる。
仮想マシンのゲストオペレーティングシステムが中止命令を仮想CPUに発行する場合、命令は対応するVMMによって受信され処理される。仮想マシンが待ち時間高感度ではない場合、VMMは、中止された仮想CPUの実行に前に割り振られていた任意の物理的CPUを割り振り解除する(deallocate)ようにカーネルに命令する。この状況は図3に示され、VM110で実行中のゲストOS112は、(310で示される)VCPU125を中止する中止命令を発行する。図2に示される待ち時間感度テーブル155に記憶される情報に基づいて、VM110が待ち時間高感度仮想マシンではないことに留意されたい。これは、(VM110に対応する)VM ID210の待ち時間感度インジケータがNに設定されていること、及びVM ID210のエンタイトルメント値が最大値(例えば、100%)ではないことに起因する。したがって、VMM131は、中止命令を受信し、中止命令に応答して、(図3では315として示される)カーネルコールを行い、VCPU125がアイドルであることをカーネルスケジューラ135に通信する。
カーネルコール315に応答して、カーネルスケジューラ135は、VCPU125から、VCPU125が現在実行中のあらゆる物理的CPUを割り振り解除する。このプロセスは、図3において矢印320によって示されている。例えば、図2において、タスク300が、現在、PCPU145で実行中のタスクであると仮定する。さらに、タスク300はVCPU125に対応する。すなわち、タスク300は、物理的CPU PCPU145でのVCPU125の実行を表す。カーネルコール315に応答して、カーネルスケジューラ135は、(点線で示される)PCPU145での実行からタスク300を割り振り解除する。これは、CPU資源を必要とする他のタスクの実行に向けてPCPU145を解放する。図3に示されるように、タスク300が、PCPU145での実行にカーネルスケジューラ135によって選択される。仮想中止要求310、カーネルコール315、及びスケジューリングタスク320の処理がそれぞれ、物理的CPU資源を消費し、したがって、待ち時間の一因となることに留意されたい。さらに、(例えば、ソフトウェア割り込みを受信することにより)VCPU125がタスクを実行する準備ができると、カーネルスケジューラ135は物理的CPUでの実行に向けてVCPUを再スケジューリングする必要があり、これは待ち時間の更なる原因である。
VM110とは対照的に、VM110は待ち時間高感度仮想マシンである。これは、(VM110に対応する)VM ID210の待ち時間感度インジケータがYに設定されていること、及びVM ID210のエンタイトルメント値が最大値(すなわち、100%)に設定されていることに起因する。この場合、ゲストOS112が中止命令(すなわち、HLT、MWAIT、又は同等の命令)をVCPU125に発行すると、VMM131は命令をインターセプトする(intercept)。次に、VMM131は、VM110が待ち時間高感度であると判断し、したがって、対応するVCPUがコンピュータホスト100の1つ又は複数の物理的CPUに排他的アフィニティを有する状態で実行される。例えば、図3では、VMM131は、VCPU125が、PCPU145に排他的アフィニティを有して実行されると判断する。したがって、VCPU125の中止を行うために、VM131は、物理的中止命令(例えば、物理的HLT、MWAIT、又は同等の命令)を物理的CPU PCPU145に発行する。待ち時間高感度VM110の場合、VMM131が、VCPU125がアイドルであることを通知するカーネルコールを行わないことに留意されたい。むしろ、中止命令がPCPU145に直接発行され、このことは、(VCPU125に対応し、PCPU145で実行されているものとして示されている)タスク300からPCPU145を割り振り解除せずに、そのタスク300を中止するという効果がある。したがって、VCPU125が、中止命令の受信に続けて割り込みを受ける場合、PCPU145は、カーネルスケジューラ135が対応するいかなるタスクもスケジュールする必要もなく、VCPU125に対する処理を即座に開始することが可能である。したがって、非待ち時間高感度VM110に提示される待ち時間は、待ち時間高感度VM110に対しては存在しない。
図4は、1つ又は複数の実施形態による、待ち時間高感度仮想マシンの仮想CPUを中止する方法400を示す流れ図である。示されるように、方法400のステップは、仮想マシンモニタ(図3に示されるVMM131又はVMM131等)及びカーネルスケジューラ(カーネルスケジューラ135等)によって実行される。方法400はステップ410において開始され、ここで、仮想マシンのVMMは、仮想マシンの仮想CPUに対する中止命令を受信する。上述したように、中止命令は、x86プロセッサアーキテクチャのHLT若しくはMWAIT命令であるか、又はプロセッサの実行を中止する任意の同等の命令であり得る。
次に、ステップ420において、VMMは、VMMが待ち時間高感度である仮想マシンに対応するか否かを判断する。1つ又は複数の実施形態によれば、VMMは、待ち時間感度データ構造内のエントリ(例えば、待ち時間感度テーブル155に基づく待ち時間感度データ143等)を調べることにより、対応する仮想マシンの待ち時間感度を特定する。VMMが、受信された中止命令を発行した仮想マシンが待ち時間高感度であると判断する場合、方法400はステップ460に進む。
ステップ460において、VMMは、ホストコンピュータの物理的CPUの1つに排他的アフィニティを有する仮想CPUに中止命令を発行する。したがって、仮想CPUに発行された中止命令は、中止された仮想CPUが実行される物理的CPUを直接中止するという効果を有する。さらに、物理的CPUの中止は、カーネルコールを発行せずに実行される。ステップ460の後、方法400は終了する。
しかし、VMMが、ステップ420において、仮想CPUの中止命令を発行した仮想マシンが待ち時間高感度ではないと判断する場合、方法400はステップ430に進む。ステップ430において、VMMは、仮想CPUに対応するタスクが現在、アイドルであることをカーネルスケジューラ(図1に示されるカーネルスケジューラ135等)に通知するカーネルコールを発行する。ハイパーバイザ及びカーネルスケジューラの観点から、仮想CPUが、物理的プロセッサではなく、実行すべきタスクであることに留意する。
ステップ430においてVMMによって行われたカーネルコールに応答して、カーネルスケジューラは、ステップ440において、仮想CPUに対応するタスクをプリエンプトする。すなわち、カーネルスケジューラは、仮想CPUに対応するタスクを中止する。実施形態によれば、カーネルスケジューラは、仮想CPUタスクの状態を保存し、仮想CPUがアイドル状態ではないようなときに将来実行するためにそのタスクをキューに入れる。
次に、ステップ450において、カーネルスケジューラは、仮想CPUタスクが実行からプリエンプトされた物理的CPUでの別のタスクの実行をスケジュールする。この他のスケジュールされたタスクは、アイドルではない別の仮想CPU、ユーザプログラム、オペレーティングシステムプロセス、又は割り込みハンドラであり得る。他のタスクが物理的CPUでの実行に向けてスケジュールされると、方法400は終了する。
1つ又は複数の実施形態について、理解を明確にするために本明細書において幾らか詳細に説明したが、本開示の趣旨から逸脱せずに、特定の変更及び変形が行われ得ることを認識されたい。本明細書に記載される様々な実施形態は、コンピュータシステムに記憶されたデータを含む様々なコンピュータ実施動作を利用し得る。例えば、これらの動作は、物理的数量の物理的操作を必要とし得、必ずしもではないが通常、これらの数量は電気信号又は磁気信号の形態を取り得、電気信号又は磁気信号又はそれらの表現は、記憶、転送、結合、比較、又は他の様式での操作が可能である。さらに、そのような操作は、多くの場合、用語に関して、製造、生成、識別、特定、又は比較等と呼ばれる。本開示の1つ又は複数の実施形態の一部をなす本明細書に記載される任意の動作は、有用なマシン動作であり得る。さらに、本開示の1つ又は複数の実施形態は、これらの動作を実行するデバイス又は装置にも関する。装置は特に、特定の所要目的に向けて構築されてもよく、又はコンピュータに記憶されたコンピュータプログラムによって選択的にアクティブ化若しくは構成される汎用コンピュータであってもよい。特に、様々な汎用マシンが、本明細書での教示に従って書かれたコンピュータプログラムと併用され得、又は必要とされる動作を実行するより専用化された装置を構築することがより好都合であり得る。
本明細書に記載される様々な実施形態は、ハンドヘルドデバイス、マイクロプロセッサシステム、マイクロプロセッサベース又はプログラマブル消費者電子装置、ミニコンピュータ、メインフレームコンピュータ等を含め、他のコンピュータシステム構成を用いて実施し得る。
本開示の1つ又は複数の実施形態は、1つ若しくは複数のコンピュータプログラムとして、又は1つ若しくは複数のコンピュータ可読媒体で実施される1つ若しくは複数のコンピュータプログラムモジュールとして実施され得る。コンピュータ可読媒体という用語は、データを記憶することができる任意のデータ記憶デバイスを指し、データは後にコンピュータシステムに入力することができ、コンピュータ可読媒体は、コンピュータにより読み出し可能にするようにコンピュータプログラムを実施する任意の既存又は後に開発される技術に基づき得る。コンピュータ可読媒体の例としては、ハードドライブ、ネットワーク接続ストレージ(NAS:network attached storage)、読み取り専用メモリ、ランダムアクセスメモリ(例えば、フラッシュメモリデバイス)、CD(コンパクトディスク)−−CD−ROM、CD−R、又はCD−RW、DVD(デジタル多用途ディスク)、磁気テープ、並びに他の光学及び非光学データ記憶デバイスが挙げられる。コンピュータ可読媒体は、ネットワーク結合されたコンピュータシステムに分散することもでき、それにより、コンピュータ可読コードは分散して記憶され実行される。
本開示の1つ又は複数の実施形態について、理解を明確にするために幾らか詳細に説明したが、特許請求の範囲内で特定の変更及び変形が行われ得ることが明らかであろう。したがって、記載される実施形態は、限定ではなく例示として見なされるべきであり、特許請求の範囲は、本明細書に付与される詳細に限定されるべきではなく、特許請求の範囲及び均等物内で変更が可能である。特許請求の範囲では、要素及び/又はステップは、特許請求の範囲において明示的に記載される場合を除き、いかなる特定の順序の動作も暗示しない。
多くの変形、変更、追加、及び改善が可能である。複数のインスタンスが、1つのインスタンスとして本明細書に記載される構成要素、動作、又は構造に提供され得る。様々な構成要素、動作、及びデータストア間の境界は幾らか任意のものであり、特定の動作は、特定の例示的な構成の文脈で示されている。機能の他の割り振りが考えられ、本開示の範囲内にあり得る。一般に、例示的な構成において別個の構成要素として提示される構造及び機能は、結合された構造又は構成要素として実施され得る。同様に、1つの構成要素として提示される構造及び機能は、別個の構成要素として実施され得る。これら及び他の変形、変更、追加、及び改善は、添付の特許請求の範囲内にあり得る。

Claims (20)

  1. 複数の仮想マシンの実行をサポートする仮想化ソフトウェアを有するホストコンピュータであって、前記仮想化ソフトウェアは、前記複数の仮想マシンのそれぞれの仮想マシンモニタを含み、各仮想マシンモニタは、対応する仮想マシンの仮想中央演算処理装置(CPU)をエミュレートする、前記ホストコンピュータにおいて、仮想マシンの仮想中央演算処理装置の実行を中止する方法であって、
    対応する仮想マシンから仮想マシンモニタにおいて第1の中止命令を受信するステップと、
    前記仮想マシンが待ち時間の影響を受けやすいか否かを前記仮想マシンモニタによって判断するステップと、
    前記仮想マシンが待ち時間の影響を受けやすい場合、前記仮想マシンモニタから、前記仮想中央演算処理装置が実行される物理的中央演算処理装置を中止する第2の中止命令を発行するステップと、
    前記仮想マシンが待ち時間の影響を受けやすくない場合、前記仮想中央演算処理装置がアイドル状態であることを示すシステムコールを前記ホストコンピュータで実行中のカーネルに対して実行するステップとを備える、方法。
  2. 前記第1の中止命令は、前記仮想マシンで実行中のゲストオペレーティングシステムによって発行される、請求項1に記載の方法。
  3. 前記仮想マシンが待ち時間の影響を受けやすい場合、前記仮想中央演算処理装置は、前記物理的中央演算処理装置において排他的モードで実行される、請求項1に記載の方法。
  4. 前記仮想マシンが待ち時間の影響を受けやすいか否かを判断するステップは、
    前記仮想マシンの待ち時間感度インジケータを読み出すステップと、
    前記仮想マシンの中央演算処理装置エンタイトルメント値を読み出すステップと、
    前記待ち時間感度インジケータが所定の値を有するか否かを判断するステップと、
    前記中央演算処理装置エンタイトルメント値が最大値であるか否かを判断するステップとを含む、請求項1に記載の方法。
  5. 前記システムコールは、カーネル中央演算処理装置スケジューラに対して行われる、請求項1に記載の方法。
  6. 前記カーネル中央演算処理装置スケジューラは、前記システムコールに応答して、前記仮想中央演算処理装置をスケジュール解除する、請求項5に記載の方法。
  7. 前記システムコールに応答して、前記カーネル中央演算処理装置スケジューラは、前記物理的中央演算処理装置を前記仮想中央演算処理装置から割り振り解除し、前記物理的中央演算処理装置を他のタスクに割り振る、請求項6に記載の方法。
  8. ホストコンピュータによって実行可能な命令を含む非一時的なコンピュータ可読媒体であって、前記ホストコンピュータは、複数の仮想マシンの実行をサポートする仮想化ソフトウェアを有し、前記仮想化ソフトウェアは、前記複数の仮想マシンの各々の仮想マシンモニタを含み、各仮想マシンモニタは、対応する仮想マシンの仮想中央演算処理装置(CPU)をエミュレートし、前記命令は、実行されると、前記ホストコンピュータに仮想マシの仮想中央演算処理装置の実行を中止する方法を実行させ、前記方法は、
    対応する仮想マシンから仮想マシンモニタにおいて第1の中止命令を受信するステップと、
    前記仮想マシンが待ち時間の影響を受けやすいか否かを前記仮想マシンモニタによって判断するステップと、
    前記仮想マシンが待ち時間の影響を受けやすい場合、前記仮想マシンモニタから、前記仮想中央演算処理装置が実行される物理的中央演算処理装置を中止する第2の中止命令を発行するステップと、
    前記仮想マシンが待ち時間の影響を受けやすくない場合、前記仮想中央演算処理装置がアイドル状態であることを示すシステムコールを前記ホストコンピュータで実行中のカーネルに対して実行するステップとを備える、コンピュータ可読媒体。
  9. 前記第1の中止命令は、前記仮想マシンで実行中のゲストオペレーティングシステムによって発行される、請求項8に記載のコンピュータ可読媒体。
  10. 前記仮想マシンが待ち時間の影響を受けやすい場合、前記仮想中央演算処理装置は、前記物理的中央演算処理装置において排他的モードで実行される、請求項8に記載のコンピュータ可読媒体。
  11. 前記仮想マシンが待ち時間の影響を受けやすいか否かを判断するステップは、
    前記仮想マシンの待ち時間感度インジケータを読み出すステップと、
    前記仮想マシンの中央演算処理装置エンタイトルメント値を読み出すステップと、
    前記待ち時間感度インジケータが所定の値を有するか否かを判断するステップと、
    前記中央演算処理装置エンタイトルメント値が最大値であるか否かを判断するステップとを含む、請求項8に記載のコンピュータ可読媒体。
  12. 前記システムコールは、カーネル中央演算処理装置スケジューラに対して行われる、請求項8に記載のコンピュータ可読媒体。
  13. 前記カーネル中央演算処理装置スケジューラは、前記システムコールに応答して、前記仮想中央演算処理装置をスケジュール解除する、請求項12に記載のコンピュータ可読媒体。
  14. 前記システムコールに応答して、前記カーネル中央演算処理装置スケジューラは、前記物理的中央演算処理装置を前記仮想中央演算処理装置から割り振り解除し、前記物理的中央演算処理装置を他のタスクに割り振る、請求項13に記載のコンピュータ可読媒体。
  15. 仮想化計算システムであって、
    複数の仮想マシンの実行をサポートする仮想化ソフトウェアを有するホストコンピュータと、
    カーネルスケジューラと、
    前記複数の仮想マシンのそれぞれの仮想マシンモニタであって、各仮想マシンモニタは、対応する仮想マシンの仮想中央演算処理装置(CPU)をエミュレートし、各仮想マシンモニタは、仮想マシンの仮想中央演算処理装置の実行を中止する方法を実行するように構成される、前記仮想マシンモニタと
    を備え、前記方法は、
    対応する仮想マシンから仮想マシンモニタにおいて第1の中止命令を受信するステップと、
    前記仮想マシンが待ち時間の影響を受けやすいか否かを前記仮想マシンモニタによって判断するステップと、
    前記仮想マシンが待ち時間の影響を受けやすい場合、前記仮想マシンモニタから、前記仮想中央演算処理装置が実行される物理的中央演算処理装置を中止する第2の中止命令を発行するステップと、
    前記仮想マシンが待ち時間の影響を受けやすくない場合、前記仮想中央演算処理装置がアイドル状態であることを示すシステムコールを前記ホストコンピュータで実行中のカーネルに対して実行するステップとを備える、システム。
  16. 前記第1の中止命令は、前記仮想マシンで実行中のゲストオペレーティングシステムによって発行される、請求項15に記載のシステム。
  17. 前記仮想マシンが待ち時間の影響を受けやすい場合、前記仮想中央演算処理装置は、前記物理的中央演算処理装置において排他的モードで実行される、請求項15に記載のシステム。
  18. 前記仮想マシンが待ち時間の影響を受けやすいか否かを判断するステップは、
    前記仮想マシンの待ち時間感度インジケータを読み出すステップと、
    前記仮想マシンの中央演算処理装置エンタイトルメント値を読み出すステップと、
    前記待ち時間感度インジケータが所定の値を有するか否かを判断するステップと、
    前記中央演算処理装置エンタイトルメント値が最大値であるか否かを判断するステップとを含む、請求項15に記載のシステム。
  19. 前記システムコールは、カーネル中央演算処理装置スケジューラに対して行われる、請求項15に記載のシステム。
  20. 前記カーネル中央演算処理装置スケジューラは、前記システムコールに応答して、前記仮想中央演算処理装置をスケジュール解除し、前記物理的中央演算処理装置を前記仮想中央演算処理装置から割り振り解除し、前記物理的中央演算処理装置を他のタスクに割り振る、請求項19に記載のシステム。
JP2016531957A 2013-08-26 2014-08-25 待ち時間の影響を受けやすい仮想マシンをサポートするように構成された仮想マシンモニタ Active JP6126312B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201361870143P 2013-08-26 2013-08-26
US61/870,143 2013-08-26
PCT/US2014/052557 WO2015031274A1 (en) 2013-08-26 2014-08-25 Virtual machine monitor configured to support latency sensitive virtual machines

Publications (2)

Publication Number Publication Date
JP2016529614A JP2016529614A (ja) 2016-09-23
JP6126312B2 true JP6126312B2 (ja) 2017-05-10

Family

ID=51535540

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2016531956A Active JP6126311B2 (ja) 2013-08-26 2014-08-25 待ち時間の影響を受けやすい仮想マシンをサポートするように構成されるcpuスケジューラ
JP2016531957A Active JP6126312B2 (ja) 2013-08-26 2014-08-25 待ち時間の影響を受けやすい仮想マシンをサポートするように構成された仮想マシンモニタ

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2016531956A Active JP6126311B2 (ja) 2013-08-26 2014-08-25 待ち時間の影響を受けやすい仮想マシンをサポートするように構成されるcpuスケジューラ

Country Status (5)

Country Link
US (8) US9552216B2 (ja)
EP (2) EP3039539B1 (ja)
JP (2) JP6126311B2 (ja)
AU (2) AU2014311463B2 (ja)
WO (4) WO2015031274A1 (ja)

Families Citing this family (113)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6126311B2 (ja) 2013-08-26 2017-05-10 ヴイエムウェア インコーポレイテッドVMware,Inc. 待ち時間の影響を受けやすい仮想マシンをサポートするように構成されるcpuスケジューラ
CN103473136B (zh) * 2013-09-02 2017-06-13 华为技术有限公司 一种虚拟机的资源配置方法和通信设备
US9792152B2 (en) * 2013-12-20 2017-10-17 Red Hat Israel, Ltd. Hypervisor managed scheduling of virtual machines
US10289437B2 (en) 2014-01-07 2019-05-14 Red Hat Israel, Ltd. Idle processor management in virtualized systems via paravirtualization
US10365936B2 (en) * 2014-02-27 2019-07-30 Red Hat Israel, Ltd. Idle processor management by guest in virtualized systems
US9495192B2 (en) 2014-09-30 2016-11-15 Vmware, Inc. NUMA I/O aware network queue assignments
US9971620B2 (en) * 2014-10-15 2018-05-15 Keysight Technologies Singapore (Holdings) Pte Ltd Methods and systems for network packet impairment within virtual machine host systems
US9971619B2 (en) 2014-10-15 2018-05-15 Keysight Technologies Singapore (Holdings) Pte Ltd Methods and systems for forwarding network packets within virtual machine host systems
US10387178B2 (en) * 2014-10-29 2019-08-20 Red Hat Israel, Ltd. Idle based latency reduction for coalesced interrupts
TWI574158B (zh) * 2014-12-01 2017-03-11 旺宏電子股份有限公司 具應用程式資訊感知的資料處理方法以及系統
US20160173600A1 (en) * 2014-12-15 2016-06-16 Cisco Technology, Inc. Programmable processing engine for a virtual interface controller
US10320921B2 (en) 2014-12-17 2019-06-11 Vmware, Inc. Specializing virtual network device processing to bypass forwarding elements for high packet rate applications
US9699060B2 (en) * 2014-12-17 2017-07-04 Vmware, Inc. Specializing virtual network device processing to avoid interrupt processing for high packet rate applications
US9778957B2 (en) * 2015-03-31 2017-10-03 Stitch Fix, Inc. Systems and methods for intelligently distributing tasks received from clients among a plurality of worker resources
JP6488910B2 (ja) * 2015-06-24 2019-03-27 富士通株式会社 制御方法、制御プログラム、及び情報処理装置
US9772792B1 (en) * 2015-06-26 2017-09-26 EMC IP Holding Company LLC Coordinated resource allocation between container groups and storage groups
US10002016B2 (en) * 2015-07-23 2018-06-19 Red Hat, Inc. Configuration of virtual machines in view of response time constraints
US9942131B2 (en) * 2015-07-29 2018-04-10 International Business Machines Corporation Multipathing using flow tunneling through bound overlay virtual machines
US9667725B1 (en) 2015-08-06 2017-05-30 EMC IP Holding Company LLC Provisioning isolated storage resource portions for respective containers in multi-tenant environments
US10356012B2 (en) * 2015-08-20 2019-07-16 Intel Corporation Techniques for routing packets among virtual machines
US10146936B1 (en) 2015-11-12 2018-12-04 EMC IP Holding Company LLC Intrusion detection for storage resources provisioned to containers in multi-tenant environments
US10002247B2 (en) * 2015-12-18 2018-06-19 Amazon Technologies, Inc. Software container registry container image deployment
US10261782B2 (en) 2015-12-18 2019-04-16 Amazon Technologies, Inc. Software container registry service
US10032032B2 (en) 2015-12-18 2018-07-24 Amazon Technologies, Inc. Software container registry inspection
KR101809528B1 (ko) * 2015-12-30 2017-12-15 무진기공주식회사 바이오 디젤 제조용 반응기
US10713195B2 (en) 2016-01-15 2020-07-14 Intel Corporation Interrupts between virtual machines
US9569277B1 (en) 2016-01-29 2017-02-14 International Business Machines Corporation Rebalancing virtual resources for virtual machines based on multiple resource capacities
US9983909B1 (en) 2016-03-15 2018-05-29 EMC IP Holding Company LLC Converged infrastructure platform comprising middleware preconfigured to support containerized workloads
US10326744B1 (en) 2016-03-21 2019-06-18 EMC IP Holding Company LLC Security layer for containers in multi-tenant environments
US11221875B2 (en) * 2016-03-31 2022-01-11 Intel Corporation Cooperative scheduling of virtual machines
US10552205B2 (en) * 2016-04-02 2020-02-04 Intel Corporation Work conserving, load balancing, and scheduling
US10013213B2 (en) 2016-04-22 2018-07-03 EMC IP Holding Company LLC Container migration utilizing state storage of partitioned storage volume
CN106027643B (zh) * 2016-05-18 2018-10-23 无锡华云数据技术服务有限公司 一种基于Kubernetes容器集群管理系统的资源调度方法
US20180004452A1 (en) * 2016-06-30 2018-01-04 Intel Corporation Technologies for providing dynamically managed quality of service in a distributed storage system
US10176007B2 (en) * 2016-08-30 2019-01-08 Red Hat Israel, Ltd. Guest code emulation by virtual machine function
JP6511025B2 (ja) * 2016-09-02 2019-05-08 日本電信電話株式会社 リソース割当装置、リソース割当方法およびリソース割当プログラム
US20180088977A1 (en) * 2016-09-28 2018-03-29 Mark Gray Techniques to determine and mitigate latency in virtual environments
US10452572B2 (en) 2016-10-06 2019-10-22 Vmware, Inc. Automatic system service resource management for virtualizing low-latency workloads that are input/output intensive
US10733591B2 (en) * 2016-10-11 2020-08-04 International Business Machines Corporation Tiered model for event-based serverless computing
CN108023837B (zh) * 2016-10-31 2020-11-20 鸿富锦精密电子(天津)有限公司 虚拟网络交换机系统及其建立方法
US10284557B1 (en) 2016-11-17 2019-05-07 EMC IP Holding Company LLC Secure data proxy for cloud computing environments
US10637817B2 (en) 2016-11-28 2020-04-28 Amazon Technologies, Inc. Managing messaging protocol communications
US10783016B2 (en) 2016-11-28 2020-09-22 Amazon Technologies, Inc. Remote invocation of code execution in a localized device coordinator
US10608973B2 (en) 2016-11-28 2020-03-31 Amazon Technologies, Inc. Embedded codes in messaging protocol communications
US10372486B2 (en) 2016-11-28 2019-08-06 Amazon Technologies, Inc. Localized device coordinator
US10216540B2 (en) 2016-11-28 2019-02-26 Amazon Technologies, Inc. Localized device coordinator with on-demand code execution capabilities
AU2017363366B2 (en) * 2016-11-28 2020-06-11 Amazon Technologies, Inc. On-demand code execution in a localized device coordinator
US10452439B2 (en) 2016-11-28 2019-10-22 Amazon Technologies, Inc. On-demand code execution in a localized device coordinator
US10417049B2 (en) 2016-11-28 2019-09-17 Amazon Technologies, Inc. Intra-code communication in a localized device coordinator
US10310887B2 (en) 2017-02-22 2019-06-04 Red Hat, Inc. CPU overcommit with guest idle polling
US10055248B1 (en) * 2017-02-22 2018-08-21 Red Hat, Inc. Virtual processor scheduling via memory monitoring
US11128437B1 (en) 2017-03-30 2021-09-21 EMC IP Holding Company LLC Distributed ledger for peer-to-peer cloud resource sharing
US10956193B2 (en) * 2017-03-31 2021-03-23 Microsoft Technology Licensing, Llc Hypervisor virtual processor execution with extra-hypervisor scheduling
US10402341B2 (en) 2017-05-10 2019-09-03 Red Hat Israel, Ltd. Kernel-assisted inter-process data transfer
US11055133B2 (en) 2017-05-26 2021-07-06 Red Hat, Inc. Node-local-unscheduler for scheduling remediation
US10437308B2 (en) 2017-06-05 2019-10-08 Red Hat, Inc. Predictive virtual machine halt
CN109144844B (zh) 2017-06-27 2023-01-31 阿里巴巴集团控股有限公司 追踪方法、装置、设备和机器可读介质
US10645093B2 (en) * 2017-07-11 2020-05-05 Nicira, Inc. Reduction in secure protocol overhead when transferring packets between hosts
US10394603B2 (en) * 2017-07-28 2019-08-27 Genband Us Llc Virtual container processing on high performance computing processors
US11295382B2 (en) * 2017-09-12 2022-04-05 Mark Gimple System and method for global trading exchange
US10474392B2 (en) * 2017-09-19 2019-11-12 Microsoft Technology Licensing, Llc Dynamic scheduling for virtual storage devices
CN109522101B (zh) * 2017-09-20 2023-11-14 三星电子株式会社 用于调度多个操作系统任务的方法、系统和/或装置
US10810038B2 (en) 2017-09-22 2020-10-20 International Business Machines Corporation Accounting and enforcing non-process execution by container-based software receiving data over a network
US10545786B2 (en) 2017-09-22 2020-01-28 International Business Machines Corporation Accounting and enforcing non-process execution by container-based software transmitting data over a network
US10397186B2 (en) 2017-10-06 2019-08-27 Stealthpath, Inc. Methods for internet communication security
US10374803B2 (en) 2017-10-06 2019-08-06 Stealthpath, Inc. Methods for internet communication security
US10375019B2 (en) 2017-10-06 2019-08-06 Stealthpath, Inc. Methods for internet communication security
US10361859B2 (en) 2017-10-06 2019-07-23 Stealthpath, Inc. Methods for internet communication security
US10630642B2 (en) 2017-10-06 2020-04-21 Stealthpath, Inc. Methods for internet communication security
US10367811B2 (en) 2017-10-06 2019-07-30 Stealthpath, Inc. Methods for internet communication security
US11159627B1 (en) 2017-10-20 2021-10-26 Parallels International Gmbh Seamless remote network redirection
US10581636B1 (en) * 2017-10-20 2020-03-03 Parallels International Gmbh Network tunneling for virtual machines across a wide-area network
CN108196958B (zh) * 2017-12-29 2020-09-29 北京泽塔云科技股份有限公司 资源调度分配方法、计算机系统及超融合架构系统
CN108279979B (zh) * 2018-01-19 2021-02-19 聚好看科技股份有限公司 一种为应用程序容器绑定cpu的方法及装置
US11063745B1 (en) 2018-02-13 2021-07-13 EMC IP Holding Company LLC Distributed ledger for multi-cloud service automation
CN108897622A (zh) * 2018-06-29 2018-11-27 郑州云海信息技术有限公司 一种任务运行的调度方法以及相关装置
CN109117265A (zh) * 2018-07-12 2019-01-01 北京百度网讯科技有限公司 在集群中调度作业的方法、装置、设备及存储介质
US10691495B2 (en) * 2018-07-25 2020-06-23 Vmware, Inc. Virtual processor allocation with execution guarantee
US11036555B2 (en) 2018-07-25 2021-06-15 Vmware, Inc. Virtual processor allocation with execution guarantee
US10708082B1 (en) * 2018-08-31 2020-07-07 Juniper Networks, Inc. Unified control plane for nested clusters in a virtualized computing infrastructure
CN109343947A (zh) * 2018-09-26 2019-02-15 郑州云海信息技术有限公司 一种资源调度方法及装置
US11200331B1 (en) 2018-11-21 2021-12-14 Amazon Technologies, Inc. Management of protected data in a localized device coordinator
GB2570991B (en) * 2018-12-14 2020-04-22 Lendinvest Ltd Instruction allocation and processing system and method
JP7151530B2 (ja) * 2019-02-13 2022-10-12 日本電信電話株式会社 サーバ基盤および物理cpu割当プログラム
US11129171B2 (en) 2019-02-27 2021-09-21 Charter Communications Operating, Llc Methods and apparatus for wireless signal maximization and management in a quasi-licensed wireless system
US11372654B1 (en) 2019-03-25 2022-06-28 Amazon Technologies, Inc. Remote filesystem permissions management for on-demand code execution
US10904167B2 (en) * 2019-04-25 2021-01-26 Red Hat, Inc. Incoming packet processing for a computer system
US11374779B2 (en) 2019-06-30 2022-06-28 Charter Communications Operating, Llc Wireless enabled distributed data apparatus and methods
WO2021006899A1 (en) * 2019-07-10 2021-01-14 Hewlett-Packard Development Company, L.P. Executing containers during idle states
US11182222B2 (en) * 2019-07-26 2021-11-23 Charter Communications Operating, Llc Methods and apparatus for multi-processor device software development and operation
US11368552B2 (en) 2019-09-17 2022-06-21 Charter Communications Operating, Llc Methods and apparatus for supporting platform and application development and operation
CN112631744A (zh) * 2019-09-24 2021-04-09 阿里巴巴集团控股有限公司 进程处理方法、装置、电子设备及计算机可读存储介质
US11558423B2 (en) 2019-09-27 2023-01-17 Stealthpath, Inc. Methods for zero trust security with high quality of service
US11026205B2 (en) 2019-10-23 2021-06-01 Charter Communications Operating, Llc Methods and apparatus for device registration in a quasi-licensed wireless system
US11144419B2 (en) 2019-10-25 2021-10-12 Red Hat, Inc. Controlled use of a memory monitor instruction and memory wait instruction in a virtualized environment
US11457485B2 (en) 2019-11-06 2022-09-27 Charter Communications Operating, Llc Methods and apparatus for enhancing coverage in quasi-licensed wireless systems
US11347558B2 (en) 2019-12-09 2022-05-31 Nutanix, Inc. Security-aware scheduling of virtual machines in a multi-tenant infrastructure
CN111107100B (zh) * 2019-12-30 2022-03-01 杭州迪普科技股份有限公司 用于传输工业协议流量报文的设备
US11363466B2 (en) 2020-01-22 2022-06-14 Charter Communications Operating, Llc Methods and apparatus for antenna optimization in a quasi-licensed wireless system
US11074202B1 (en) 2020-02-26 2021-07-27 Red Hat, Inc. Efficient management of bus bandwidth for multiple drivers
CN111427669A (zh) * 2020-04-27 2020-07-17 安谋科技(中国)有限公司 计算机设备上的虚拟机的管理方法、装置、介质和系统
CN111769910B (zh) * 2020-06-28 2023-04-18 网宿科技股份有限公司 一种数据传输方法及装置
CN111831398A (zh) * 2020-07-20 2020-10-27 平安科技(深圳)有限公司 虚拟机创建及cpu资源分配方法、装置、设备
US20230195482A1 (en) * 2020-07-21 2023-06-22 Vmware, Inc. Offloading Packet Processing Programs from Virtual Machines to a Hypervisor and Efficiently Executing the Offloaded Packet Processing Programs
US11429424B2 (en) * 2020-07-22 2022-08-30 Vmware, Inc. Fine-grained application-aware latency optimization for virtual machines at runtime
US11656100B2 (en) 2020-10-08 2023-05-23 Pulse Innovation Labs, Inc. Angular displacement sensor
CN112667364B (zh) * 2021-01-05 2022-07-01 烽火通信科技股份有限公司 绑核与非绑核虚拟混合部署方法、装置、设备及存储介质
CN113282525B (zh) * 2021-05-27 2023-03-28 杭州迪普科技股份有限公司 一种报文分流的方法及装置
US11595321B2 (en) 2021-07-06 2023-02-28 Vmware, Inc. Cluster capacity management for hyper converged infrastructure updates
JPWO2023007618A1 (ja) * 2021-07-28 2023-02-02
WO2023034221A1 (en) * 2021-09-03 2023-03-09 Groq, Inc. Scale computing in deterministic cloud environments
CN113553164B (zh) * 2021-09-17 2022-02-25 统信软件技术有限公司 一种进程迁移方法、计算设备及存储介质
US11716378B2 (en) 2021-09-28 2023-08-01 Red Hat, Inc. Optimized network device queue management for hybrid cloud networking workloads

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7065762B1 (en) 1999-03-22 2006-06-20 Cisco Technology, Inc. Method, apparatus and computer program product for borrowed-virtual-time scheduling
US7236459B1 (en) * 2002-05-06 2007-06-26 Packeteer, Inc. Method and apparatus for controlling data transmission volume using explicit rate control and queuing without data rate supervision
US7765543B1 (en) 2003-12-17 2010-07-27 Vmware, Inc. Selective descheduling of idling guests running on a host computer system
US7626988B2 (en) * 2004-06-09 2009-12-01 Futurewei Technologies, Inc. Latency-based scheduling and dropping
US8005022B2 (en) 2006-07-20 2011-08-23 Oracle America, Inc. Host operating system bypass for packets destined for a virtual machine
US7826468B2 (en) * 2006-08-04 2010-11-02 Fujitsu Limited System and method for bypassing an output queue structure of a switch
US8458366B2 (en) * 2007-09-27 2013-06-04 Oracle America, Inc. Method and system for onloading network services
US20100106874A1 (en) 2008-10-28 2010-04-29 Charles Dominguez Packet Filter Optimization For Network Interfaces
JP2010122805A (ja) * 2008-11-18 2010-06-03 Hitachi Ltd 仮想サーバシステム並びに物理cpu及び物理メモリの割り当て方法
JP4871948B2 (ja) * 2008-12-02 2012-02-08 株式会社日立製作所 仮想計算機システム、仮想計算機システムにおけるハイパバイザ、及び仮想計算機システムにおけるスケジューリング方法
US8719823B2 (en) 2009-03-04 2014-05-06 Vmware, Inc. Managing latency introduced by virtualization
US8478924B2 (en) 2009-04-24 2013-07-02 Vmware, Inc. Interrupt coalescing for outstanding input/output completions
US8194670B2 (en) * 2009-06-30 2012-06-05 Oracle America, Inc. Upper layer based dynamic hardware transmit descriptor reclaiming
JP2011018136A (ja) * 2009-07-07 2011-01-27 Fuji Xerox Co Ltd 画像処理装置およびプログラム
US8245234B2 (en) 2009-08-10 2012-08-14 Avaya Inc. Credit scheduler for ordering the execution of tasks
US8364997B2 (en) * 2009-12-22 2013-01-29 Intel Corporation Virtual-CPU based frequency and voltage scaling
CN102667725B (zh) * 2010-01-13 2015-09-16 马维尔以色列(M.I.S.L.)有限公司 用于媒体处理的硬件虚拟化
US8489789B2 (en) 2010-02-05 2013-07-16 Advanced Micro Devices, Inc. Interrupt virtualization
US8312463B2 (en) 2010-03-30 2012-11-13 Microsoft Corporation Resource management in computing scenarios
CN102473118B (zh) * 2010-05-24 2016-10-12 松下电器(美国)知识产权公司 信息处理系统
US8533713B2 (en) * 2011-03-29 2013-09-10 Intel Corporation Efficent migration of virtual functions to enable high availability and resource rebalance
US9021475B2 (en) * 2011-05-04 2015-04-28 Citrix Systems, Inc. Systems and methods for SR-IOV pass-thru via an intermediary device
JP5624084B2 (ja) * 2012-06-04 2014-11-12 株式会社日立製作所 計算機、仮想化機構、及びスケジューリング方法
US8943252B2 (en) 2012-08-16 2015-01-27 Microsoft Corporation Latency sensitive software interrupt and thread scheduling
US9317310B2 (en) 2013-01-31 2016-04-19 Broadcom Corporation Systems and methods for handling virtual machine packets
US9720717B2 (en) * 2013-03-14 2017-08-01 Sandisk Technologies Llc Virtualization support for storage devices
JP6126311B2 (ja) 2013-08-26 2017-05-10 ヴイエムウェア インコーポレイテッドVMware,Inc. 待ち時間の影響を受けやすい仮想マシンをサポートするように構成されるcpuスケジューラ

Also Published As

Publication number Publication date
US20150058847A1 (en) 2015-02-26
EP3039539B1 (en) 2019-02-20
US9652280B2 (en) 2017-05-16
US20170308394A1 (en) 2017-10-26
US20160162336A1 (en) 2016-06-09
WO2015031277A1 (en) 2015-03-05
AU2014311463A1 (en) 2016-02-18
US20150058861A1 (en) 2015-02-26
US20170249186A1 (en) 2017-08-31
US20150055499A1 (en) 2015-02-26
US9262198B2 (en) 2016-02-16
AU2014311463B2 (en) 2017-02-16
US9317318B2 (en) 2016-04-19
US9552216B2 (en) 2017-01-24
JP2016529614A (ja) 2016-09-23
AU2014311461A1 (en) 2016-02-18
EP3039540B1 (en) 2021-08-11
JP6126311B2 (ja) 2017-05-10
EP3039539A1 (en) 2016-07-06
US10061610B2 (en) 2018-08-28
US9703589B2 (en) 2017-07-11
US20150058846A1 (en) 2015-02-26
JP2016529613A (ja) 2016-09-23
EP3039540A1 (en) 2016-07-06
WO2015031272A1 (en) 2015-03-05
US10073711B2 (en) 2018-09-11
WO2015031274A1 (en) 2015-03-05
US20160224370A1 (en) 2016-08-04
WO2015031279A1 (en) 2015-03-05
AU2014311461B2 (en) 2017-02-16
US10860356B2 (en) 2020-12-08

Similar Documents

Publication Publication Date Title
JP6126312B2 (ja) 待ち時間の影響を受けやすい仮想マシンをサポートするように構成された仮想マシンモニタ
US11797327B2 (en) Dynamic virtual machine sizing
US10452572B2 (en) Automatic system service resource management for virtualizing low-latency workloads that are input/output intensive
US9176787B2 (en) Preserving, from resource management adjustment, portions of an overcommitted resource managed by a hypervisor
US11429424B2 (en) Fine-grained application-aware latency optimization for virtual machines at runtime
US11934890B2 (en) Opportunistic exclusive affinity for threads in a virtualized computing system
US20240028361A1 (en) Virtualized cache allocation in a virtualized computing system

Legal Events

Date Code Title Description
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: 20170314

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170406

R150 Certificate of patent or registration of utility model

Ref document number: 6126312

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250