System and Method for Improving Memory Locality of Virtual Machines
First Claim
Patent Images
1. A method for migrating a virtual machine and memory pages from a first node to a second node, comprising:
- a. migrating the virtual machine from the first node to the second node;
b. monitoring memory access requests of the virtual machine and identifying priority pages for migration from the first node to the second node;
c. initiating page migration process and migrating at least a subset of the priority pages from the first node to the second node.
2 Assignments
0 Petitions
Accused Products
Abstract
A system and related method of operation for migrating the memory of a virtual machine from one NUMA node to another. Once the VM is migrated to a new node, migration of memory pages is performed while giving priority to the most utilized pages, so that access to these pages becomes local as soon as possible. Various heuristics are described to enable different implementations for different situations or scenarios.
75 Citations
29 Claims
-
1. A method for migrating a virtual machine and memory pages from a first node to a second node, comprising:
-
a. migrating the virtual machine from the first node to the second node; b. monitoring memory access requests of the virtual machine and identifying priority pages for migration from the first node to the second node; c. initiating page migration process and migrating at least a subset of the priority pages from the first node to the second node. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 28)
-
-
13. A machine executable process for migrating a virtual machine and memory pages from a first node to a second node, comprising:
-
a. migrating the virtual machine from the first node to the second node; b. setting a time period for periodic migration of pages from the first node to the second node and, during each period performing the steps; b.1. monitoring memory access requests of the virtual machine and identifying priority pages corresponding to memory access requests mapped to pages on the first node; b.2. when the time period has elapsed, initiating page migration process and migrating priority pages from the first node to the second node; and
,b.3. determining whether the process should revert to step b.1. or terminate. - View Dependent Claims (14, 15, 16, 17, 18, 19, 29)
-
-
20. A computerized virtual machine comprising:
-
virtualized hardware; virtual machine monitor; a plurality of virtual pages; page mapping tables storing mapping of virtual page numbers to guest physical page numbers; a prioritizer listing priority pages having priority for migration. - View Dependent Claims (21, 22, 23)
-
-
24. A computer readable storage medium holding computer software for executing on the destination computer, the software embodying a method comprising:
upon receiving migration instruction for migrating a virtual machine from a first node to a second node, performing the steps; a. migrating the virtual machine to the second node; b. discarding page tables comprising mapping of virtual pages to machine pages; c. setting a time period for periodic migration of pages from the first node to the second node and, during each period performing the steps; c.1. whenever a memory access generates a hidden page fault, storing identity of faulting page addressed by the page call; c.2. when the time period has elapsed, initiating page migration process and migrating N pages from the first node to the second node, wherein N comprises a natural number and the N pages include at least the faulting pages; c.3. determining whether the process should revert to step c.1. or terminate. - View Dependent Claims (25)
-
26. A computer readable storage medium holding computer software for executing on the destination computer, the software embodying a method comprising:
upon receiving migration instruction for migrating a virtual machine from a first node to a second node, performing the steps; a. migrating the virtual machine to the second node; b. setting a time period for periodic migration of pages from the first node to the second node and, during each period performing the steps; b.1. clearing access bit of all pages; b.2. when the time period has elapsed, checking the access bit of all pages, and listing accessed pages having their access bit set to indicate occurrence of page access since last clear; b.3. initiating page migration process and migrating N pages from the first node to the second node, wherein N comprises a natural number and the N pages include at least the accessed pages; b.4. determining whether the process should revert to step b.1. or terminate. - View Dependent Claims (27)
Specification