Managing memory in virtualized environments
AssigneeAmazon Technologies, Inc.
InventorAtle Normann Jorgensen
Life of this patent
Estimating the term…
Abstract
Techniques are described for enabling a virtual machine to be presented with an amount of available guest memory, where a hypervisor or other privileged component manages the mapping of the resources based at least in part on the capacity of resources one or more hosts. This enables resources to be effectively oversubscribed to on host computing devices that have a limited amount of total available resources but which are running multiple virtual machines. For example, each virtual machine on the device can be presented as having access to the total amount of available resources that are available on the device or more in some cases. In some cases, resources may be mapped to a plurality of hosts that have available resources.
Claims20
A non-transitory computer readable storage medium storing one or more sequences of instructions, which when executed by one or more processors to cause a computing system to:
- cause a virtual machine manager to launch a first virtual machine configured to use excess random access memory (RAM), the first virtual machine having a first portion of first guest memory mapped to random access memory (RAM) and a second portion of the first guest memory mapped to secondary storage;
- monitor usage of second guest memory of a second virtual machine, wherein a first portion of the second guest memory is mapped to the RAM and a second portion of the second guest memory is mapped to the secondary storage;
- in response to determining that usage of the second guest memory is higher than a threshold, progressively decrease the amount of second guest memory of the second virtual machine mapped to RAM and progressively increase the amount of second guest memory mapped to secondary storage;
- and
- progressively increase the first portion of the first guest memory mapped to RAM.
A system, comprising:
- a computer system including one or more processors coupled to a memory device including instructions that, when executed by the one or more processors, cause the computing system to:
- determine that usage of guest memory of a first instance exceeds a constraint;
- progressively reallocate primary memory mapped to guest memory of the first instance to a memory pool based at least in part on determining that the usage of the guest memory of the first instance exceeds the constraint;
- and
- progressively map at least a portion of the primary memory of the memory pool to guest memory of a second instance.
A computer implemented method, comprising:
- causing a virtual machine manager to launch a first virtual machine configured to use excess primary memory, the first virtual machine having a portion of first guest memory mapped to primary memory and a second portion of the first guest memory mapped to secondary storage;
- monitoring usage of second guest memory of a second virtual machine, wherein a first portion of the second guest memory is mapped to primary memory and a second portion of the second guest memory is mapped to the secondary storage;
- in response to determining that usage of the second guest memory is higher than a threshold, decreasing the amount of second guest memory of the second virtual machine mapped to primary memory and increasing the amount of second guest memory mapped to secondary storage;
- and
- increasing the first potion of the first guest memory mapped to primary memory.
Dependencies are inferred from the claim text.