JP5507660B2 - 仮想マシン用非一様仮想メモリーアーキテクチャー - Google Patents
仮想マシン用非一様仮想メモリーアーキテクチャー Download PDFInfo
- Publication number
- JP5507660B2 JP5507660B2 JP2012502133A JP2012502133A JP5507660B2 JP 5507660 B2 JP5507660 B2 JP 5507660B2 JP 2012502133 A JP2012502133 A JP 2012502133A JP 2012502133 A JP2012502133 A JP 2012502133A JP 5507660 B2 JP5507660 B2 JP 5507660B2
- Authority
- JP
- Japan
- Prior art keywords
- virtual
- memory
- numa node
- numa
- nodes
- 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
- 230000015654 memory Effects 0.000 title claims description 270
- 238000000034 method Methods 0.000 claims description 52
- 238000013507 mapping Methods 0.000 claims description 12
- 102100036961 Nuclear mitotic apparatus protein 1 Human genes 0.000 description 329
- 101000598160 Homo sapiens Nuclear mitotic apparatus protein 1 Proteins 0.000 description 95
- 238000005192 partition Methods 0.000 description 31
- 238000002821 scintillation proximity assay Methods 0.000 description 18
- 230000008569 process Effects 0.000 description 13
- 230000003287 optical effect Effects 0.000 description 10
- 230000007423 decrease Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 4
- 238000007792 addition Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 230000005055 memory storage Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- 230000002411 adverse Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000011017 operating method Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000004513 sizing Methods 0.000 description 1
Images
Classifications
-
- 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0284—Multiple user address space allocation, e.g. using different base addresses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0615—Address space extension
- G06F12/0623—Address space extension for memory modules
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/161—Computing infrastructure, e.g. computer clusters, blade chassis or hardware partitioning
-
- 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
-
- 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/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
-
- 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
-
- 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
- G06F9/5088—Techniques for rebalancing the load in a distributed system involving task migration
-
- 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/4557—Distribution of virtual machine instances; Migration and load balancing
-
- 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/45583—Memory management, e.g. access or allocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Stored Programmes (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
そして図6及び/又は図7を参照すると、例えば、仮想NUMAノード(606〜608)を有する仮想マシン(240)は、計算機システム(600)又は(700)によって達成され得る。すなわち、VID(810)は、RAMからのシステム物理アドレスを有する仮想マシン(240)のゲスト物理アドレスと、1つ以上の論理プロセッサーを有する仮想プロセッサーと、を支援し得る。例えば、ゲスト物理アドレスブロック(614)がシステム物理アドレスブロック(622)を用いて支援され得、ゲスト物理アドレスブロック(616)がシステム物理アドレスブロック(624)によって支援され得る。ハイパーバイザースレッドがその後、仮想プロセッサーを支援している論理プロセッサー上にスケジューリングされ得、仮想プロセッサーの命令指標が実行され得る。図6及び図7によって示されるように、仮想マシンそれぞれのトポロジーが、基本ハードウェアトポロジーから独立して生成され得る。すなわち、仮想マシンのトポロジーそれぞれは、それを達成する計算機システムの基本物理トポロジーから分離されている。
この例において、仮想マシン(240)の仮想NUMAノードが、例えば、図7のNUMAノード(702)及び(704)へマッピングされ得、仮想マシン(242)の仮想NUMAノードが、例えば、NUMAノード(706)へマッピングされ得る。この例において、仮想マシン(240)及び(242)それぞれ及び/又は仮想NUMAノード(606〜612)それぞれは目標の圧力値を有し得、DMVSP(802)によってアクセスされ得るデータ構造でストアされ得る。この例において、第2の仮想マシンのメモリー圧力(242)は、仮想マシン、例えば、多くの読み出し又は書き出しリクエストを受信した仮想マシン(242)における活動のために増大し得、その値がDMVSP(802)によって受信され得る。DMVSP(802)が、実行中の仮想マシン又は仮想NUMAノードの現在の圧力値を受信し得、実行中の仮想マシン又は仮想NUMAノードのリストを介し連続的にステップし得、メモリー圧力を軽減するために、メモリーが仮想マシン(242)にコミットされ得るか否か決定し得る。
この例において、仮想プロセッサーのような仮想プロセッサーが、例えば、プロセッサーのホット追加動作を使用し仮想マシン(240)のランタイム実行中に追加され得る。実施形態において、新しく追加された仮想プロセッサーが仮想プロセッサー(230A)を支援しているプロセッサーへ割り当てられ得るか、又は別の論理プロセッサーが新しく追加された仮想プロセッサーのスレッドを実行する理想的なプロセッサーとして設定され得る。NUMA実施形態において、論理プロセッサーは、仮想NUMAノード(606)を支援している同一のNUMAノード(702)から割り当てられ得る。
21 論理プロセッサー
22 システムメモリー
23 システムバス
24 読み出し専用メモリー(ROM)
25 ランダムアクセスメモリー(RAM)
26 基本入力/出力システム(BIOS)
27 ハードディスクドライブ
28 磁気ディスクドライブ
29 取り外し可能磁気ディスク
30 光学式ディスクドライブ
31 取り外し可能光学式ディスク
32 ハードディスクドライブインターフェース
33 磁気ディスクドライブインターフェース
34 光学式ドライブインターフェース
35 オペレーティングシステム
36 アプリケーションプログラム
37 その他のプログラムモジュール
38 プログラムデータ
40 キーボード
42 ポインティングデバイス
46 シリアルポートインターフェース
47 ディスプレイ
48 ビデオアダプター
49 リモートコンピューター
50 メモリー記憶装置
51 ローカルエリアネットワーク(LAN)
52 広域ネットワーク(WAN)
53 アダプター
54 モデム
55 ホストアダプター
56 小型コンピューター用周辺機器インターフェース(SCSI)バス
62 外部記憶装置
200 計算機システム
202 ハイパーバイザー
204 親パーティション
208 記憶装置
210 ネットワークインターフェースコントローラー(NIC)
212 論理プロセッサー
214 ランダムアクセスメモリー(RAM)
216 仮想化サービスクライアント(VSC)
218 仮想化サービスクライアント(VSC)
220 ゲストオペレーティングシステム
222 ゲストオペレーティングシステム
224 デバイスドライバー
228 仮想化サービスプロバイダー
230 仮想プロセッサー
232 仮想プロセッサー
234 画像処理装置
236 設定ユーティリティ
240 仮想マシン
242 仮想マシン
300 計算機システム
500 データセンター
502 管理システム
504 計算機システム
506 計算機システム
508 計算機システム
510 計算機システム
600 計算機システム
602 メモリーコントローラー
606 仮想NUMAノード
608 仮想NUMAノード
610 仮想NUMAノード
612 仮想NUMAノード
614 ゲスト物理アドレス
616 ゲスト物理アドレス
618 ゲスト物理アドレス
620 ゲスト物理アドレス
622 システム物理アドレスブロック
624 システム物理アドレスブロック
626 システム物理アドレスブロック
628 システム物理アドレスブロック
630 システム物理アドレスブロック
632 システム物理アドレスブロック
700 計算機システム
702 NUMAノード
704 NUMAノード
706 NUMAノード
708 相互接続
802 ダイナミックメモリー仮想化サービスプロバイダー(DMVSP)
804 ダイナミックメモリー仮想化サービスクライアント(DMVSC)
806 ダイナミックメモリー仮想化サービスクライアントDMVSC
808 ゲストオペレーティングシステムメモリーマネージャー
810 仮想基盤ドライバー(VID)
812 ワーカープロセス
Claims (20)
- 仮想マシンをインスタンス化するためのリクエストを受信するステップであって前記リクエストが、前記仮想マシンに関する特性を含んでいるものと、
前記特性に基づいて、前記仮想マシンに関する仮想非一様メモリ・アーキテクチャ(NUMA:Non-Uniform Memory Architecture)ノードトポロジーを選択するステップであって前記仮想NUMAノードトポロジーが、複数の仮想NUMAノードを含んでいるものと、
前記仮想マシンを計算機システム上でインスタンス化するステップであって前記仮想マシンが、前記複数の仮想NUMAノードを含んでいるものと、
前記複数の仮想NUMAノードの内の特定の仮想NUMAノードにおけるメモリー圧力に基づいて、前記特定の仮想NUMAノードに割り当てられるゲストメモリー容量を調整するステップと、を含む方法。 - 更に、
前記複数の仮想NUMAノードの内の第2の仮想NUMAノードにおけるメモリー圧力が所定の値よりも大きいことを決定するステップと、
前記第2の仮想NUMAノードを前記計算機システムの第2のNUMAノードへ移動させるステップと、を含む請求項1記載の方法。 - 前記ゲストメモリー容量を調整するステップが更に、
ゲストメモリーの少なくとも1つのメモリーブロックを前記特定の仮想NUMAノードからデコミットするステップと、
前記ゲストメモリーの少なくとも1つのデコミットされたメモリーブロックを第2の仮想NUMAノードへコミットするステップと、を含むことを特徴とする請求項1記載の方法。 - 前記ゲストメモリー容量を調整するステップが更に、
前記特定の仮想NUMAノードの少なくとも1つのゲストメモリーブロックがシステムメモリーと分離されていることを決定するステップと、
前記ゲストメモリーの少なくとも1つのメモリーブロックをシステムメモリーの少なくとも1つのメモリーブロック上へマッピングするステップと、を含むことを特徴とする請求項1記載の方法。 - 更に、
前記特定の仮想NUMAノードを前記計算機システムの第1のNUMAノード上へマッピングするステップと、
前記特定の仮想NUMAノードを前記計算機システムの第2のNUMAノード上へ移動させるステップと、を含む請求項1記載の方法。 - 更に、
仮想プロセッサーを特定の前記仮想NUMAノードに追加するステップを含む請求項1記載の方法。 - 更に、
前記仮想マシンの仮想プロセッサーと、論理プロセッサーに割り当てられた前記仮想プロセッサーと、NUMAノードに割り当てられ前記論理プロセッサーと、及び前記複数の仮想NUMAノードの内の1つに割り当てられた前記仮想プロセッサーと、を実行するためのリクエストを受信するステップと、
前記論理プロセッサーが前記仮想プロセッサーを実行不可能なことを決定するステップと、
前記仮想プロセッサーを実行する第2の論理プロセッサーを選択するステップであって前記第2の論理プロセッサーが、第2のNUMAノードから提供されているもの、を含む請求項1記載の方法。 - 計算機システムであって、
仮想マシンを実行するための回路であって前記仮想マシンが、複数の仮想非一様メモリ・アーキテクチャ(NUMA:Non-Uniform Memory Architecture)ノードを含むトポロジーを有しており、前記仮想マシンの前記トポロジーが、前記計算機システムの物理トポロジーから独立して生成されるものと、
前記複数の仮想NUMAノードの内の仮想NUMAノードそれぞれにおけるメモリー圧力を決定するための回路と、
前記複数の仮想NUMAノードの内の仮想NUMAノードそれぞれにおける前記メモリー圧力に基づいて、前記複数の仮想NUMAノードの少なくとも1つに割り当てられるゲストメモリーを調整するための回路と、を含む計算機システム。 - 更に、
前記仮想マシンを第2の計算機システムへ送信するための回路を含む請求項8記載の計算機システム。 - 更に、
前記複数の仮想NUMAノードの内の第1の仮想NUMAノードを前記計算機システムの第1のNUMAノード上へマッピングするための回路と、
前記複数の仮想NUMAノードの内の第2の仮想NUMAノードを前記計算機システムの前記第1のNUMAノード上へマッピングするための回路と、を含む請求項8記載の計算機システム。 - 更に、
前記複数の仮想NUMAノードの内の第1の仮想NUMAノードを前記計算機システムの第1のNUMAノード上へマッピングするための回路と、
前記複数の仮想NUMAノードの内の第2の仮想NUMAノードを前記計算機システムの第2のNUMAノード上へマッピングするための回路と、を含む請求項8記載の計算機システム。 - 更に、
前記第2の仮想NUMAノードにおけるメモリー圧力が所定の値よりも大きいことを決定するための回路と、
前記第2の仮想NUMAノードを前記計算機システムの第2のNUMAノードへ移動させるための回路と、を含む請求項10記載の計算機システム。 - 更に、
前記第2の仮想NUMAノードのメモリー圧力が所定の値よりも大きいことを決定するための回路と、
前記仮想マシンの前記第2の仮想NUMAノードを前記計算機システムの前記第1のNUMAノードへ移動させるための回路と、を含む請求項11記載の計算機システム。 - プロセッサー実行可能命令を含む計算機可読記憶媒体であって、
第1の仮想マシンを実行するための命令であって前記仮想マシンが、複数の仮想非一様メモリ・アーキテクチャ(NUMA:Non-Uniform Memory Architecture)ノードを含むトポロジーを有しており、前記複数の仮想NUMAノードの内の仮想NUMAノードそれぞれが、仮想プロセッサー及びゲスト物理アドレスを含んでおり、前記仮想マシンの前記トポロジーが、計算機システムの物理トポロジーから独立して生成されるものと、
前記第1の仮想マシンのランタイム実行中に、増設の仮想プロセッサーを前記複数の仮想NUMAノードの内の仮想NUMAノードに追加するための命令と、を含む前記計算機可読記憶媒体。 - 更に、
前記複数の仮想NUMAノードの内の仮想NUMAノードそれぞれにおけるメモリー圧力を決定するための命令と、
前記複数の仮想NUMAノードの内の仮想NUMAノードそれぞれにおける前記メモリー圧力に基づいて、複数の仮想NUMAノードの内の仮想NUMAノードの少なくとも1つに割り当てられるゲストメモリーを調整するための命令と、を含む請求項14記載の計算機可読記憶媒体。 - 更に、
前記複数の仮想NUMAノードの内の仮想NUMAノードから仮想プロセッサーを移動するための命令を含む請求項14記載の計算機可読記憶媒体。 - 更に、
前記複数の仮想NUMAノードに関するNUMA比をゲストオペレーティングシステムへ報告するための命令を含む請求項14記載の計算機可読記憶媒体。 - 更に、
前記仮想マシンを第1のNUMAノードから複数のNUMAノードへ移動させるための命令を含む請求項14記載の計算機可読記憶媒体。 - 前記ゲストメモリーを調整するための前記命令が更に、
前記複数の仮想NUMAノードの内の第1の仮想NUMAノードの現在の前記メモリー圧力が目標の閾値よりも低いという決定に基づいて、前記第1の仮想NUMAノードからメモリーをデコミットするための命令を含むことを特徴とする請求項15記載の計算機可読記憶媒体。 - 前記ゲストメモリーを調整するための前記命令が更に、
ゲストオペレーティングシステムの現在のメモリー圧力が目標の閾値よりも大きいという決定に基づいて、前記複数の仮想NUMAノードの内の第1の仮想NUMAノードへメモリーをコミットするための命令を含むことを特徴とする請求項15記載の計算機可読記憶媒体。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/412,272 | 2009-03-26 | ||
US12/412,272 US9529636B2 (en) | 2009-03-26 | 2009-03-26 | System and method for adjusting guest memory allocation based on memory pressure in virtual NUMA nodes of a virtual machine |
PCT/US2010/028034 WO2010111149A2 (en) | 2009-03-26 | 2010-03-19 | Virtual non-uniform memory architecture for virtual machines |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2012521610A JP2012521610A (ja) | 2012-09-13 |
JP2012521610A5 JP2012521610A5 (ja) | 2013-03-28 |
JP5507660B2 true JP5507660B2 (ja) | 2014-05-28 |
Family
ID=42781790
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012502133A Active JP5507660B2 (ja) | 2009-03-26 | 2010-03-19 | 仮想マシン用非一様仮想メモリーアーキテクチャー |
Country Status (9)
Country | Link |
---|---|
US (2) | US9529636B2 (ja) |
EP (1) | EP2411915B1 (ja) |
JP (1) | JP5507660B2 (ja) |
KR (1) | KR101661783B1 (ja) |
CN (1) | CN102365625B (ja) |
BR (1) | BRPI1009277B1 (ja) |
CA (1) | CA2753228C (ja) |
RU (1) | RU2569805C2 (ja) |
WO (1) | WO2010111149A2 (ja) |
Families Citing this family (51)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9535767B2 (en) | 2009-03-26 | 2017-01-03 | Microsoft Technology Licensing, Llc | Instantiating a virtual machine with a virtual non-uniform memory architecture |
US9529636B2 (en) | 2009-03-26 | 2016-12-27 | Microsoft Technology Licensing, Llc | System and method for adjusting guest memory allocation based on memory pressure in virtual NUMA nodes of a virtual machine |
US20110153715A1 (en) * | 2009-12-17 | 2011-06-23 | Microsoft Corporation | Lightweight service migration |
US9389895B2 (en) * | 2009-12-17 | 2016-07-12 | Microsoft Technology Licensing, Llc | Virtual storage target offload techniques |
US9086921B2 (en) | 2010-11-16 | 2015-07-21 | Vmware, Inc. | Dynamic database memory management according to swap rates |
US8943259B2 (en) * | 2010-11-16 | 2015-01-27 | Vmware, Inc. | Relieving memory pressure in a host using database memory management |
US8935456B2 (en) * | 2010-11-16 | 2015-01-13 | Vmware, Inc. | Method and system for integrating database memory management in virtual machines |
US9250863B1 (en) * | 2010-12-28 | 2016-02-02 | Amazon Technologies, Inc. | Managing virtual machine migration |
US9183030B2 (en) | 2011-04-27 | 2015-11-10 | Microsoft Technology Licensing, Llc | Virtual processor allocation techniques |
US8706869B2 (en) * | 2011-06-14 | 2014-04-22 | International Business Machines Corporation | Distributed cloud placement software |
WO2012106908A1 (zh) * | 2011-07-20 | 2012-08-16 | 华为技术有限公司 | 多处理器体系结构远端内存访问的模拟方法及模拟器 |
US9176780B2 (en) * | 2011-08-23 | 2015-11-03 | Vmware, Inc. | Dynamically balancing memory resources between host and guest system based on relative amount of freeable memory and amount of memory allocated to hidden applications |
US8627036B2 (en) | 2011-09-12 | 2014-01-07 | Microsoft Corporation | Memory management techniques |
US20130093776A1 (en) * | 2011-10-14 | 2013-04-18 | Microsoft Corporation | Delivering a Single End User Experience to a Client from Multiple Servers |
WO2012149812A1 (zh) * | 2011-10-27 | 2012-11-08 | 华为技术有限公司 | 一种防止节点控制器死锁的方法及节点控制器 |
US8793459B2 (en) | 2011-10-31 | 2014-07-29 | International Business Machines Corporation | Implementing feedback directed NUMA mitigation tuning |
WO2013115565A2 (ko) * | 2012-01-30 | 2013-08-08 | 엘지전자 주식회사 | 가상 머신 관리 방법 및 이를 위한 장치 |
US9286131B2 (en) * | 2012-11-14 | 2016-03-15 | Red Hat Israel, Ltd. | Processor unplug in virtualized computer system |
US20140229940A1 (en) * | 2013-02-14 | 2014-08-14 | General Dynamics C4 Systems, Inc. | Methods and apparatus for synchronizing multiple processors of a virtual machine |
US9178815B2 (en) * | 2013-03-05 | 2015-11-03 | Intel Corporation | NIC flow switching |
US9471394B2 (en) * | 2013-03-13 | 2016-10-18 | Cloubrain, Inc. | Feedback system for optimizing the allocation of resources in a data center |
US9699093B2 (en) * | 2013-06-12 | 2017-07-04 | Dell Products L.P. | Migration of virtual machine based on proximity to peripheral device in NUMA environment |
US9600551B2 (en) | 2013-10-24 | 2017-03-21 | Sap Se | Coexistence of message-passing-like algorithms and procedural coding |
US9684685B2 (en) * | 2013-10-24 | 2017-06-20 | Sap Se | Using message-passing with procedural code in a database kernel |
US9553822B2 (en) | 2013-11-12 | 2017-01-24 | Microsoft Technology Licensing, Llc | Constructing virtual motherboards and virtual storage devices |
US9582223B2 (en) * | 2014-04-14 | 2017-02-28 | International Business Machines Corporation | Efficient reclamation of pre-allocated direct memory access (DMA) memory |
US9940167B2 (en) * | 2014-05-20 | 2018-04-10 | Red Hat Israel, Ltd. | Identifying memory devices for swapping virtual machine memory pages |
US9483299B2 (en) | 2014-06-30 | 2016-11-01 | Bmc Software, Inc. | Capacity risk management for virtual machines |
US9800523B2 (en) | 2014-08-22 | 2017-10-24 | Shanghai Jiao Tong University | Scheduling method for virtual processors based on the affinity of NUMA high-performance network buffer resources |
CN104199718B (zh) * | 2014-08-22 | 2017-08-11 | 上海交通大学 | 一种基于numa高性能网络缓存资源亲和度的虚拟处理器的调度方法 |
CN104216784B (zh) * | 2014-08-25 | 2018-01-23 | 杭州华为数字技术有限公司 | 热点均衡控制方法及相关装置 |
US9495192B2 (en) * | 2014-09-30 | 2016-11-15 | Vmware, Inc. | NUMA I/O aware network queue assignments |
US9256467B1 (en) * | 2014-11-11 | 2016-02-09 | Amazon Technologies, Inc. | System for managing and scheduling containers |
JP2016115253A (ja) * | 2014-12-17 | 2016-06-23 | 富士通株式会社 | 情報処理装置、メモリ管理方法およびメモリ管理プログラム |
JP6645275B2 (ja) | 2016-03-04 | 2020-02-14 | 富士通株式会社 | 情報処理装置、仮想マシン移動方法、および仮想マシン制御プログラム |
US10237169B2 (en) * | 2016-04-01 | 2019-03-19 | Intel Corporation | Technologies for quality of service based throttling in fabric architectures |
CN109213539B (zh) * | 2016-09-27 | 2021-10-26 | 华为技术有限公司 | 一种内存回收方法及装置 |
CN107368353B (zh) * | 2017-07-26 | 2020-12-01 | 郑州云海信息技术有限公司 | 一种实现虚拟机内存热添加的方法和装置 |
US10572289B2 (en) | 2017-08-28 | 2020-02-25 | Red Hat Israel, Ltd. | Guest-initiated announcement of virtual machine migration |
CN107948072B (zh) * | 2017-10-31 | 2021-04-27 | 新华三技术有限公司 | 报文转发方法和装置 |
US10789090B2 (en) | 2017-11-09 | 2020-09-29 | Electronics And Telecommunications Research Institute | Method and apparatus for managing disaggregated memory |
US10664300B2 (en) | 2017-12-01 | 2020-05-26 | Red Hat, Inc. | Resetting persistent balloon memory for fragmentation reduction |
US12117940B2 (en) * | 2017-12-05 | 2024-10-15 | Red Hat, Inc. | Host address space identifier for non-uniform memory access locality in virtual machines |
US10719344B2 (en) | 2018-01-03 | 2020-07-21 | Acceture Global Solutions Limited | Prescriptive analytics based compute sizing correction stack for cloud computing resource scheduling |
US10430227B2 (en) * | 2018-01-09 | 2019-10-01 | Microsoft Technology Licensing, Llc | Fast instantiation of virtual machines in distributed computing systems |
US10664323B2 (en) | 2018-03-07 | 2020-05-26 | Microsoft Technology Licensing, Llc | Live migration of virtual machines in distributed computing systems |
CN109032510B (zh) * | 2018-06-29 | 2021-07-09 | 山石网科通信技术股份有限公司 | 基于分布式结构的处理数据的方法和装置 |
KR101932522B1 (ko) | 2018-07-16 | 2018-12-26 | 서강대학교 산학협력단 | 가상 머신에 가상 gpu 메모리의 슬롯을 동적으로 할당하는 방법 및 이를 구현하는 컴퓨팅 장치 |
US10503543B1 (en) * | 2019-02-04 | 2019-12-10 | Cohesity, Inc. | Hosting virtual machines on a secondary storage system |
WO2021086839A1 (en) * | 2019-10-30 | 2021-05-06 | TidalScale, Inc. | Goal-directed software-defined numa working set management |
KR20230005628A (ko) * | 2021-07-01 | 2023-01-10 | 삼성전자주식회사 | 스토리지 장치, 스토리지 장치의 동작 방법, 그리고 전자 장치 |
Family Cites Families (45)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04274519A (ja) * | 1991-02-28 | 1992-09-30 | Nec Corp | プログラム高速化自動実行方式 |
US6075938A (en) * | 1997-06-10 | 2000-06-13 | The Board Of Trustees Of The Leland Stanford Junior University | Virtual machine monitors for scalable multiprocessors |
US6785888B1 (en) * | 1997-08-29 | 2004-08-31 | International Business Machines Corporation | Memory allocator for a multiprocessor computer system |
US6336170B1 (en) * | 1998-10-13 | 2002-01-01 | International Business Machines Corporation | Method and system in a distributed shared-memory data processing system for determining utilization of shared-memory included within nodes by a designated application |
US7140020B2 (en) * | 2000-01-28 | 2006-11-21 | Hewlett-Packard Development Company, L.P. | Dynamic management of virtual partition computer workloads through service level optimization |
US7433951B1 (en) * | 2000-09-22 | 2008-10-07 | Vmware, Inc. | System and method for controlling resource revocation in a multi-guest computer system |
US7035963B2 (en) | 2000-12-27 | 2006-04-25 | Intel Corporation | Method for resolving address space conflicts between a virtual machine monitor and a guest operating system |
JP2002202959A (ja) * | 2000-12-28 | 2002-07-19 | Hitachi Ltd | 動的な資源分配をする仮想計算機システム |
US6785773B2 (en) * | 2001-03-29 | 2004-08-31 | International Business Machines Corporation | Verification of global coherence in a multi-node NUMA system |
US6842857B2 (en) * | 2001-04-12 | 2005-01-11 | International Business Machines Corporation | Method and apparatus to concurrently boot multiple processors in a non-uniform-memory-access machine |
US7536697B2 (en) | 2001-06-19 | 2009-05-19 | Accenture Global Services Gmbh | Integrating enterprise support systems |
US6886079B2 (en) * | 2001-06-21 | 2005-04-26 | International Business Machines Corporation | Dynamic history based mechanism for the granting of exclusive data ownership in a non-uniform memory access (NUMA) computer system |
US7159216B2 (en) | 2001-11-07 | 2007-01-02 | International Business Machines Corporation | Method and apparatus for dispatching tasks in a non-uniform memory access (NUMA) computer system |
DE10159522A1 (de) | 2001-12-05 | 2003-06-26 | G L I Global Light Ind Gmbh | Verfahren zur Herstellung von LED-Körpern |
US7451459B2 (en) * | 2003-05-05 | 2008-11-11 | Microsoft Corporation | Systems, methods, and apparatus for indicating processor hierarchical topology |
US8776050B2 (en) * | 2003-08-20 | 2014-07-08 | Oracle International Corporation | Distributed virtual machine monitor for managing multiple virtual resources across multiple physical nodes |
US8417913B2 (en) * | 2003-11-13 | 2013-04-09 | International Business Machines Corporation | Superpage coalescing which supports read/write access to a new virtual superpage mapping during copying of physical pages |
US20050132362A1 (en) * | 2003-12-10 | 2005-06-16 | Knauerhase Robert C. | Virtual machine management using activity information |
US7231504B2 (en) * | 2004-05-13 | 2007-06-12 | International Business Machines Corporation | Dynamic memory management of unallocated memory in a logical partitioned data processing system |
EP1769353A2 (en) * | 2004-05-21 | 2007-04-04 | Computer Associates Think, Inc. | Method and apparatus for dynamic memory resource management |
US8621458B2 (en) | 2004-12-21 | 2013-12-31 | Microsoft Corporation | Systems and methods for exposing processor topology for virtual machines |
US20060184938A1 (en) * | 2005-02-17 | 2006-08-17 | Intel Corporation | Method, apparatus and system for dynamically reassigning memory from one virtual machine to another |
US7334076B2 (en) | 2005-03-08 | 2008-02-19 | Microsoft Corporation | Method and system for a guest physical address virtualization in a virtual machine environment |
US20060206891A1 (en) * | 2005-03-10 | 2006-09-14 | International Business Machines Corporation | System and method of maintaining strict hardware affinity in a virtualized logical partitioned (LPAR) multiprocessor system while allowing one processor to donate excess processor cycles to other partitions when warranted |
RU47116U1 (ru) | 2005-04-06 | 2005-08-10 | Оао Акб "Автобанк-Никойл" | Система поддержки распределенного документооборота |
US7299337B2 (en) | 2005-05-12 | 2007-11-20 | Traut Eric P | Enhanced shadow page table algorithms |
US20070100845A1 (en) | 2005-10-31 | 2007-05-03 | Juergen Sattler | Customer relationship management integration system and method |
US7945913B2 (en) * | 2006-01-19 | 2011-05-17 | International Business Machines Corporation | Method, system and computer program product for optimizing allocation of resources on partitions of a data processing system |
US7596654B1 (en) * | 2006-01-26 | 2009-09-29 | Symantec Operating Corporation | Virtual machine spanning multiple computers |
US7984438B2 (en) * | 2006-02-08 | 2011-07-19 | Microsoft Corporation | Virtual machine transitioning from emulating mode to enlightened mode |
US20070250784A1 (en) | 2006-03-14 | 2007-10-25 | Workstone Llc | Methods and apparatus to combine data from multiple computer systems for display in a computerized organizer |
JP4702127B2 (ja) | 2006-03-22 | 2011-06-15 | 日本電気株式会社 | 仮想計算機システム及びその物理リソース再構成方法並びにプログラム |
US7434002B1 (en) * | 2006-04-24 | 2008-10-07 | Vmware, Inc. | Utilizing cache information to manage memory access and cache utilization |
US8607009B2 (en) | 2006-07-13 | 2013-12-10 | Microsoft Corporation | Concurrent virtual machine snapshots and restore |
US8453132B2 (en) * | 2006-07-28 | 2013-05-28 | Hewlett-Packard Development Company, L.P. | System and method for recompiling code based on locality domain and thread affinity in NUMA computer systems |
US20080071642A1 (en) | 2006-09-15 | 2008-03-20 | Leiba Lior | System and method for connecting external product catalog data to business applications |
US7788464B2 (en) * | 2006-12-22 | 2010-08-31 | Microsoft Corporation | Scalability of virtual TLBs for multi-processor virtual machines |
US8195866B2 (en) * | 2007-04-26 | 2012-06-05 | Vmware, Inc. | Adjusting available persistent storage during execution in a virtual computer system |
CN100489815C (zh) | 2007-10-25 | 2009-05-20 | 中国科学院计算技术研究所 | 一种内存共享的系统和装置及方法 |
CN101271401B (zh) | 2008-04-23 | 2010-04-14 | 北京航空航天大学 | 一种具备单一系统映像的服务器机群系统 |
US8799892B2 (en) * | 2008-06-09 | 2014-08-05 | International Business Machines Corporation | Selective memory donation in virtual real memory environment |
US8037280B2 (en) * | 2008-06-11 | 2011-10-11 | Vmware, Inc. | System and method for improving memory locality of virtual machines |
US8490094B2 (en) * | 2009-02-27 | 2013-07-16 | International Business Machines Corporation | Non-uniform memory access (NUMA) enhancements for shared logical partitions |
US9535767B2 (en) | 2009-03-26 | 2017-01-03 | Microsoft Technology Licensing, Llc | Instantiating a virtual machine with a virtual non-uniform memory architecture |
US9529636B2 (en) | 2009-03-26 | 2016-12-27 | Microsoft Technology Licensing, Llc | System and method for adjusting guest memory allocation based on memory pressure in virtual NUMA nodes of a virtual machine |
-
2009
- 2009-03-26 US US12/412,272 patent/US9529636B2/en active Active
-
2010
- 2010-03-19 BR BRPI1009277A patent/BRPI1009277B1/pt active IP Right Grant
- 2010-03-19 RU RU2011139151/08A patent/RU2569805C2/ru active
- 2010-03-19 KR KR1020117022356A patent/KR101661783B1/ko active IP Right Grant
- 2010-03-19 JP JP2012502133A patent/JP5507660B2/ja active Active
- 2010-03-19 EP EP10756649.9A patent/EP2411915B1/en active Active
- 2010-03-19 WO PCT/US2010/028034 patent/WO2010111149A2/en active Application Filing
- 2010-03-19 CN CN2010800137790A patent/CN102365625B/zh active Active
- 2010-03-19 CA CA2753228A patent/CA2753228C/en active Active
-
2016
- 2016-11-18 US US15/355,754 patent/US10705879B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
KR101661783B1 (ko) | 2016-10-10 |
CA2753228C (en) | 2016-09-27 |
WO2010111149A2 (en) | 2010-09-30 |
EP2411915A4 (en) | 2014-09-24 |
EP2411915A2 (en) | 2012-02-01 |
KR20120000066A (ko) | 2012-01-03 |
RU2569805C2 (ru) | 2015-11-27 |
WO2010111149A3 (en) | 2011-01-13 |
CN102365625B (zh) | 2013-11-27 |
EP2411915B1 (en) | 2018-07-11 |
US20170068562A1 (en) | 2017-03-09 |
CN102365625A (zh) | 2012-02-29 |
JP2012521610A (ja) | 2012-09-13 |
US10705879B2 (en) | 2020-07-07 |
US20100250868A1 (en) | 2010-09-30 |
BRPI1009277A2 (pt) | 2016-03-08 |
BRPI1009277B1 (pt) | 2020-04-07 |
CA2753228A1 (en) | 2010-09-30 |
US9529636B2 (en) | 2016-12-27 |
RU2011139151A (ru) | 2013-03-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5507660B2 (ja) | 仮想マシン用非一様仮想メモリーアーキテクチャー | |
JP5507661B2 (ja) | 仮想マシン用非一様仮想メモリーアーキテクチャー | |
US20170322829A1 (en) | Dynamic virtual machine memory management | |
US10162658B2 (en) | Virtual processor allocation techniques | |
US8443376B2 (en) | Hypervisor scheduler | |
US8910153B2 (en) | Managing virtualized accelerators using admission control, load balancing and scheduling | |
US8327372B1 (en) | Virtualization and server imaging system for allocation of computer hardware and software | |
US8898664B2 (en) | Exposure of virtual cache topology to a guest operating system | |
WO2006103687A1 (en) | Partitioned resource reallocation system and method | |
KR20130100689A (ko) | 확장가능한 맞춤형 균형 부하 물리 메모리 관리 구조 | |
CN116324706A (zh) | 分离式存储器池分配 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130205 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20130205 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20140121 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20140123 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140130 |
|
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: 20140220 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140319 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5507660 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
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 |
|
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 |
|
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 |