Optimization of operating system and virtual machine monitor memory management
AssigneeRed Hat Israel, Ltd.
InventorAvi Kivity
Life of this patent
Estimating the term…
Abstract
A method and system for dynamically managing memory in a computing environment using a control monitor. The control monitor (e.g., a virtual machine monitor or operating system kernel) includes a nomination module configured to collect memory statistics associated with at least one memory node. Based on the memory statistics, the control monitor detects one or more first pages accessed from a remote memory node at or above an access threshold. The nomination module nominates, via a communication to at least one of a scheduler module and a memory manager of the control monitor, the one or more first pages for migration to the remote memory node.
Claims24
A method comprising:
- collecting, by a processing device from a performance monitoring unit (PMU) of a first memory node comprising a first processing device and a first local memory, memory statistics associated with the first memory node;
- determining, by the processing device in view of the memory statistics, a first page of the first local memory of the first memory node is accessed by a second processing device of a remote memory node at or above an access threshold value;
- nominating, by the processing device, the first page to be migrated from the first local memory to a second local memory of the remote memory node;
- migrating the first page to the second local memory of the remote memory node comprising the second processing device;
- determining, by the processing device, in view of memory statistics collected from a PMU of the remote memory node, the first page previously migrated to the second local memory of the remote memory node is being accessed by the second processing device below the access threshold value;
- nominating, by the processing device, the first page to be migrated from the second local memory of the remote memory node to another memory node;
- determining, by the processing device, in view of the memory statistics associated with a plurality of memory nodes, a read-only page is read accessed in aggregate by a plurality of processing devices of the plurality of memory nodes at or above a multiple access threshold value;
- replicating, by the processing device, the read-only page to an additional memory node;
- determining, by the processing device, in view of the memory statistics associated with a plurality of memory nodes, the read-only page is read accessed in aggregate by the plurality of processing devices of the plurality of memory nodes below the multiple access threshold value;
- and
- de-replicating, by the processing device, the read-only page upon receipt of a write request associated with the read-only page.
A non-transitory computer readable storage medium comprising instructions that, when executed by a processing device, cause the processing device to:
- collect, by the processing device from a performance monitoring unit (PMU) of a first memory node-comprising a first processing device and a first local memory, memory statistics associated with the first memory node;
- determine, by the processing device, in view of the memory statistics, a first page of the first local memory of the first memory node is accessed by a second processing device of a remote memory node at or above an access threshold value;
- nominate, by the processing device, the first page to be migrated from the first local memory to a second local memory of the remote memory node;
- migrate the first page to the second local memory of the remote memory node comprising the second processing device;
- determine, by the processing device, in view of memory statistics collected from a PMU of the remote memory node, the first page previously migrated to the second local memory of the remote memory node is being accessed by the second processing device below the access threshold value;
- nominate, by the processing device, the first page for migration from the second local memory of the remote memory node to another memory node;
- determine, by the processing device, in view of the memory statistics associated with a plurality of memory nodes, a read-only page is read accessed in aggregate by a plurality of processing devices of the plurality of memory nodes at or above a multiple access threshold value;
- replicate, by the processing device, the read-only page to an additional memory node;
- determine, by the processing device, in view of the memory statistics associated with a plurality of memory nodes, the read-only page is read accessed in aggregate by the plurality of processing devices of the plurality of memory nodes below the multiple access threshold value;
- and
- de-replicate, by the processing device, the read-only page upon receipt of a write request associated with the read-only page.
A system comprising:
- a memory to store memory statistics associated with a first memory node;
- and
- a processing device operatively coupled to the memory, the processing device to:
- collect, from a performance monitoring unit (PMU) of the first memory node comprising a first local memory, the memory statistics associated with the first memory node;
- determine, in view of the memory statistics, a first page of the first local memory of the first memory node is accessed by a second processing device of a remote memory node at or above an access threshold value;
- nominate the first page to be migrated from the first local memory to a second local memory of the remote memory node;
- migrate the first page to the second local memory of the remote memory node comprising the second processing device;
- determine, in view of memory statistics collected from a PMU of the remote memory node, the first page previously migrated to the second local memory of the remote memory node is being accessed by the second processing device below the access threshold value;
- nominate the first page for migration from the second local memory of the remote memory node to another memory node;
- determine in view of the memory statistics associated with a plurality of memory nodes, a read-only page is read accessed in aggregate by a plurality of processing devices of the plurality of memory nodes at or above a multiple access threshold value;
- replicate the read-only page to an additional memory node;
- determine, in view of the memory statistics associated with a plurality of memory nodes, the read-only page is read accessed in aggregate by the plurality of processing devices of the plurality of memory nodes below the multiple access threshold value;
- de-replicate the read-only page upon receipt of a write request associated with the read-only page.
Dependencies are inferred from the claim text.